分享一个Blinn-phong

https://gameinstitute.qq.com/community/detail/123553
根据这篇文章翻译的,如有谬误还请指正。
引擎版本v1.1.1
主要是在引擎自带的unlit.effect基础之上进行修改的。pbr太过消耗GPU了,大面积使用pbr在低端机上会严重降低帧率。unlit性能好但是缺乏光影效果,立体感会降低很多。业内比较经典的是blinn-phong,所以翻译了一个。

Blinn-phong.rar (1.6 KB)

效果如下:

4赞

厉害~~~

creator 1.2 打开出错~~异常如下:

我用的是v1.1.1版本:joy:。v1.2还不是正式版吧。

测试版本~应该也快正式版本了

升级到了v1.2.0 版本
Blinn-phong.rar (1.6 KB)

2赞

厉害了,跟进很快啊~~

最近在升级到v1.2.0

PBR的effect和 这个 blinn-phong的渲染效率,楼主有测试过吗?反正我用pbr是感受到了深深的绝望。

pbr在低端机上渲染一个地面估计就只能跑十几帧了。 blinn-phong肯定比pbr性能消耗低呀

你说的没错,再低端机上就一个面,就能掉到十几帧。我真是服气了

楼主试过laya么,,,,,pbr有多少帧呀:joy:

重点不是面数,是像素填充率,面越大损耗越高

panda大大,弱弱的问一句,为啥面越大损耗越高啊。其实我也有用laya,并没有这个问题。是shader的问题么。还是光影计算或者裁剪问题?我们家的项目也是这样。总不能拆解模型吧。希望cocos越来越好。

我是把pbr换成了unlit然后低端机就不卡了:sunglasses:

fragment shader 是逐像素计算的,PBR 的 fs 的确损耗比较高,要采样多个纹理,进行比较复杂的光源计算。而这部分的损耗和模型复杂度无关,主要相关的是模型光栅化后的像素数量,像素数量越多,损耗就越高。面越大,在摄像机中,自然也就会产生越多像素填充,比如地面,墙面等。整体换成 unlit 或者楼主的 blinn-phong 就会好很多。当然这也和项目的画面风格有关系,需要整体考量

谢谢大大。小游戏平台还是先考虑性能吧。效果啥的一般发行都知道小游戏平台的尿性,所以还是建议cocos出一些性能运算低的shader。bp的shader我们正在用,也满足要求了。希望cocos越来越好哈~

1.2的ShadowMap, 谁来改一个支持的版本

支持v1.2.0shadowMap 阴影的blinn-phong
Blinn-phong.rar (2.0 KB)

试了一下你的支持v1.2.0shadowMap 阴影的blinn-phong, 没有阴影, 是不是哪里还有问题