欢迎光临散文网 会员登陆 & 注册

CocosCreator2.x_Shader(一)

2021-11-09 17:46 作者:会飞的蜗牛007  | 我要投稿

一、什么是shader?

shader专业直译名词是:着色器,着色程序,渲染。

它是代替固定渲染管线来实现图像渲染的可编辑程序,可编辑就代表了它的多态性,可以实现各种各样的图像效果而不用受显卡的固定渲染管线限制。

其中Vertex Shader(顶点着色器)主要负责顶点的几何关系等的运算,Pixel Shader(像素着色器)主要负责片源颜色等的计算。

理解上Shader是一段代码,通过编程告诉GPU如何绘制顶点和颜色,从而实现各种各样的图像效果

上下文的理解都参照了《博客园》昵称叫“gamedaybyday”的《CocosCreator Shader笔记》这篇文章,并不是说这篇文章写的有多完整,而是它为我指明了shader入门方向,这非常重要,非常感谢,再次感谢。

二、cocosCreator中的shader基础

在cocoscreator2.x中,每一个cc.Sprite组件和cc.Label组件都有一个默认Materials材质属性


创建渲染节点sprite或label时默认带的属性

每个材质,都对应一个shader,编辑器有默认的materials目录(存放材质),和effects程序目录(存放shader)

存放材质和shader的目录,以及材质所使用的shader

选中一个shader,就可以在属性检查器里预览其代码

shader:builtin-toon的代码

既然shader是一段编程,那么就有对应的编程语言,我暂时理解为和C++,java等语言差不多shader语言有3种:

1.基于OpenGL的OpenGL Shading Language,简称GLSL。

2.基于DirectX的High Level Shading Language,简称HLSL。

3. NVIDIA公司的C for Graphic,简称Cg语言。

cocos结合了YAML和GLSL,使用一种单源码嵌入式领域特定语言Cocos Effect;

YAML 是一种标记语言,语法和其他高级语言类似,可以简单表达清单、散列表,标量等数据形态。特别适合用来表达或编辑数据结构、各种配置文件、倾印调试内容、文件大纲(例如:许多电子邮件标题格式和YAML非常接近)。YAML 的配置文件后缀为 .ymlrunoob.yml 。

在cocos Effect中,YAML 部分声明流程控制清单, GLSL 部分声明实际的 shader 片段,这两部分内容上相互补充, 共同构成了一个完整的渲染流程描述

关于cocos Effect语法:https://docs.cocos.com/creator3d/manual/zh/material-system/effect-syntax.html

官网其实介绍的很详细,不过这里还是跟着官网介绍记录一下。

shader编辑官方推荐使用VSCode,在vscode中安装Cocos Effect插件,该插件可以高亮effect文件,方便阅读和编辑代码

搜索并安装cocos effect插件

在解析官方自带的shader内容之前,先得熟悉下声明渲染流程控制清单的YAML语法和片段语言GLSL的语法。

这部分专门在CocosCreator2.x_Shader(二)中介绍

工欲善其事,必先利其器,心急吃不了热豆腐啊,还是得一步一步来...加油



CocosCreator2.x_Shader(一)的评论 (共 条)

分享到微博请遵守国家法律