Unity内置Shader解读3——Decal
1.Shader在什么情况下使用
Decal(贴花)贴花就是类似于CF里的喷漆,或者汽车/墙上等贴一个贴纸。
2.Shader的价值(用的多不多),Shader的难度
这个应该是极少项目能用上吧。。。。没这种需求。而且Unity实现的这个过于基础,只有最基础的光照,甚至连贴花的位置啥的都不能改。
3.代码详细注释
// Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)
//贴花
Shader "Legacy Shaders/Decal" {Properties {_Color ("Main Color", Color) = (1,1,1,1)_MainTex ("Base (RGB)", 2D) = "white" {}_DecalTex ("Decal (RGBA)", 2D) = "black" {}}SubShader {Tags { "RenderType"="Opaque" }LOD 250CGPROGRAM#pragma surface surf Lambertsampler2D _MainTex;sampler2D _DecalTex;fixed4 _Color;struct Input {float2 uv_MainTex;float2 uv_DecalTex;};void surf (Input IN, inout SurfaceOutput o) {fixed4 c = tex2D(_MainTex, IN.uv_MainTex);half4 decal = tex2D(_DecalTex, IN.uv_DecalTex);//两张贴图混合,使用lerp插值//float3 lerp(float3 a, float3 b, float w) { return a + w*(b-a); } //即lerp函数传入两个值ab,传入一个0-1的w,如果w为0则lerp=a,如果w为1则lerp=b//此处w直接使用decal的透明度,所以decal不透或半透的部分会叠加上去//alpha为0的部分不叠加//因为是在自己的颜色上处理,所以不需要开启整体材质的透明通道c.rgb = lerp (c.rgb, decal.rgb, decal.a);c *= _Color;o.Albedo = c.rgb;o.Alpha = c.a;}ENDCG}Fallback "Legacy Shaders/Diffuse"
}
4.Shader编写思路,用到的知识点
lerp插值函数
float3 lerp(float3 a, float3 b, float w) { return a + w*(b-a); }
即lerp函数传入两个值ab,传入一个0-1的w,如果w为0则lerp=a,如果w为1则lerp=b
如果w超出了0-1,自己想想会是啥效果
http://www.taodudu.cc/news/show-2775663.html
相关文章:
- 图形杂记-Decal贴花
- Unity 中用 Vertex Fragment Shader 实现 surface shader 中的 Diffuse 和 Decal
- Decal的另类用法
- [图形学] 延迟贴花渲染技术 (A Deffered Decal Rendering Technique)
- Deferred Decal(延迟贴花)
- [UE4]射击产生弹孔:Spawn Decal At Location、Spawn Decal Attached
- GraphicsLab Project之简易贴画系统(Decal System)
- PADS Logic Decal、Layout Decal绘制
- Unity3D内置Shader私房课(三)Decal贴花
- DCC - Photoshop - Nvidia NormalMapFilter - 法线生成工具 - 顺便测试 Unity URP 12.1 中的 Decal System
- Deferred Decal
- UE4 Decal 贴花不在静态光照下绘制
- Decal Buffer相关
- Blender学习笔记-印花(decal)贴图
- 【游戏开发小技】Unity中实现Dota里的角色技能地面贴花效果(URP ShaderGraph Decal)
- 【游戏开发小技】Unity中实现Dota里的角色技能地面贴花效果(URP | ShaderGraph | Decal)
- UE4 Decal实现简介
- (41)Decal [ 贴花] Actor
- 游戏中的Decal(贴花)
- 2路2U机架服务器,如何理解
- 1u服务器系统风扇,1U工控服务器机箱介绍
- 2u机架式服务器作用,不仅是一款通用的2U机架式服务器还具有足够的扩展力
- 工控电脑服务器维修,2U机箱厂家分享:工控计算机电脑主板坏了如何维修?
- 戴尔高密度服务器性能指标,PowerEdge R630:1U机身下的2U性能
- 十次方:服务器的1U、2U、U代表什么意思?
- 计算机主机箱进行总结,工业级主机用机箱分类总结
- dell 2u服务器型号,DELL服务器规格参数
- 2U 4节点Xeon SP服务器 (上):PowerEdge C6420更受重视
- 全新型号 Dell EMC PowerEdge R750xa机架式服务器 全新型号2U
- 支持英特尔9242的服务器,宝德2U双子星服务器PR2725TP2
Unity内置Shader解读3——Decal相关推荐
- unity, 内置shader下载地址
在unity的download页面上能找到Built in shaders的下载连接. 转载于:https://www.cnblogs.com/wantnon/p/4550631.html
- Unity3D内置Shader私房课(三)Decal贴花
在Unity内建Shader的DefaultResourcesExtra的目录中,有一个很简单却很实用的shader--Decal.这是一个贴花着色器,可以在模型的表面添加一个贴花纹理. Unity内 ...
- unity URP内置shader lit解析
unity内置的pbr渲染shader Properties为shader相关属性 两个SubShader里面为相应的渲染内容,第二个为降级处理渲染,如果第一个SubShader不兼容,才会渲染第二个 ...
- 闲云野鹤:吃鸡(四)之场景制作—用unity内置草功能制作草
先上最终效果图吧: 第一种方式:Add Grass Texture,只需要选择草的图片即可 选择Add Grass Texture此种方式unity默认mesh为一个矩形面.基本制作过程没什么值得多说 ...
- Unity内置资源如何打包避免冗余
这是第249篇UWA技术知识分享的推送.今天我们继续为大家精选了若干和开发.优化相关的问题,建议阅读时间10分钟,认真读完必有收获. UWA 问答社区:answer.uwa4d.com UWA QQ群 ...
- Unity内置Built-in到可编程URP函数对应整理
目录 1.总体结构 2.Shader Include 头文件 3.灯光模式 4.变种Variants 5.预处理宏 Predefined Shader Preprocessor Macros 5.1辅 ...
- Unity内置的三套消息发送机制的应用实例
转自http://blog.sina.com.cn/s/blog_1491e52310102wuf6.html 代码简介 : [1] 实例中包含2个类文件, SendMessage.cs 和 Rece ...
- Unity 内置着色器下载方法
Unity 内置着色器下载方法 官方下载 GitHub下载 官方下载 需要科学上网 官方下载链接 https://unity3d.com/get-unity/download/archive GitH ...
- Unity 内置管线Shader升级到URP详细手册
本文转载自:https://www.jianshu.com/p/3fef69e2efb6 作为技术资料记录和备份,避免遗忘或删除 //================以下为具体内容========== ...
最新文章
- 干掉 ZooKeeper?阿里为什么不用 ZK 做服务发现?
- Python大战C++,谁能更胜一筹?
- 源码实战 | 本地可跑,上线就崩?慌了!
- TI 无桥PFC方案【转子tidu312.pdf】-----图片专帖
- 一个PHP使用重新整理数组的小笔记
- *【CodeForces - 214D 】Numbers (dp,组合数学)
- OpenCV_08 边缘检测:Sobel检测算子+Laplacian算子+Canny边缘检测
- P1948 [USACO08JAN]Telephone Lines S(二分+spfa)
- 【Kudu-未解决】Kudu : Kudu error: Could not connect to a leader master. Client configured with 1 master
- 66.为什么有时候在ISE软件中,顶层文件不能置顶?
- 算法设计与分析重点总结
- 程序员必备的10款工具软件!最后一款简直绝了!
- 淘宝被中差评了应该怎么办
- EDEM软件简单介绍
- 工业相机 - - 线阵相机
- 老牛知点所以然-Qt安装后一行命令解决:libxcb-util.so.1 => not found
- 第十章:动态组件,插槽,自定义指令
- php实现的单例模式
- 《敏捷开发一千另一夜》 读后感1
- pdn阻抗测试_毫欧级电源分配网络PDN的输出阻抗和传输阻抗测量