编辑器中可以添加 3 种 ShaderLab 模板: Unlit
、PBR
、和 着色器片段
其中 Unlit
和 PBR
是使用 ShaderLab 语法进行编写的着色器模板,着色器片段 则是为了方便代码段复用,ShaderLab 中可以如下使用 include
宏进行代码段引用,后续编译过程中会被自动扩展替换。使用方式详见语法标准模块。
当前ShaderLab
尚未集成到引擎 core 核心包中,需要在引擎初始化时传入新建的ShaderLab
对象,否则引擎无法解析使用ShaderLab
语法编写的 Shader。
ShaderLab
初始化import { ShaderLab } from "@galacean/engine-shaderlab";
const shaderLab = new ShaderLab();
// 使用ShaderLab初始化Engine
const engine = await WebGLEngine.create({ canvas: "canvas", shaderLab });
// 直接使用 ShaderLab 创建 Shader
const shader = Shader.create(galaceanShaderCode);