Unity 一个面片的最大顶点数为65524,所以大于这个数,请拆分成多个面片
1.获取汽车x轴的最大值和最小值[-2.5,2.5]+R
surfaceShader 语法
surf :surface shader的方法名
vert :使用顶点程序方法名
surface shader 方法不能有返回值
源代码:
Shader "Sbin/SurfaceShader" {Properties {_Glossiness ("Smoothness", Range(0,1)) = 0.5_Metallic ("Metallic", Range(0,1)) = 0.0_UpColor("UpColor",color) = (1,0,0,1)_DownColor("DownColor",color) = (0,1,0,1)_Center("Center",range(-0.7,0.7)) = 0_R("R",range(0,0.5)) = 0.2}SubShader {Tags { "RenderType"="Opaque" }LOD 200CGPROGRAM#pragma surface surf Standard vertex:vert fullforwardshadows//说明:pragma surface method1 Standard vertex:method2    fullforwardshadows#pragma target 3.0sampler2D _MainTex;struct Input {float2 uv_MainTex;float x:TEXCOORD0;};half _Glossiness;half _Metallic;float4 _UpColor;float4 _DownColor;float _Center; float _R; void vert(inout appdata_full v,out Input o){o.uv_MainTex = v.texcoord.xy;o.x = v.vertex.x;}void surf (Input IN, inout SurfaceOutputStandard o) {fixed4 c = tex2D (_MainTex, IN.uv_MainTex);o.Albedo = c.rgb;o.Metallic = _Metallic;o.Smoothness = _Glossiness;o.Alpha = c.a;float d = IN.x - _Center;//融合带float s = abs(d);d = d/s;//正负值分别描述上半部分和下半部分,取值1和-1float f = s/_R; //范围>1:表示上下部分;范围<1:表示融合带f = saturate(f);d *= f;//表示全部[-1,1];范围>1:表示上部分;范围<1:表示融合带;范围<-1:表示下部分d = d/2+0.5;//将范围控制到[0,1],因为颜色值返回就是[0,1]o.Albedo += lerp(_UpColor,_DownColor,d);}ENDCG}FallBack "Diffuse"
}

效果:

Cg入门20:Fragment shader - 片段级模型动态变色(实现汽车动态换漆)相关推荐

  1. Learn OpenGL(四)——片段着色器(Fragment Shader)

    片段着色器(Fragment Shader) 片段着色器是第二个也是最终我们打算创建的用于渲染三角形的着色器. 片段着色器的全部, 都是用来计算你的像素的最后颜色输出. 为了让事情比较简单, 我们的片 ...

  2. NLP-生成模型-2019:TransformerXL【对Vanilla Transformer的改进:片段级递归机制、相对位置编码】【超出固定长度上下文的注意力语言模型】

    <原始论文:Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context> 一.概述 一句话简介:Tran ...

  3. Unity cg vertex and fragment shaders(二)

    着色器的一般结构: Shader "MyShader/MyShaderName" {Properties {// ... properties here ...}SubShader ...

  4. 从入门到深入:移动平台模型裁剪与优化的技术探索与工程实践

    可以看到,通过机器学习技术,软件或服务的功能和体验得到了质的提升.比如,我们甚至可以通过启发式引擎智能地预测并调节云计算分布式系统的节点压力,以此改善服务的弹性和稳定性,这是多么美妙. 而对移动平台来 ...

  5. 机器学习入门笔记(一):模型性能评价与选择

    文章目录 一.训练误差与测试误差 1.1 基本概念 1.2 训练误差 1.3 泛化误差(测试误差) 1.4 过拟合 二.模型评估方法 2.1 留出法(hold-out) 2.2 正则化 2.3 交叉验 ...

  6. Unity 中用 Vertex Fragment Shader 实现 surface shader 中的 Diffuse 和 Decal

    自己体验了以后发现surface shader确实是隐藏了好多好多的内部实现呀,像我没有考虑的多光源,阴影,衰减等问题,在surface shader中都是被隐藏实现好了的,而且还是多平台适配的,Ve ...

  7. 片元着色器(Fragment Shader)被称为像素着色器(Pixel Shader),但

    片元着色器(Fragment Shader)被称为像素着色器(Pixel Shader),但片元着色器是一个更合适的名字, 因为此时的片元并不是一个真正意义上的像素.

  8. 2021北京智源大会圆满闭幕,现场8千人,参会7万人,发布「悟道2.0」全球最大万亿级模型...

    句点,是下一行诗篇的开始. 6月3日晚上10点整,2021北京智源大会正式闭幕,为北京乃至中国人工智能发展画上浓重一点. 定位于"内行的AI盛会",北京智源大会以国际性.权威性.专 ...

  9. sklearn快速入门教程:补充内容 -- sklearn模型评价指标汇总(聚类、分类、回归)

    sklearn集成了大多数模型评价指标,这可以很大程度上方便我们的使用,尤其在对进行进行自动调参时可以方便我们进行选择. 做下这个笔记主要是为了补充之前的内容:sklearn快速入门教程:(四)模型自 ...

最新文章

  1. flink source code
  2. .NET Core 实现定时抓取博客园首页文章信息并发送到邮箱
  3. php项目怎么分配,php项目目录的合理划分和Pipeline 组件的使用场景
  4. VS code前端配置
  5. Android LowMemoryKiller ADJ原理
  6. [Web 前端] 010 css 常用的边框设置
  7. UESTC_神秘绑架案 CDOJ 881
  8. 第六次全国人口普查数据分析
  9. keil5怎么放大字体_keil4调节字体 keil字体放大快捷键
  10. oracle 模糊查询语法
  11. 中控考勤机数据通过java程序读取方法
  12. tbase安全和脱敏
  13. OCR论文阅读笔记01--multi-oriented scence text detection via corner localization and regin segmentation
  14. 心态-《生活的艺术》书中的精髓:中国人享受生活,所以有着独特的生活的艺术,享受生活首先要有闲暇时光,也要去感受生活,才会体验到生活的乐趣
  15. 如何正确关闭TCP连接
  16. 图扑数字孪生智慧社区,助力社区数字化转型
  17. 简练软考知识点整理-规划进度管理
  18. onenote需要密码才能同步此笔记本。 (错误代码: 0xE0000024)
  19. 利用 GitHub 从零开始搭建一个博客
  20. mysql和oracle的使用感受 -- 差异

热门文章

  1. JavaScript学习9
  2. 全基因组关联分析(GWAS)软件:Tassel5
  3. Deepin20Beta启用网卡远程开机/唤醒功能Wake-on-LAN(WOL)并保持开启状态
  4. Apache Jute
  5. C++程序设计:图像旋转
  6. 论文笔记-Applications of Deep Learning in Fundus Images: A Review(1)
  7. Android bitmap 按比例缩放
  8. 阿里笔试题第二题之-------容错技术
  9. 理解IP路由器原理及工作机制
  10. Protel设计多电路板块的设计思路及方法