如果您善于编写自己的 着色器在 GPU 上运行的程序。 了解更多信息
请参阅 术语表,则可以使用 渲染器模块 的 **自定义顶点流** 功能配置您的 粒子系统通过生成和动画场景中大量小型 2D 图像,来模拟液体、云朵和火焰等流动实体的组件。 了解更多信息
请参阅 术语表,从而将更广泛的数据传递到您的自定义着色器。
您可以从许多内置 数据流 中进行选择,例如速度、大小和中心位置。除了能够创建强大的自定义着色器外,这些流还允许许多更通用的优势
还有两个完全自定义的每个粒子数据流 (ParticleSystemVertexStreams.Custom1 和 ParticleSystemVertexStreams.Custom2),可以在脚本中填充它们。使用您的数据数组调用 SetCustomParticleData 和 GetCustomParticleData 来使用它们。有两种使用此数据的方法
在添加顶点流时,Unity 将在每个项目旁边提供括号中的部分信息,以帮助你在着色器中读取正确的数据。
括号中的每个项目对应一个 Vertex Shader在渲染 3D 模型时在模型的每个顶点上运行的程序。 了解更多信息
请参阅 术语表 输入,你应在着色器中指定该输入。下面是此配置的正确输入结构。
struct appdata_t {
float4 vertex : POSITION;
float3 normal : NORMAL;
fixed4 color : COLOR;
float4 texcoords : TEXCOORD0;
float texcoordBlend : TEXCOORD1;
};
请注意,UV 和 UV2 都在 TEXCOORD0 的不同部分传递,因此我们对两者使用一个声明。要在着色器中访问每个 uv,请使用 xy 和 zw 交错。这使你可以有效地打包顶点数据。