
MMD导入Maya并使用Arnold渲染出更好的光影效果
1.导入Maya
找一个MMD直接导入Maya的插件:https://github.com/gameboy12615/MMD4Maya
2.灯光设置
添加一个Arnold SkyDome灯光,默认参数即可。如果不添加Arnold灯光,在Viewport中可以看到模型,但是在Arnold渲染器中会全黑。
3.Arnold渲染结果异常与修正

MMD导入Maya后在Arnold渲染器中渲染异常
先检查是否渲染设置中忽略了贴图和材质:

也没问题
打开材质编辑器,看起来正常:

切换渲染平台为Arnold,发现材质都渲染不出来结果了:

看到这里是Phone shader,因此我尝试自建了一个Arnold Phone 材质,对比了之后发现只需要把 Reflectivity设置为0即可正常渲染显示:

看起来正常了:

任何模型资源导入到Maya等类似的建模工具,在渲染时都要考虑:原模型自带材质在新的建模工具中能否正常显示的问题,通常每种建模工具都有自己独有的渲染引擎和对应的材质,因此如果在显示上遇到问题,通常都要从“渲染引擎和对应的材质”方面来解决
要解决第一点的问题,需要熟悉各个渲染引擎(如Arnold、Vray、Redshift)、理解基本的shader原理以及常见的Shader模型的原理
上面的问题虽然解决了,但是依然存在疑问,Phong Shader的原理如下:

参数说明:
La 环境光强度(Ambient light intensity)
Ka 材质环境光反射率 / 材质环境光反射系数(Ambient reflectivity)
Ld 漫射光强度 / 散射光强度(Diffuse light intensity)
Kd 材质漫反射率 / 材质漫反射系数(Diffuse reflectivity)
s 顶点 / 曲面点 到光源方向的单位向量(Direction from the surface point to the light source)
n 顶点 / 曲面点 的法线单位向量(Normal vector at the surface point)
Ls 镜面光强度 / 全反射光强度(Specular light intensity)
Ks 材质镜面反射率 / 材质镜面反射系数(Specular reflectivity)
r 完全反射向量( the vector of perfect reflection)
v 顶点 / 曲面点 到摄像机方向的向量( the vector towards the viewer)
f 镜面高光(specular highlights),值范围在1到200之间,值越小,镜面亮点越大
从公式来看,单独的设置Reflectivity位置为1,并不会使得整个颜色结算结果异常,但是由于无法找到Maya的Phong的实现公式以及具体的对应的参数,因此此处依然未能完全理解原理(此处留坑)