可以通过ModelView或Projection矩阵弯曲或扭曲OpenGL空间吗?

And*_*der 2 opengl

是否可以通过ModelView或Projection矩阵的非标准操作来弯曲或扭曲OpenGL空间?

例如,命令glScale(scaleFactor,scaleFactor,noScaleFactor)将沿X和Y轴以统一的方式重新调整场景的所有元素.

但是如果一个人能够以非均匀的方式扭曲OpenGL空间,它将极大地扩大了不同效果的潜力.特别是,我所追求的效果是类似鱼缸的缩放效果,其中元素将以相对于它们与用户的接近程度(在我的情况下由Z轴表示)的线性或非线性方式放大.

因此,上面的glScale命令的缩放将取决于每个元素沿Z轴的位置:

glScale(function1(Z距离),function2(Z距离),noScaleFactor)

tib*_*bur 5

模型视图和投影是矩阵.所以你只能进行线性变换.您可以使用顶点着色器尝试效果,但是您需要一个相对密集的网格,以使您的变换看起来很好.着色器将修改每个顶点位置,但由3个顶点组成的三角形仍将保持不变.

以下是鱼眼镜头顶点着色器的示例.