DirectX是否与OpenGL的glLogicOp相当?

时间:2010-02-26 04:01:53

标签: opengl directx

OpenGL允许您设置逻辑按位操作(OR,XOR等),以便在将片段写入帧缓冲区时执行。

我想进行快速场景体素化(如Elmar Eisemann的论文中所见),其中我使用单个帧缓冲像素来存储32个切片。不幸的是,我在DirectX 9环境中工作。除非我遗漏了什么,否则D3D不支持像这样的逐位操作。

首先想到的是添加剂混合,但这会产生不正确的结果。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

不,DirectX 9中没有等效内容。

您可以使用着色器模拟它。但它需要Shader Model 4.0,所以DirectX 10(我用GS / PS和纹理数组完成)。我认为DirectX 11计算着色器现在有意义,因为实现将更容易,更有效。

答案 1 :(得分:0)

最大的问题是DirectX设置为通过管道处理浮点数(直到写入纹理之前)。你期望在2个浮点数之间进行按位操作?它不太可能达到你的期望。

虽然这些卡可能能够支持int,但这个功能对您来说是“隐藏”的,因为它是DirectX的工作方式。因此,您无法保证特定的卡支持它。

你到底想要达到什么目的?可能有不同的方式来做你想要的。