对于我的Java OpenGL项目,我正在尝试制作一个魔方。我已经计算了所有的旋转和工作,但是有一件事我不知道怎么做,那就是给出立方体的每一边--它有自己的颜色。我使用glRotatef和glTranslatef分别对27个块进行定位,并使用glutSolidCube绘制每个块。我怎样才能给glutSolidCube的每一面不同的颜色?我看过纹理立方体,但这似乎很难,因为我不知道每个块的(x,y,z)坐标,我只有转换矩阵(旋转和平移)。做这件事最简单的方法是什么?
发布于 2014-01-17 16:47:41
这可能无法直接实现:glutSolidCube
不生成颜色属性(参见freeglut源代码中的fghCube
函数)。
最简单的方法是自己生成立方体的几何。生成6 (faces) *4=24个顶点总数,其中包含预期的位置、法线和每个顶点的额外颜色属性。与普通属性一样,对于立方体上8个不同的顶点位置,您应该有3种不同的颜色(因为相同的顶点由3个面共享,但每个面需要不同的颜色)。
另一种方法是,如果您真的坚持使用glutSolidCube
,那么可以根据顶点着色器中的顶点法线分配顶点颜色。但也许你不是在用顶点着色器。
https://stackoverflow.com/questions/21190809
复制相似问题