跳到主要内容

着色器

着色器允许您使用 WebGL 对任何节点应用自定义效果。

Experimental
This is an experimental feature. The behavior and API may change drastically between minor releases.

可以使用 shaders 属性指定着色器。在最简单的情况下,该值应该是一个包含片段着色器 GLSL 代码的字符串:

import myShader from './myShader.glsl';

//...

view.add(
<Circle
size={200}
fill="lightseagreen"
shaders={myShader}
/>,
);

下面是一个简单着色器的示例,它反转节点的颜色:

myShader.glsl
#version 300 es
precision highp float;

#include "@motion-canvas/core/shaders/common.glsl"

void main() {
outColor = texture(sourceTexture, sourceUV);
outColor.rgb = 1.0 - outColor.rgb;
}

GLSL 预处理器

Motion Canvas 附带一个简单的 GLSL 预处理器,允许您包含文件