0

我在尝试将我的场景与天空盒包装在平截头体透视中时遇到了一些麻烦。

GLKMatrix4 projectionMatrix = GLKMatrix4MakeFrustum(-50, 50, -50, 50, 0.1, 100);

GLKMatrix4 baseModelViewMatrix = GLKMatrix4MakeTranslation(0.0f, -0.8f, 0.0); 
baseModelViewMatrix = GLKMatrix4Scale(baseModelViewMatrix, 0.5f, 0.5f, 0.5f);

self.effect.transform.projectionMatrix = projectionMatrix;
self.effect.transform.modelviewMatrix = GLKMatrix4Multiply(camera, baseModelViewMatrix);

GLKMatrix4 camera = GLKMatrix4MakeLookAt(
                                         self.cameraEye.x,
                                         self.cameraEye.y,
                                         self.cameraEye.z,
                                         0.0,
                                         0.0,
                                         0.0,
                                         0, 1, 0);


self.effect.transform.modelviewMatrix = GLKMatrix4Multiply(camera, baseModelViewMatrix);

self.skyBoxEffect.center = self.cameraEye;
self.skyBoxEffect.transform.projectionMatrix = self.effect.transform.projectionMatrix;
self.skyBoxEffect.transform.modelviewMatrix = self.effect.transform.modelviewMatrix;

我在场景中渲染的对象在感觉或深度上看起来都不错,但是天空盒根本无法正常工作,图像失真可能是由于截锥体透视。这里有什么诀窍吗?如何使用 GLKit 使用平截头体视角制作天空盒?谢谢!

4

1 回答 1

0

通常需要一些调整来设置与场景相关的截锥体变量。我可能是错的,但我认为你的平截头体的数学目前给你一个大约 160 度的视野。正常的 fov 大约是 45 到 80 度。检查http://www.songho.ca/opengl/gl_projectionmatrix.html以获取有关定义适当平截头体的更多信息。

于 2012-11-03T08:29:05.907 回答