dx11 Shaders for maya

阅读更多
我准备花点时间来弄点dx11 shader的范例,有兴趣的可以去gitub下载。
里面也有ShaderFx的场景,一开始我是想全手写的,但试用了ShaderFx之后,感觉还是连节点比较简单。

https://github.com/mackst/myRandomStuff/tree/master/shaders


想了想,还是把dx11 shahder加载的方法说明一下。
  1. 启动maya后,把Windows->Settings/Preferences->Preferences->Display里面的Viewport 2.0->Rendering engine,改成DirectX 11,然后重启maya
  2. 在maya中加载dx11Shader插件,把Windows->Settings/Preferences->Plug-in Manager里面的dx11Shader.mll勾上
  3. 创建一个DirectX 11 Shader材质球,然后把.fx文件加载进来就行了


部分shader是需要灯光的,需要创建灯光并按7


经过这几天ShaderFx的使用,感觉某方面它还是挺方便的,例如各种属性的添加,矩阵的引用,但在代码输出方面感觉挺难控制的,特别是那种复杂的数学计算,比如你想在一行内作6、7个数学计算,输出的代码将会有好几行。某些特性不能得到实时的反馈,比如通过灯光节点来计算光照方向,方向好像永远都是从+Y向-Y,只有输出代码,并加载到dx11 shader才能得到实时的反馈,这个可能跟节点场景的实时刷新有关,不知道能不能开启实时刷新。还有个别节点的变量命名在代码输出时是无效的,就是你希望它在代码输出时是某个名称,但输出后却不是,这不知道是否是bug。有部分设置在ShaderFx里是能正常工作的,但代码输出却没输出任何相关的代码。

我个人的结论就是,ShaderFx能做大部分的事情,但最好还是输出成代码,如果希望输出后的代码有更好的可读性,还是需要手动修改。

当然,某些部分也跟我对ShaderFx的不太了解有关,比较使用的时间连一个星期都不到。

你可能感兴趣的:(dx11 Shaders for maya)