在3dmax里实现unity的texture shader并渲染
3dsmax版本:2019
首先感谢这位大哥的 Unity与3DMax效果同步——3DMaxDX Shader:https://zhuanlan.zhihu.com/p/100253142
在3dsmax里,首先更改材质类型,选择 DirectX Shader
然后选择一个HLSL文件,我这个文件就是把3ds max的StandardFX11.fx复制了一遍。
Unity的Unlit/Texture shader不受光照影响,所以我的目标就是直接把baseColor的颜色输出出来,就完事了。
在.fx里声明颜色贴图和对应的SamplerState,这块是照着知乎那大哥写的。
Texture2D g_BaseColorTexture <
string UIName = “BaseColor”;
string ResourceType = “2D”;
int Texcoord = 0;
int MapChannel = 1;>;
SamplerState g_BaseColorSampler
{
MinFilter = Linear;
MagFilter = Linear;
MipFilter = Linear;
AddressU = Wrap;
AddressV = Wrap;
};
然后在std_PS,采样之后返回baseColor的颜色就行了,也不需要计算光照啥的
float3 baseColor = g_BaseColorTexture.Sample(g_BaseColorSampler, IN.UV0.xy).rgb;
return float4(baseColor,1);
左边是新的材质,右边是3ds max默认的材质
结果现在render后长这个样子。。。
注意render的时候 选这个渲染器
终于出来了