0

Javaでレイトレーシングを実装する割り当てがあります。xとyが与えられたピクセルを介して、カメラからの光線を構築する方法についての情報を得るために、私は多くを求めていません。私はインターネット上でそれを説明する多くの情報源を見つけましたが、2Dであり、3Dでそれを行う方法が必要です。

前もって感謝します

4

2 に答える 2

0

問題は、画面座標で(x、y)によって位置が与えられる画面上の点の空間内の座標をどのように見つけるかです。

画面に使用している座標系がわからないので、知識に基づいて推測し、それに応じて調整できます。

画面の中心には、空間内の既知の位置[X、Y、Z]の中心があります。画面座標系の原点はそこにあると思います。画面に垂直な(垂直な) 「方向」ベクトルdと、「上」ベクトルuがあります。画面の+y方向はuだと思います。これらのベクトルの外積r = d x uをとることができます。これは、画面上の+x方向になります。したがって、画面座標が(x、y)である画面上の点の位置は、[X、Y、Z] center + x r + y uになり、これで完了です。

于 2012-04-07T23:20:43.367 に答える
0

基本的な考え方は次のとおりです。特定の位置(x、y、z)に特定の解像度のカメラがあります。光源のセットがあります。カメラの向きがあります(角度、頭を上/下に傾ける/回転させる方法などを考えてください...)。ここで実行したいのは、基本的に各カメラピクセルに対して、垂線(光線)がジオメトリに接触するまで「延長」することです。次に、「何をレンダリングするか」(つまり、見つけたばかりのジオメトリのビット)がわかります。次は、オブジェクトがシャドウされているかどうかを判断します。これは、光源がジオメトリに接触するまで(特定の光源に対して、スポットが他のジオメトリのビットによってシャドウされている)、光源に向かって光線を「伸ばす」ことによって行います。それらが光源に到達するまで(あなたのスポットは与えられた光源によって照らされます)。

これが基本です。反射や光の拡散などを考えると、さらに難しくなります。

于 2012-04-08T00:49:50.547 に答える