通过一个贴图控制自发光的颜色,一个控制自发光主色调的颜色(注意此处mask直接用rgb格式即可,不需要阿尔法通道控制发光程度,因为颜色自带一个亮度的属性)
_EmissionMask (“Emission Mask”, 2D) = “white” {}
_EmissionColor (“Emission Color”, Color) = (1, 1, 1, 1)
_EmissionColorScale (“Emission Color Scale”, Range(0, 0.5)) = 0

sampler2D _EmissionMask;
fixed4 _EmissionColor;
float _EmissionColorScale;

fixed3 emissionMaskColor = lerp(tex2D(_EmissionMask, i.uv).rgb, _EmissionColor.rgb, _EmissionColorScale);

fixed3 emission = lerp(albedo, emissionMaskColor, emissionScale);
fixed3 finalRGB = ambient + diffuse + specular + emission;

return fixed4(finalRGB, finalA);

呼吸光v:增加控制自发光变化的三角函数 包含频率参数和振幅参数
_EmissionTimeFrequency(“Emission Time Frequency”,Float) =1.0
_EmissionAreaScale (“Emission Area Scale”,Range(0,5)) = 1.0

float _EmissionTimeFrequency;
float _EmissionAreaScale;

struct v2f {
float4 pos : SV_POSITION;
float3 uv : TEXCOORD0;
^}
o.uv.z = (sin(_Time.w * _EmissionTimeFrequency) + 1)_EmissionAreaScale 0.5;
fixed3 emission = lerp(albedo, emissionMaskColor*i.uv.z, emissionScale);

要下拉列表选择是否用呼吸光,用到枚举
[KeywordEnum(Enable, Disable)] _Breathe (“Enable Breathe”, Float) = 1,#pragma multi_compile _BREATHE_ENABLE _BREATHE_DISABLE,#if _BREATHE_ENABLE
float scale;
#endif,#if _BREATHE_ENABLE
o.scale = (sin(_Time.w * _EmissionBreTimeFrequency) + 1)_EmissionBreAreaScale 0.5;
#endif, #if _BREATHE_ENABLE
float scale = (sin(_Time.w * _EmissionBreTimeFrequency) + 1)_EmissionBreAreaScale 0.5;
o.Emission = emissionMaskColor * _EmissionScale * IN.scale;
#else
o.Emission = emissionMaskColor * _EmissionScale;
#endif
看到博客也能用shader_feature表示toggle,但在用AssetsBundle打包的时候会出现只有某种情况有定义,另一种情况没有定义,还是用上面的。用法如下:[Toggle(ENABLE_BREATHE)] _Breather (“Enable Breather”, Float) = 0,
//#pragma shader_feature ENABLE_BREATHE
//#if defined(ENABLE_BREATHE)
// float scale;
//#endif
//#if _BREATHE_ENABLE
// o.Emission = emissionMaskColor * _EmissionScale * IN.scale;
//#elif _BREATHE_DISABLE
// o.Emission = emissionMaskColor * _EmissionScale;
//#endif

用顶点shader会出现一系列问题:
不接收lightmap,不接收雾,场景光为mix的时候、烘焙后还能接收实时光。如果用surface shader写,这些问题都会迎刃而解.surface shader也分应用到顶点和顶点到像素,vert函数和frag函数,Input, SurfaceOutput,appdatafull等结构。

自发光效果(控制自发光的颜色、强度,呼吸光可选)相关推荐

  1. [OpenGL] Bloom自发光效果

         之前在看Unreal的材质时,发现里面有一个自发光效果(unreal自发光),就暂且猜测它使用bloom后期处理做的吧.不过它这个自发光还能照亮周围场景,估计这套照亮的系统和自发光的泛光效果 ...

  2. 【shadergraph入门】对材质进行UV操作自发光效果

    [shadergraph入门]对材质进行UV操作&自发光效果 1.首先在Asset面板中右键新建一个材质球来对其进行UV操作: 2.在Asset中右键创建一个类型的shadergraph,我这 ...

  3. 在markdown中控制文字的颜色,背景色,字体大小,字体样式及颜色RGB转换工具链接

    文章目录 1. 在markdown中控制文字的颜色: 2. 在markdown中控制文字的背景色 3. 在markdown中控制文字的字体大小 4. 在markdown中控制文字的字体样式 5. 另一 ...

  4. JavaScript控制台中的颜色

    本文翻译自:Colors in JavaScript console Can Chrome's built-in JavaScript console display colors? Chrome的内 ...

  5. 列表找房(十)03-页面滚动效果控制——WindowScroller组件用法 Scroll属性

    页面滚动效果控制--WindowScroller组件用法 & Scroll属性 需求:让List列表的滚动随着window窗口的滚动而滚动 WindowScroller组件用法 官网:http ...

  6. 一起talk C栗子吧(第一百六十七回:C语言实例--控制终端字符颜色)

    各位看官们,大家好,上一回中咱们说的是大小写字符转换的例子,这一回咱们说的例子是:控制终端字符颜色 .闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在Linux终端中使用Linux命 ...

  7. phpstorm之 svn 控制的文件颜色详解

    svn 控制的文件颜色详解 如图,红色代表所在的文件已经加入版本控制了,但是这个文件是新建的,还没有加入svn;操作如下图 绿色代表已经加入svn版本控制 ,但是还没有提交文件,,如图,直接提交文件 ...

  8. 网页背景颜色php代码怎么写,CSS控制网页背景颜色的代码

    我想大家常常为一些比较合适于自己的网页背景的图片而发愁吧,这个我想也是有的,因为这些图片不是太大就是太小,或者太乱,那么有没有办法让图片能合自己的主页的胃口呢?答案是肯定的. 想知道怎么来实现嘛,好吧 ...

  9. unity用代码控制材质emission color时,勾选了emission后启动不能正常控制自发光颜色的问题解决

    问题描述: 最近实现一个功能是根据摄像机高度控制材质emission color的自发光(相关材质勾选emission,编写脚本控制emission color的值),做好了之后发现启动不能正常自发光 ...

最新文章

  1. 关于SQLServer2005的学习笔记——约束、Check、触发器的执行顺序
  2. 如何使用 Ansible 和 anacron 实现自动化
  3. 20018-05-16 第十天
  4. 13 种在 Linux 系统上检测 CPU 信息的工具
  5. form、document.all[].value的数字处理
  6. spring cloud构建互联网分布式微服务云平台-Ribbon
  7. oracle连接满报错日志,Oracle归档日志满了导致Oracle连接(ORA-00257)报错处理
  8. 每个程序员都该学习的5种开发语言,不可错过!
  9. 1539. 第 k 个缺失的正整数
  10. struts1起服务报错
  11. 优化SQL的执行速度
  12. 戴尔t40服务器自动开机,新安装的戴尔T40服务器风扇不转了是什么原因?
  13. 学术论文的标准格式是什么?写论文有哪些小技巧?
  14. [jzoj 6080] [GDOI2019模拟2019.3.23] IOer 解题报告 (数学构造)
  15. 经验谈:调查问卷问题设计“六忌”
  16. pitfall when implementing multiple interfaces
  17. 企鹅号一万阅读能有多少收益?企鹅号平台补贴怎么获得
  18. 2.HTML元素、属性、标题
  19. redis学习日志 【一、安装】
  20. 2.ST Motor Control Workbench 及相应环境的安装

热门文章

  1. vue项目通讯录_vue 自定义组件实现通讯录功能
  2. 我想建立网站,网站搭建需要哪些大体步骤?
  3. IDEA mybatis XML文件格式化问题
  4. layui.table(表格)跨页多选
  5. 华为员工晒出7天的上班打卡记录,网友:福报满满!
  6. Python函数的参数列表
  7. 没有钱该如何做好新产品的网络营销推广
  8. 全部驳回?元宇宙商标申请被国家知识产权局“劝退”
  9. 一个人怎么做好社群的日常高效管理?
  10. Visual C++ 新增功能(2003 - 2015)