您当前的位置: 首页 > 

开发游戏的老王

暂无认证

  • 2浏览

    0关注

    803博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

粒子着色器

开发游戏的老王 发布时间:2019-09-01 12:08:14 ,浏览量:2

原文地址: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

Built-inDescriptioninout vec4 COLORParticle color, can be written to and accessed in mesh’s vertex function.inout vec3 VELOCITYParticle velocity, can be modified.out float MASSParticle mass, use for attractors (not implemented in 3.1).inout bool ACTIVETrue when Particle is active, can be set to false.in bool RESTARTTrue when particle must restart (lifetime cycled).inout vec4 CUSTOMCustom particle data. Accessible from shader of mesh as INSTANCE_CUSTOM.inout mat4 TRANSFORMParticle transform.in float TIMEGlobal time in seconds.in float LIFETIMEParticle lifetime.in float DELTADelta process time.in uint NUMBERUnique number since emission start.in int INDEXParticle index (from total particles).in mat4 EMISSION_TRANSFORMEmitter transform (used for non-local systems).in uint RANDOM_SEEDRandom seed used as base for random.
关注
打赏
1656935939
查看更多评论
立即登录/注册

微信扫码登录

0.0396s