第一篇:快速入门

简介

本篇文章主要目的教你如何快速的理解、掌握cocos  shader的相关知识,并附加实践案例。

shader 我们可以理解为是一种在图形渲染过程中控制像素颜色的过程,通常用来创建各种视觉效果。如光照、阴影、扭曲等。

Material(材质)

material  是用于定义渲染效果的一种资源类型。简单理解可以看着是effect的使用实例,我们可以通过调整材质的属性,来控制物体的渲染效果。

material 需要与Effect一起使用。着色器定义了渲染的细节,而材质提供了一个可调整着色器的参数界面。

创建一个材质材质资源 · GitBook

Material  properties

 相关参数:Pass Params · GitBook

Effect

创建一个EffectCocos Creator 2.4 手册 - Effect

相关语法Effect Syntax · GitBook

内置变量

#include 

Name Type Info
cc_matWorld mat4 模型空间转世界空间矩阵
cc_matWorldIT mat4 模型空间转世界空间逆转置矩阵

#include

Name Type Info
cc_time vec4 x:游戏运行时间(秒)
cc_screenSize vec4 xy:屏幕尺寸 zw:屏幕尺寸倒数
cc_screenScale vec4 xy:屏幕缩放 zw:屏幕缩放倒数
cc_nativeSize vec4 xy:实际着色缓冲的尺寸 zw:实际着色缓冲的尺寸倒数
cc_matView mat4 视图矩阵
cc_matViewInv mat4 视图逆矩阵
cc_matProj mat4 投影矩阵
cc_matProjInv mat4 投影逆矩阵
cc_matViewProj mat4 视图投影矩阵
cc_matViewProjInv mat4 视图投影逆矩阵
cc_cameraPos vec4 xyz:相机位置
cc_exposure vec4 x:相机曝光 y:相机曝光倒数 z:是否启用 HDR w:HDR 转 LDR 缩放参数
cc_mainLitDir vec4 xyz:主方向光源方向
cc_mainLitColor vec4 xyz:主方向光颜色 w:主方向光强度
cc_ambientSky vec4 xyz:天空颜色 w:亮度
cc_ambientGround vec4 xyz:地面反射光颜色

#include

Name Type Info
cc_environment samplerCube IBL 环境贴图

#include

Name Type Info
cc_sphereLitPos[MAX_LIGHTS] vec4 xyz:球面光位置
cc_sphereLitSizeRange[MAX_LIGHTS] vec4 x:球光尺寸 y:球光范围
cc_sphereLitColor[MAX_LIGHTS] vec4 xyz:球光颜色 w:球光强度
cc_spotLitPos[MAX_LIGHTS] vec4 xyz:聚光灯位置
cc_spotLitSizeRangeAngle[MAX_LIGHTS] vec4 x:聚光灯尺寸 y:聚光灯范围 z:聚光灯角度
cc_spotLitDir[MAX_LIGHTS] vec4 xyz:聚光灯方向
cc_spotLitColor[MAX_LIGHTS] vec4 xyz:聚光灯颜色 w:聚光灯强度

#include

Name Type Info
cc_matLightPlaneProj mat4 平面阴影的变换矩阵
cc_shadowColor vec4 阴影颜色

自定义内置方法

  • 2.x 自定义内置方法

在引擎路径:

/Applications/Cocos/Creator/2.4.11/CocosCreator.app/Contents/Resources/engine/cocos2d/renderer/build/chunks

添加.inc 文件,例如:

第一篇:快速入门_第1张图片

再Effect中使用:

第一篇:快速入门_第2张图片第一篇:快速入门_第3张图片

  • 3.x 自定义内置方法

可直接在项目的assets目录下创建一个chunks文件夹,创建.chunk 文件,其他同2.x 

你可能感兴趣的:(cocos-Shader,数码相机)