对于我的Java OpenGL项目,我正在尝试制作一个魔方。 我已经计算好所有旋转并且正在工作,但有一件事我不知道该怎么做,即给立方体的每一边都有自己的颜色。 我使用glRotatef和glTranslatef来定位27个块中的每个块,并使用glutSolidCube来绘制每个块。 我怎样才能给glutSolidCube的每一面带来不同的颜色? 我看过纹理立方体,但这看起来很难,因为我不知道每个块的(x,y,z)坐标,我只有变换矩阵(旋转和平移)。 最简单的方法是什么?
答案 0 :(得分:1)
这可能无法直接执行:glutSolidCube
不会生成颜色属性(请参阅freeglut source code中的fghCube
功能)。
最简单的方法是自己生成立方体的几何体。生成6个(面)* 4 = 24个顶点,每个顶点具有预期位置,法线和附加颜色属性。就像普通属性一样,对于立方体上的8个不同顶点位置中的每一个,您应该有3种不同的颜色(因为相同的顶点由3个面共享,但每个面需要不同的颜色)。
如果你真的坚持使用glutSolidCube
,另一种方法是根据顶点着色器中的顶点法线分配顶点颜色。但也许你没有使用顶点着色器...