最近想学一下shader,可是无奈找不到教程,网上有示例但是只知其然不知其所以然,谁有教程共享一份啊,感激不尽
你要写Shader的话,不如OpenGL ES也一起学了,看:
OpenGL.ES.3.0.Programming.Guide
有没有教程链接什么的推荐一下
我看到你以前也有过类似的提问,后来你是怎么学的?
学Shader和怎么在Creator使用Shader是两回事呀。如果你要知道如何在Creator中使用Shader:
下面是创建一个Shader:
glProgram = new cc.GLProgram();
if (cc.sys.isNative) {
glProgram.initWithString(vert, frag);
glProgram.link();
glProgram.updateUniforms();
} else {
glProgram.initWithVertexShaderByteArray(vert, frag);
glProgram.addAttribute(cc.macro.ATTRIBUTE_NAME_POSITION, cc.macro.VERTEX_ATTRIB_POSITION);
glProgram.addAttribute(cc.macro.ATTRIBUTE_NAME_COLOR, cc.macro.VERTEX_ATTRIB_COLOR);
glProgram.addAttribute(cc.macro.ATTRIBUTE_NAME_TEX_COORD, cc.macro.VERTEX_ATTRIB_TEX_COORDS);
glProgram.link();
glProgram.updateUniforms();
}
使用的主要针对Sprite:
sprite._sgNode.setShaderProgram(glProgram);
vert和frag就是OpenGL的顶点Shader和片段Shader,这就需要你学习Shader语法了。
以上方法用到_sgNode,不保证以后不能用,因为官方也没有一个标准的Shader使用API。
cocos的shader就是标准的opengl的shader。
所以你需要学的是glsl和图形学相关的基础,推荐这个教程给你。
如果你会glsl,想知道怎么cocos总怎么使用,看下面这个帖子,里面有很多例子;
或者我写的教程,讲如何在cocos creator中使用shader的。
目前creator还没正式支持shader,估计2.0见了
感谢回复
感谢回复,学习了
新版的creator没有sgNode了,也没有GLProgram了。。。。现在怎么搞?
没听说删除了,项目还在用,没有问题
2.0 还不会有,但是 2.1 应该就会有 Material system 了,目前正在研发的新渲染器包含这些 API,不过 2.0 阶段还不会彻底开放,因为我们要更仔细得推敲一下 API 的易用性。
最好能提供修改attribute属性的接口。要不然shader没法通用、引擎的批处理也没用了。
GLProgram是cocos2d的api,在creator的api文档中找不到。
cc 2.0版本之后,cc.GLProgram会提示函数不存在了,之前使用Shader的方式应该如何使用?
https://forum.cocos.com/t/creator-2-1-shader/82538/26 shader3Duv动画
https://forum.cocos.com/t/creator-3d-shader-uv/82801/16 shader熔岩特效
同问这个问题