3d 在所有其他对象之前绘制三维对象

3d 在所有其他对象之前绘制三维对象,3d,direct3d,3d,Direct3d,我正在用一些对象绘制场景(Direct3D),最后,我想绘制另一个对象(红色茶壶),它将位于所有其他对象的前面。 以下是一个屏幕截图: 我使用'RenderState.ZBufferFunction=Compare.NotEqual'来实现这一点,但这会破坏红色茶壶。有没有办法解决这个问题?一个选项是清除z缓冲区,然后渲染红色茶壶。听起来好像在渲染茶壶时仍然需要进行深度测试(因为茶壶的各个部分需要与茶壶的其他部分进行测试),但您希望忽略之前渲染的所有内容。最简单的安排方法是先清除z缓冲区,然后再

我正在用一些对象绘制场景(Direct3D),最后,我想绘制另一个对象(红色茶壶),它将位于所有其他对象的前面。 以下是一个屏幕截图:


我使用'RenderState.ZBufferFunction=Compare.NotEqual'来实现这一点,但这会破坏红色茶壶。有没有办法解决这个问题?

一个选项是清除z缓冲区,然后渲染红色茶壶。听起来好像在渲染茶壶时仍然需要进行深度测试(因为茶壶的各个部分需要与茶壶的其他部分进行测试),但您希望忽略之前渲染的所有内容。最简单的安排方法是先清除z缓冲区,然后再清除红色茶壶。

一个选项是清除z缓冲区,然后渲染红色茶壶。听起来好像在渲染茶壶时仍然需要进行深度测试(因为茶壶的各个部分需要与茶壶的其他部分进行测试),但您希望忽略之前渲染的所有内容。最简单的安排方法是先清理z缓冲区,然后再清理红色茶壶。

非常感谢,一个简单的z缓冲区清理,解决我的问题。”RenderState.ZBufferFunction=Compare.NotEqual'根本不需要。非常感谢,一个简单的z缓冲区清除,解决我的问题。'RenderState.ZBufferFunction=Compare.NotEqual'完全不需要。