原文地址:Docs » Shading » Shading reference » Particle shaders
粒子着色器(Particle shaders)粒子着色器是一种在物体被绘制之前就执行的特殊顶点着色器。它们被用于计算材质的属性,例如颜色,位置,旋转等。它们可以使用各种(2D,3D)标准着色器进行绘制,这依赖于它们自身是2D还是3D。
粒子着色器是独一无二的,因为它们并非用于绘制对象本身;它们用于计算粒子属性,这些粒子属性稍后会被用于2D着色器的画布项目(which are then used by the CanvasItem of Spatial shader)。粒子着色器只包含顶点函数,这些顶点函数可以输出多个属性(详见下方的顶点内置属性)
粒子着色器使用一个变换反馈着色器(transform feedback shader),变换反馈着色器是一种独立运行的特殊类型的顶点着色器。它们可以像普通顶点着色器一样从缓冲区获取数据,不同的是,它并不向片元着色器输出以供像素处理,取而代之地,它可以向数据缓冲区输出。因此变换反馈着色器每次运行都可以自身为基础,而不像其它着色器,一旦将数据写入缓冲区便抛弃计算结果。
注意:粒子着色器仅在GLES3中有效。如果你使用GLES2,请使用CPUParticles。
渲染模式 渲染模式描述keep_data在重启时不要清楚之前的数据disable_force关闭引力. (3.1版中还没有实现)disable_velocity忽略VELOCITY 的值 内置顶点属性(Vertex built-ins)当值注明为in
时,意味着只读,当值注明为out
时,意味着可以选择性地写入,但是并不一定提供一个有效值。当值注明为inout
时,它会提供一个有效的默认值,并且可以选择性地写入。采样器(sampler)不是可写对象,它们也没有被标记。
如果想要在3D(空间)着色器中使用COLOR
属性,请将use_vertex_as_albedo
设置为true
。