Java OpenGL - 在 glutSolidCube 的每侧应用不同的颜色

标签 java opengl 3d glut jogl

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

最佳答案

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

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

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

关于Java OpenGL - 在 glutSolidCube 的每侧应用不同的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21190809/

相关文章:

java - JFrame 布局问题,面板应该在顶部但在中间

Java 说一个非空文件是空的?

c++ - Debian 上的 GLFW 回调 glfwSetDropCallback 有问题

python - Python 的 3D 几何包

iphone - 在 UIImageView 上显示具有透明背景的 EAGLView

java - 计算算法的复杂度 - BigO

java - Spring Webflux 2.4.2 - actuator/auditevents/httptrace/integrationgraph/sessions 端点上的 404

opengl - 在 OpenGL 中上传纹理非常慢

c++ - QOpenGLContext 获取 GL_MAX_TEXTURE_SIZE 总是返回 0

java - Eclipse中哪里有好的Xj3D教程?