正規化されたデバイス座標からビュースペースにマップしたいと思います。標準化されたデバイス座標からビュースペースへのマッピング
他の方法はarroundのこのように動作:
viewspace - >クリップ空間は:射影行列によって
クリップ空間を同次座標を乗算 - >正規化デバイス座標(X、Y、Zを分割、W
によって)Wは今、正規化デバイスの[-1,1]キューブのX、Y、Zの€に視錐台の落下内にあったすべての座標を座標であり、w = 1
今は思いthaの境界上のいくつかの点を変換するようにtキューブをビューの座標に戻します。投影行列は非特異的なので、逆行列を使ってclipsaceからviewspaceを得ることができます。しかし、私はどのように私は他の座標を掛ける必要がある 'w'を計算するか分からないので、私は標準化されたデバイス空間からクリップ空間に得る方法がわかりません。
誰かがそれで私を助けることができますか?ありがとう!
ありがとう iは単にWによって分割する必要があることを確認していますか? 私はので、このページで困惑している: http://www.opengl.org/wiki/GluProject_and_gluUnProject_code iはparticularily [3] [3] = 1.0 /アウト最後の4行アウト で混乱しています; objectCoordinate [0] = out [0] * out [3]; objectCoordinate [1] = out [1] * out [3]; objectCoordinate [2] = out [2] * out [3]; x、y、zをWの値で除算しますが、Wの値を1/Wで置き換えます。返される同次座標はW座標で1を持たないため、新しいWでAGAINに分割する必要があります有効なx、y、z座標を得るために –
gluUnProject関数でW値が返されない場合、1/Wの値はobjectCoordinateベクトルにコピーされません。非コンポーネントopが成功した場合、Wコンポーネントは常に1になります。したがって、呼び出し元に提供する点がありません。 –