这么改没有效果,求助如何用脚本动态更改toon材质的USE_OUTLINE_PASS属性
material.define
能写的完整点吗,好几种写法都试过了不行
https://forum.cocos.org/uploads/default/original/3X/9/c/9c93e31e529cdd731bcd1a8e674d7d3b8e999aac.png 这个是3.0里的写法。
完整帖子: 分享一个shader Lod的实现
常用material.setProperty(‘mainColor’ / ‘mainTexture’ / ‘albedo’, …)
稍微试了一下,看起来执行时recompile已经修改了属性,但是显示效果似乎确实无变化,也许lz需要new material试试
各位大佬是否有其他轮廓描边的方案?实际上我需要的只是做一个模型选中的外轮廓描边效果,相当于3D模型投影到2D平面的图形加上2D轮廓描边,引擎自带的Toon材质主要是做卡通渲染的,我只需要面向镜头的2D裁面外轮廓描边效果
那要不弄个摄像机拍选中的模型,然后把拍到的图片做2D的外轮廓描边,2D的轮廓描边在论坛上挺多的
好的,我尝试一下。
之前就遇到过,已经放弃了;我的shader是自己写的卡通瞄边,现在方案是一个角色2个材质,一个带outline,一个不带;需要时候切换材质。。
我写的是Creator 3D版本。另外我是clone了一个新的材质
可以试下两个material切换,也可以试下设置lineWidth为0
好的,我试下lineWidth,刚刚试了下standard材质,用recompileShaders修改defines属性是生效的,知道为什么toon材质修改就没有效果
刚试了下,修改lineWidth可以生效,感谢
如果想要standard材质, 加上toon的描边,有办法将2个材质结合吗
只能找引擎effect代码试下结合吧,我也不太会shader
但是这种方案感觉还是好复杂~模型有非常多零件 每个零件都有不同的材质~ 如果要在运行时动态加上秒变,得递归所有meshrenderer节点,动态更换材质
导入自带的outline-vs.chunk,参考toon shader,前面显示描边踢出背后即可 cullMode: back