【发布时间】:2010-10-10 01:55:44
【问题描述】:
gluPerspective() 函数可用于设置近 Z 和远 Z 剪切平面。
我想画一个剪裁在某个远 Z 平面的场景, 并在这个 Z 平面之外绘制另一个场景。 是否可以每帧进行两次剪辑?
【问题讨论】:
gluPerspective() 函数可用于设置近 Z 和远 Z 剪切平面。
我想画一个剪裁在某个远 Z 平面的场景, 并在这个 Z 平面之外绘制另一个场景。 是否可以每帧进行两次剪辑?
【问题讨论】:
你没有理由不能这样做。
只需设置第一个视角,绘制第一个场景,然后设置第二个视角并绘制第二个场景,所有这些都在同一帧的绘图内。
这通常称为多通道渲染。
【讨论】:
您可能需要先绘制最远的场景并在绘制最近的场景之前执行glClear(GL_DEPTH_BUFFER_BIT);。
【讨论】:
一种可能性是为场景分配不同的深度范围。一些伪代码是:
glDepthRange(0.5, 1.0)
draw_far_scene
glDepthRange(0.0, 0.5)
draw_near_scene
您必须设置投影矩阵才能对近/远场景执行正确的剪辑。
需要分配深度范围以防止深度缓冲区“合并”两个渲染。
【讨论】: