【问题标题】:Java OpenGL - Apply different color per side of glutSolidCubeJava OpenGL - 在 glutSolidCube 的每一侧应用不同的颜色
【发布时间】:2014-01-17 16:25:08
【问题描述】:

对于我的 Java OpenGL 项目,我正在尝试制作一个魔方。 我已经计算出所有的旋转并开始工作了,但有一件事我不知道该怎么做,即给立方体的每一面都赋予它自己的颜色。 我使用 glRotatef 和 glTranslatef 来定位 27 个块中的每一个,并使用 glutSolidCube 来绘制每个块。 如何为 glutSolidCube 的每一面赋予不同的颜色? 我看过纹理立方体,但这似乎很难,因为我不知道每个块的 (x, y, z) 坐标,我只有变换矩阵(旋转和平移)。 最简单的方法是什么?

【问题讨论】:

    标签: java opengl 3d glut jogl


    【解决方案1】:

    这可能无法直接实现:glutSolidCube 不生成颜色属性(参见freeglut source code 中的fghCube 函数)。

    最简单的方法是自己生成立方体的几何形状。生成 6(面)* 4 = 总共 24 个顶点,每个顶点具有预期的位置、法线和额外的颜色属性。就像普通属性一样,对于立方体上 8 个不同的顶点位置中的每一个,您应该有 3 种不同的颜色(因为同一个顶点由 3 个面共享,但每个面需要不同的颜色)。

    如果你真的坚持使用glutSolidCube,另一种方法是根据顶点着色器中的顶点法线分配顶点颜色。但也许你没有使用顶点着色器...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-19
      • 1970-01-01
      • 2019-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-15
      相关资源
      最近更新 更多