【Cocos2d-x】shader语法注意事项
发布时间:2020-12-14 21:04:21 所属栏目:百科 来源:网络整理
导读:1. 不要用隐式类型转换 例子1: int i = 5; // 没问题float r = i * 0.05; // 有问题 例子2: float a = 0; // 定义和赋值float不能不加".0" 以上两个例子在OpenGL上没任何问题,但在移动端测试表明,在OpenGL es上会编译失败。 2. 不能用循环,for和while都
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)
4. 如果用引擎3.x版本的STRINGIFY方法,记得要在#ifdef和#endif的前后加n(见ccShaders.cpp) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |