【Cocos2d-x】shader语法注意事项

前端之家收集整理的这篇文章主要介绍了【Cocos2d-x】shader语法注意事项前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1. 不要用隐式类型转换

例子1:

int i = 5; // 没问题
float r = i * 0.05; // 有问题

例子2:
float a = 0; // 定义和赋值float不能不加".0"

以上两个例子在OpenGL上没任何问题,但在移动端测试表明,在OpenGL es上会编译失败。


2. 不能用循环,for和while都不能

GLSL用for和while循环在OpenGL上运行或许没问题,在大多数手机上或许也没问题,但就是在某些手机上(比如小米4)会直接崩溃,所以建议还是不要用。在我的描边shader里,一开始也是用循环的,但后来就是由于在小米4上崩溃,所以才意识到不能用循环,这是一个坑。


3. 不能用%,用mod(x,y)
GLSL里面没有C语言的%,用mod函数代替。


4. 如果用引擎3.x版本的STRINGIFY方法,记得要在#ifdef和#endif的前后加\n(见ccShaders.cpp)

原文链接:https://www.f2er.com/cocos2dx/343462.html

猜你在找的Cocos2d-x相关文章