在opengl中对一个基元进行预计算,然后在其他基元上使用

时间:2017-09-28 13:54:12

标签: opengl jogl

假设我在opengl 3d设置中有两个三角形,带有特定的光源。第一个三角形:

glEnable(GL_LIGHT0)

glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, color)
glBegin(GL_TRIANGLES)
glNormal3fv(n1)
glVertex3f(p1)
glVertex3f(p2)
glVertex3f(p3)
glEnd()

现在我在另一个位置绘制第二个三角形

glBegin(GL_TRIANGLES)
glNormal3fv(n2)
glVertex3f(p4)
glVertex3f(p5)
glVertex3f(p6)
glEnd()

但我想要将光线应用于此三角形AS,如果它位于并且具有与第一个三角形相同的法向量。显然,改变法向量很容易,但似乎我不能改变相对于光源的视在位置而不改变三角形的真实位置。此外,由于我的3d世界的光属性不会及时改变,我想在开始时预先计算它,然后存储它。有小费吗?

为什么我要这样做:基本上看到3D世界的玩家的视觉会以某种方式扭曲,这样所有3d对象的位置都会改变。但是,这应该不会影响应用光源后计算的图元的颜色。

0 个答案:

没有答案