|
|
1
1
实际上是默认值;它的意思是“仅当当前在深度缓冲区中的对象距离较远时才绘制像素”。如果你想要完全相等,你可以使用glDepthFunc(GL_equal),但实际上,如果你这样做,你会得到各种各样的取整奇数。 假设您能够为此目的使用深度值,如果您有十个对象,那么我建议您:
当你进入第4步时,你将在绘制精灵的任何地方都有正确的深度信息,并且你将在背景平面所在的任何地方设置尽可能接近的值。因此,正常的深度测试将在中间阴影上工作,它们将在第3步中绘制的任何东西上绘制阴影,但不会在第2步中绘制的任何东西上绘制阴影。
如果你负担不起使用深度缓冲区来完成这个任务,那么我所能想到的就是将阴影作为纹理投影到第二个纹理单元中,将第一个纹理用于遮罩纹理(如果你实际上是在绘制矩形,但我猜你可能不是),并对每个落在上面的阴影为每个精灵执行一次渲染过程。这是一个可以接受的解决方案吗? |