我有一个移动,缩放,旋转的立方体,我需要创建一个平面来修剪立方体,就像
这是绘图代码
pgl.glLoadIdentity()
pgl.glViewport(650, 500, 650, 500)
pgl.glMatrixMode(ogl.GL_PROJECTION)
pgl.glLoadIdentity()
pgl.gluPerspective(self.dist, 1.3, 1, 1000)
pgl.glMatrixMode(ogl.GL_MODELVIEW)
pgl.glTranslatef(0, 0, -400)
pgl.glPushMatrix()
pgl.glTranslatef(self.x, self.y, self.z)
pgl.glRotatef(self.xRotation, 1, 0, 0)
pgl.glRotatef(self.yRotation, 0, 1, 0)
pgl.glRotatef(self.zRotation, 0, 0, 1)
pgl.glScalef(self.zoom, self.zoom, self.zoom)
if not transparant:
pgl.glPolygonMode(pgl.GL_FRONT_AND_BACK, pgl.GL_FILL)
else:
pgl.glPolygonMode(pgl.GL_FRONT_AND_BACK, pgl.GL_LINE)
draw_big()
pgl.glPopMatrix()
使用Legacy OpenGL固定函数管道,可以设置剪裁平面。你知道吗
可以有多个剪辑平面,这些平面必须由^{} 启用。你知道吗
平面由^{} 设置。剪裁平面的参数被解释为Plane Equation。
平面方程的前3个分量是剪切平面的法向量。第四个分量是到原点的距离:
有关详细规范,请参见OpenGL 4.6 API Compatibility Profile Specification - 13.7. PRIMITIVE CLIPPING;第537页。
注意,当前模型视图矩阵的逆矩阵在指定时应用于剪裁平面系数。你知道吗
参见基于问题代码的示例:
相关问题 更多 >
编程相关推荐