0
DirectX纹理混合是否具有相同的功能? http://msdn.microsoft.com/en-us/library/windows/desktop/bb206241(v=vs.85).aspxOpengl等效于纹理混合?
它基本上将几个纹理混合在一起,然后将其应用到网格上。
DirectX纹理混合是否具有相同的功能? http://msdn.microsoft.com/en-us/library/windows/desktop/bb206241(v=vs.85).aspxOpengl等效于纹理混合?
它基本上将几个纹理混合在一起,然后将其应用到网格上。
通过扫描该页面,我相信你可以在片段着色器中完成所有这些工作。您可以绑定多个纹理,在着色器中对其进行全部采样,并将结果合并到您的心中。
它看起来类似于OpenGL在固定功能流水线中使用的功能。我旧版本的红皮书(OpenGL编程指南)有关于“多纹理”和“纹理合并器功能”的章节。如果您使用兼容性配置文件,这仍然可用。但恕我直言,这是一个很好的例子,它将某些类型的功能压缩到固定管道中看起来非常麻烦,而在着色器中做同样的事情则更容易和更灵活。
是的,它可能与glsl着色器,但除非我使用几个开关语句和着色器内的循环(这不是很有效),我最终会有1000个着色器。为了获得相同的灵活性。 – user240713
1000个着色器,因为你想以多种不同的方式组合纹理?如果你用固定功能做同样的事情,你也可能会得到很多着色器。你只是看不到它们。我不认为有人已经制造出可以长时间直接实现固定管道的图形硬件。当你使用固定管道时,你只需将它留给驱动程序来生成着色器。 –
我想有可能是另一种解决方案,例如有某种混合函数'mix(srcColor,dstColor,alpha)+ mix(srcColor,dstColor,alpha)'来模拟glBlendFunc。哪些只会是浮点乘法而不是开关语句? – user240713