cocos Shader & Glsl 入门(三)
#四丶着色器
顶点着色器(Vertex Shader)顶点着色器的功能是根据输入的顶点数据和Uniform数据(如果有),来填写当前顶点 内置的输出变量 ,并将一些有用数据传递给下一阶段。
一个核心的顶点着色器模板如下:layout(location = 0) in vec2 position;
out gl_PerVertex { vec4 gl_Position;};
void main(){ gl_Position = vec4(position,0.0f,1.0f);}
layout(location = 0) 代表了值对应流水线创建时顶点输入布局中 索引为0 的顶点属性
in 代表是输入变量
vec2表示该变量类型是二维向量,它需要与顶点输入布局中的格式(Float2)对应
position是输入变量的名称,它可以是任意的
out gl_PerVertex { vec4 gl_Position; }; 是顶点着色器中固定输出定义
gl_Position = vec4(position,0.0f,1.0 ...
cocos Shader & Glsl 入门(二)
#三丶 概述
这篇纯理论,概述计算机从硬件到软件表现。软件是基于硬件来操作的,所以软件工程师还是需要懂一点硬件。明白硬件到软件的联系才好把软件串联到现实。
1. GPU GPU既图形处理器,由CPU发起到屏幕显示这一过程。而shader就是这一个流水线过程中的一部分,既渲染流水线中的可编程部分。
cocos Shader & Glsl 入门(一)
GitHub地址:版本:cocos creator 引擎版本2.4.7#一丶 前言 主要目的,记录总结cocos着色器的使用。虽然已经有很多的大佬分享过cocos的着色器的使用经验,但是cocos的着色器使用总体来说没有那么友好,且亦作为个人记录之用。系列只是作为一个入门文章,且效果只会是简单的,常用的效果但是一些基本的常规的操作不会提及。也是会基于前人和目前cocos论坛,博客做一些总结与补充。会详细的解释一个个shader的原理。#二丶准备工作 1.了解cocos creator effct的使用。参见 https://docs.cocos.com/creator/manual/zh/ 2. 了解线性代数相关知识。 3. 了解GLSL基本语法。参见 https://github.com/wshxbqq/GLSL-Card 4. cocos准备,vscode cocos effect高亮插件(如纯Glsl则在vs code中安装glsl-canvas,GLSL Lint)。
cocos creator 无法设置刷新率
cocos creator版本2.4.2,测试了setFrameRate()设置未30/60的情况下帧率无效。通过查看cocos源码CCGame.js可知在非原生平台下,设置fps为60/30时,实际设置的循环是requestAnimationFrame的循环中。而只有在native平台或者设置的fps值不为这两个值时,才会进入_settime的定时器中。而设置为30时是将目前的刷新率减半。当前版本可以通过不设置为这两个值来更新。或者直接删除判断为requestAnimationFrame的代码分别在_setAnimFrame和_runMainLoop中。
