当前位置: 首页 > news >正文

通过粒子系统customData传值给材质球

粒子特效使用的材质球,如果通过动画控制shader的某个参数,例如溶解阈值,所有的粒子都会按照相同的数值变化,如果需要每个粒子在自己的生命周期内按照曲线变化,则可以通过customData实现。

1.ParticleSystem中勾选CustomData,支持8个通道,可以选择固定参数或者曲线

2.ParticleSystem中勾选Render中的Custom Vertex Streams

添加custom1和custom2两个通道,各支持四个通道

注意不可以调整上图内UV和Custom的顺序,上图就是默认添加后的顺序;

uv                = TEXCOORD0.xy

Custom1.xy = TEXCOORD0.zw     Custom1.zw = TEXCOORD1.xy

Custom2.xy = TEXCOORD1.zw     Custom2.zw = TEXCOORD2.xy

由于uv占用了TEXCOORD0寄存器,因此Custom2.zw存在了TEXCOORD2寄存器

Shader "Unlit/TestCustomData"
{Properties{_MainTex ("Texture", 2D) = "white" {}_TestValue("TestValue1",Range(0,0.5)) = 0.2}SubShader{Tags { "RenderType"="Opaque" }LOD 100Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"float _TestValue;struct appdata{float4 vertex : POSITION;     float4 customData1 : TEXCOORD0;          float4 customData2 : TEXCOORD1;   float4 customData3 : TEXCOORD2;                                       };struct v2f{float2 uv : TEXCOORD0;           float4 vertex : SV_POSITION;float4 testData1 : TEXCOORD1;float4 testData2 : TEXCOORD2;         };sampler2D _MainTex;float4 _MainTex_ST;v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = TRANSFORM_TEX(v.customData1.xy, _MainTex);o.testData1.xy = v.customData1.zw;o.testData1.zw = v.customData2.xy;o.testData2.xy = v.customData2.zw;o.testData2.zw = v.customData3.xy;return o;}fixed4 frag (v2f i) : SV_Target{          fixed4 col = tex2D(_MainTex, i.uv);//col *= i.testData1;col = i.testData2;return col;}ENDCG}}
}

http://www.lryc.cn/news/461388.html

相关文章:

  • 常用分布的数学期望、方差、特征函数
  • ssh-配置
  • Python 在 JMeter 中如何使用?
  • 贪心day1
  • Redis 完整指南:命令与原理详解
  • 【2024软考高级架构师】论文篇——3、论Web系统的测试技术及其应用
  • 迪杰斯特拉算法的理解
  • 华为OD机试 - 文本统计分析(Python/JS/C/C++ 2024 E卷 200分)
  • 计算机挑战赛9
  • C++学习路线(十六)
  • 2024年最受欢迎的AI工具与实际应用:AI技术对未来生活的深远影响
  • 【网络安全】账户安全随笔
  • 在线培训知识库管理系统:教育行业的新动力
  • 【AI声音克隆本地整合包及教程】第二代GPT-SoVITS V2:声音克隆的新境界
  • 博看书苑 8.8.1| 免费阅读海量图书期刊
  • 导致动态代理无法使用的原因有哪些?
  • 熟练使用Spring Boot、Spring Cloud Alibaba微服务开发框架,并深入理解其原理 学习要求
  • 2024-10-09 问AI: [AI面试题] 描述数据预处理在 AI 中的重要性
  • Linux中文件的理解
  • 益安宁丸,国药准字,值得信赖
  • Django项目的创建及说明(详细图解版)
  • MySQL 9从入门到性能优化-二进制日志
  • Cloudlog delete_oqrs_line 未授权SQL注入漏洞复现
  • 【Linux】解锁软硬链接奥秘,高效动静态库管理的实战技巧
  • 【设计模式】Python 后端开发中的工厂模式设计与实现
  • 划重点!入门安全测试,这几点要注意!
  • mysql 09 独立表空间结构
  • linux 虚拟环境下源码安装DeepSpeed
  • 常见八大排序算法
  • 汽车免拆诊断案例 | 2022款大众捷达VS5车行驶中挡位偶尔会锁在D3挡