哪里有cocos creator 关于shader的教程?

最近想学一下shader,可是无奈找不到教程,网上有示例但是只知其然不知其所以然,谁有教程共享一份啊,感激不尽

你要写Shader的话,不如OpenGL ES也一起学了,看:
OpenGL.ES.3.0.Programming.Guide

1赞

有没有教程链接什么的推荐一下

我看到你以前也有过类似的提问,后来你是怎么学的?

学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。

4赞

cocos的shader就是标准的opengl的shader。
所以你需要学的是glsl和图形学相关的基础,推荐这个教程给你。
如果你会glsl,想知道怎么cocos总怎么使用,看下面这个帖子,里面有很多例子;
或者我写的教程,讲如何在cocos creator中使用shader的。

13赞

目前creator还没正式支持shader,估计2.0见了

感谢回复

感谢回复,学习了

新版的creator没有sgNode了,也没有GLProgram了。。。。现在怎么搞?

没听说删除了,项目还在用,没有问题

2.0 还不会有,但是 2.1 应该就会有 Material system 了,目前正在研发的新渲染器包含这些 API,不过 2.0 阶段还不会彻底开放,因为我们要更仔细得推敲一下 API 的易用性。

1赞

最好能提供修改attribute属性的接口。要不然shader没法通用、引擎的批处理也没用了。

GLProgram是cocos2d的api,在creator的api文档中找不到。

cc 2.0版本之后,cc.GLProgram会提示函数不存在了,之前使用Shader的方式应该如何使用?

1赞

https://github.com/fylz1125/ShaderDemos
这个demo不错

https://forum.cocos.com/t/creator-2-1-shader/82538/26 shader3Duv动画

https://forum.cocos.com/t/creator-3d-shader-uv/82801/16 shader熔岩特效

同问这个问题