3.8.0及以上,玉兔麒麟子的边缘光shader有问题,低于3.8.0版本没问题

你是 mac还是 win,我是 mac,难道是 macos 的原因?

你指的是 xcode还是炸白的问题

win!n

我找个 win 试一下

Xcode 的我论坛没搜索到解决办法,是有链接吗,老铁

https://forum.cocos.org/t/topic/153307/2

win我也试过了,也会炸白呀,这个项目你可以直接看
update我已经加了位移(注释位移就没问题),直接运行,然后开启按钮,最后一个要最大,其他颜色调一调就行,

Demo发来看看

不知道为什么传文件一直 502 错误,我待会儿再试试

图片
兄弟,编译的问题按照你说的那个帖子确实解决了,可以运行了
但是运行过程报了这个错误,你这边知道什么原因吗

来了,这个是下载链接,这里头不能传这么大的
链接: https://pan.baidu.com/s/1Nm1ltKIEJpj7NJ63DYfKgA?pwd=5b23 提取码: 5b23 复制这段内容后打开百度网盘手机App,操作更方便哦

老铁,有复现发现问题吗?求解

image 试了一下符合预期,我把fRim 取平方

没有取平方有出现那个问题吗?炸白的问题

不对呀,我取平方一样炸白图片

也没有你说的问题,你换个边缘光颜色看看

换了呀,我让我朋友也试过了,一样炸色,奇怪,你们都不会,不能够呀,我朋友是win的电脑,我的是mac,都一样,图片 只要在update里头加上位置更新,就变成这个炸色,没有位置更新就是正常

老铁,你发了啥?没看到~

你这shader就有问题啊!你的法线和摄像机的视线都不对,也不能说不对只是空间不统一法线用的视图空间下的法线确不是,而且还是直接写死了0,0,1.0这肯定不对啊啥呀这都是!我改了一下
vec3 viewDir = normalize(cc_cameraPos.xyz - v_position);

// float fRim = (1.0 - dot(normalize(v_view_normal),vec3(0,0,1.0))) * rimColor.w;
float fRim = (1.0 - abs(dot(normalize(v_normal),viewDir)));
fRim = pow(fRim, rimPow);

color.rgb = mix(color.rgb,rimColor.rgb,fRim);

老铁你这个改的结果一样的呀,我用你的代码一样的炸色问题,我觉得不是脚本的问题,3.8以下都没问题,边缘光都正常,update里头更新位置也正常,但是3.8及以上,只要update里头更新位置,就会炸色