[学习笔记][3dsMax][Maya][Shaderfx]卡通渲染Outline效果实现

尝试用shaderfx在Max/Maya中实现卡通渲染效果,结果一上来在Outline这步就卡住了,卡了小三天,终于凑合着解决了:
用传统方法双Pass实现Outline,也就是第一个Pass在顶点着色器中把顶点沿着法线向外扩一圈,然后Cull Mode设置为剔除正面,然后第二个Pass开始正常着色。
主要问题不清楚是什么原因,具体表现就是在shaderfx中像这样链接两个pass但是只能渲染出0号pass:在这里插入图片描述

还有一个问题就是不管在Pass节点还是在State Settings节点中设置CullMode都没卵用,不清楚原因:
在这里插入图片描述
在这里插入图片描述
最后是这样解决的:
在这里插入图片描述
首先勾选State Settings节点的这个选项,这样导出的.fx文件中会出现相关的设置
在这里插入图片描述
然后选择Hardware Shader节点,Shader Config设置为HLSL_5,默认是HLSL_3,不知道为什么HLSL_3导出的.fx无法使用,然后设置Filename然后保存.fx文件。

用文本编辑器打开保存出来的.fx文件:
在这里插入图片描述
可以在光栅器配置这个地方,如果没有CullMode就加一行,目前只知道可以设置FRONT和BACK,也就是剔除正面和提出背面,但是不知道为什么,在Maya中是反过来的,也就是FRONT是剔除背面,BACK是剔除正面。还可以看到下面还可以设置混合模式。

然后双pass的问题也只能在代码中解决,可以再shadefx中连出各种pass,分别生成代码,然后将其中的顶点、像素着色器以及相关的代码拷贝到一起,然后在最后如下这个地方:
在这里插入图片描述
手动复制多PASS,然后进行不同的设置。

最后在Max中使用DirectX shader加载这个.fx文件就ok了~,简单效果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值