HLSL:处理缺乏TexCoords的问题?
|
我正在编写我的前几个着色器,通常是编写一个着色器来完成功能,因为我意识到主要的XNA库不支持它们。
我遇到的麻烦是,并非我在特定场景中的所有模型都在其中包含纹理数据,而我不知道该如何处理。 XNA主要库似乎通过对BasicEffect使用包装器类来处理它,通过内容管理器加载它,并相应地有选择地启用或禁用纹理处理。
对于自定义着色器,完成此操作有多困难?我正在写的是一个通用的“色相偏移”效果,也就是说,我希望使用此技术绘制的任何内容都具有一定的纹理颜色(如果有)和顶点色相偏移。我是否需要编写单独的着色器,一个着色器带有纹理,而另一个不带纹理?如果是这样,当我遍历我的MeshParts时,有什么方法可以检测给定零件是否具有纹理坐标,以便我可以应用正确的效果?
没有找到相关结果
已邀请:
1 个回复
藐刚
(至少是XNA 4.0之前的版本)是如何做到的。 要检测模型网格零件是否具有纹理坐标,请尝试以下操作:
内容管道设置其“ 0”的方式是通过“ 3”。如果设置了
,则仅打开
属性。