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

第一个Shader的更新,增加爆光度, 属性改为数值型(更直观,精确)

Shader "Castle/ColorMix" {
Properties {
// 基本贴图
_MainTex ("Texture Image", 2D) = "white" {}
// 爆光度
_Explosure("Explosure", Float) = 1.0
// 整体提亮
_HighLight("HighLight", Float) = 0
// 混入黑白
_Brightness("Brightness", Float) = 0
// 这里是混入各颜色分量
_Color ("Main Color", COLOR) = (0,0,0,0)
}
SubShader {
Pass {
CGPROGRAM

#pragma vertex vert
#pragma fragment frag

uniform sampler2D _MainTex;
uniform float4 _MainTex_ST;
uniform float _Explosure;
uniform float _HighLight;
uniform float _Brightness;
uniform float4 _Color;

struct vertexInput {
float4 vertex : POSITION;
float4 texcoord : TEXCOORD0;
};
struct vertexOutput {
float4 pos : SV_POSITION;
float4 tex : TEXCOORD0;
};

vertexOutput vert(vertexInput input)
{
vertexOutput output;

output.tex = input.texcoord;
output.pos = mul(UNITY_MATRIX_MVP, input.vertex);
return output;
}

float4 frag(vertexOutput input) : COLOR
{

// 这里改为:先混色偏,再曝光
return (tex2D(_MainTex, _MainTex_ST.xy * input.tex.xy + _MainTex_ST.zw) + _Color) * _Explosure
+ float4(0.21 * _HighLight, 0.72 * _HighLight, 0.07 *_HighLight, 1.0)
+ float4(_Brightness,_Brightness,_Brightness, 0.0);
}

ENDCG
}
}
}

转载于:https://www.cnblogs.com/freebird92/p/3644618.html

相关文章:

  • linuxdeepin 启动器启动之后出现白屏 的解决办法
  • js 事件详解 冒泡
  • simple-spring-memcached简介
  • [SPOJ]COT2
  • 设置时间
  • 28次课(使用w查看系统负载、vmstat命令、top命令、sar命令、nload命令)
  • 错误:update 忘了加 where
  • 编程常用动词细微差别
  • lpeg学习笔记- -
  • nslookup工具的使用方法
  • 菜鸟入门【ASP.NET Core】2:部署到IIS
  • 23种简洁好看的扁平化模板
  • TransE论文剩余部分
  • 《Effective C++》 笔记:Tips01-Tips04
  • 实现数据排序的几种方法
  • 【刷算法】从上往下打印二叉树
  • ➹使用webpack配置多页面应用(MPA)
  • codis proxy处理流程
  • GitUp, 你不可错过的秀外慧中的git工具
  • javascript面向对象之创建对象
  • Mac转Windows的拯救指南
  • Nodejs和JavaWeb协助开发
  • PHP 小技巧
  • spring-boot List转Page
  • tweak 支持第三方库
  • web标准化(下)
  • 分类模型——Logistics Regression
  • 回流、重绘及其优化
  • 力扣(LeetCode)22
  • 每天一个设计模式之命令模式
  • 【云吞铺子】性能抖动剖析(二)
  • ​Linux·i2c驱动架构​
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #Z2294. 打印树的直径
  • #在 README.md 中生成项目目录结构
  • (02)Hive SQL编译成MapReduce任务的过程
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (java)关于Thread的挂起和恢复
  • (Java数据结构)ArrayList
  • (定时器/计数器)中断系统(详解与使用)
  • (二)fiber的基本认识
  • (五)Python 垃圾回收机制
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (转)ObjectiveC 深浅拷贝学习
  • (轉貼) UML中文FAQ (OO) (UML)
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .net6 webapi log4net完整配置使用流程
  • .NET的数据绑定
  • .net快速开发框架源码分享
  • .net中的Queue和Stack
  • @Async注解的坑,小心
  • [ 环境搭建篇 ] 安装 java 环境并配置环境变量(附 JDK1.8 安装包)