openGles では、面に近い錐台を減らすと (ここで見られるように)、オブジェクトがより近くに表示されます。私は 3D から来ました。たとえば Vray では、ニア クリップ プレーンを変更しても距離は変更されず、一部のジオメトリがクリップされるだけです。
錐台の近い面を変更すると、オブジェクトがより近くに見えるのはなぜですか?
錐台を変更すると、ここで説明する効果があると思います。
したがって、ドキュメントによると、この関数を呼び出すと
void glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble nearVal, GLdouble farVal);
あなたがしているのは、現在の射影行列に、パラメータで指定された値から構築された行列を掛けることです。
その行列がどのように構築されているかを見ると、スケーリング行列に非常に似ていることがわかります。C
3,3 の要素 (ドキュメント ページではの名前になっています) は と同じ-(far+near)/(far-near)
です。これは、減らしnear
てそのままfar
にしておくと、C
ゼロに近づくことを意味します。行列の乗算が行われると、これは Z 座標のダウンスケーリングのように機能します。
そのため、near 値を小さくすると、頂点は Z 座標に比例して原点に近づいたように見えます。もちろん、この減少は X 座標と Y 座標にも影響し、オブジェクトが中心に向かってより「圧縮」されたように見えるはずです。その効果は、ニアクリッピングプレーンを視点に近づけることから直感的に期待されるものとより一致していると思います.