LWJGL+OpenGL渲染立方体异常:颜色错乱及不可见问题求助
LWJGL OpenGL立方体渲染问题解决
一、快速让立方体回到可见范围
OpenGL默认相机位于原点(0,0,0),视线沿**-Z轴方向**(看向屏幕外)。你当前把立方体放在Z=0的位置,和相机重叠,部分顶点可能超出默认视锥体的可见范围;如果误设为正Z值,立方体会跑到相机后方,自然无法看见。
直接修改glTranslatef的Z参数为负数,将立方体往相机前方推送:
GL11.glTranslatef(0.0f, 0.0f, -5.0f); // 数值在-3到-10之间均可,按需调整
二、修复颜色错乱问题
你的RenderCube方法里有两个顶点坐标写错,导致面不是规整的四边形,进而引发颜色渲染错乱:
- 黄色面(
glColor3f(1.0f, 1.0f, 0.0f))的最后一个顶点,将0.1f改为1.0f:// 原错误代码 GL11.glVertex3f(0.1f, 1.0f, -1.0f); // 修正后 GL11.glVertex3f(1.0f, 1.0f, -1.0f); - 蓝色面(
glColor3f(0.0f, 0.0f, 1.0f))的最后一个顶点,将0.1f改为1.0f:// 原错误代码 GL11.glVertex3f(-1.0f, -1.0f, 0.1f); // 修正后 GL11.glVertex3f(-1.0f, -1.0f, 1.0f);
三、额外优化建议
初始化时添加GL11.glEnable(GL11.GL_DEPTH_TEST);,开启深度测试,避免后方的面错误遮挡前方的面,让立方体渲染更符合视觉逻辑。
内容的提问来源于stack exchange,提问作者W.G.
相关产品推荐
相关产品推荐

