Unity内置Shader解读4——Diffuse Detail

2023-10-10 00:30

本文主要是介绍Unity内置Shader解读4——Diffuse Detail,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.Shader在什么情况下使用

Diffuse Detail(漫反射细节)其实就是在原有纹理上叠加了一个贴图,然后由于混合方式是乘法会导致颜色变暗,就需要再乘一个参数使整体变得更亮。
所以如果叠加两张一样的会起到暗的更暗,亮的更亮的效果,如下

image.png

如果叠加不一样的图,会起到混合效果,如下对某些亮部进行了提亮

image.png

2.Shader的价值(用的多不多),Shader的难度

细节贴图的这个Shader可以说基本用不上-。-,毕竟有类似需求的基本得自己写非常复杂的shader代码了,官方提供的太过简单,仅供我们参考一下纹理混合的方式。

3.代码详细注释

Shader "Legacy Shaders/Diffuse Detail" {Properties {_Color ("Main Color", Color) = (1,1,1,1)_MainTex ("Base (RGB)", 2D) = "white" {}_Detail ("Detail (RGB)", 2D) = "gray" {}}SubShader {Tags { "RenderType"="Opaque" }LOD 250CGPROGRAM#pragma surface surf Lambertsampler2D _MainTex;sampler2D _Detail;fixed4 _Color;struct Input {float2 uv_MainTex;float2 uv_Detail;};void surf (Input IN, inout SurfaceOutput o) {fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;//unity_ColorSpaceDouble是官方提供的,在Gamma空间下为2,在Linear空间下为4.594(2的2.2次方),目的就是上述的由于两个颜色相乘后色彩变暗,需要乘一个系数提亮。并且避免你在两个空间切换过程中颜色矫正不正确。// 实测了一下unity_ColorSpaceDouble的rgb三个值是一样的,但是a只有rgb三个值的0.5,所以如果混合提亮需要弱一些,可以改成*unity_ColorSpaceDouble.a。c.rgb *= tex2D(_Detail,IN.uv_Detail).rgb * unity_ColorSpaceDouble.r;o.Albedo = c.rgb;o.Alpha = c.a;}ENDCG}Fallback "Legacy Shaders/Diffuse"
}

4.Shader编写思路,用到的知识点

unity_ColorSpaceDouble

这篇讲解得很好。
简单说一些unity_ColorSpaceDouble是官方提供的,在Gamma空间下为2,在Linear空间下为4.594(2的2.2次方),目的就是上述的由于两个颜色相乘后色彩变暗,需要乘一个系数提亮。并且避免你在两个空间切换过程中颜色矫正不正确。
实测了一下unity_ColorSpaceDouble的rgb三个值是一样的,但是a只有rgb三个值的0.5,所以如果混合提亮需要弱一些,可以改成*unity_ColorSpaceDouble.a。


http://www.taodudu.cc/news/show-7907143.html

相关文章:

  • diffuse
  • 【shaderforge学习笔记】 Diffuse(漫反射)通道
  • 2021-09-28 微信小程序学习记录
  • 微信小程序-视图与逻辑
  • 微信小程序 常用函数
  • 微信php喝酒转盘小程序,微信小程序 转盘
  • 微信小程序--支持LaTex数学公式
  • word中插入横线
  • word删除页眉的横线
  • 物联网的关键技术:博世将在德国德累斯顿建造全新半导体晶圆厂
  • 弗劳恩霍夫IPMS为工业4.0开发了一种Li-Fi通信模块
  • 工程机械工业应用ART光学追踪系统
  • 德累斯顿团审项目
  • ROOT学习——显示如何组合各种蜡烛图选项(candleplotoption.C)
  • 技术分析的基本概念
  • wps分析工具库如何加载_如何利用技术分析工具判断交易方向?
  • 1.2 使用日本烛台做技术分析 [复制链接]
  • 揭秘跨世纪金融大骗案:技术分析有用?
  • 技术分析是否是一条死路?
  • 量化交易如何通过Python进行技术分析?
  • candle matlab下的k线图函数,matlab技术分析.docx
  • OSX Mavericks Install The Lastest Metasploit
  • Mac Cornerstone查看日志出现:Cornerstone couldn't contact repository to read the lastest log entries
  • git、npm、yarn、node、webpack学习及了解
  • The Lastest Time-hihocode-tiger
  • 每日一题之 hiho207 The Lastest Time
  • Gradle 使用阿里云仓库以及 'lastest.integration'或'+'问题
  • O365邮件读取程序出错-已修复
  • # 计算日期c++
  • Acrel 2000E/G配电室综合监控系统如何实现配电室内环境的全天状态监视和智能控制?
  • 这篇关于Unity内置Shader解读4——Diffuse Detail的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



    http://www.chinasem.cn/article/176659

    相关文章

    MCU7.keil中build产生的hex文件解读

    1.hex文件大致解读 闲来无事,查看了MCU6.用keil新建项目的hex文件 用FlexHex打开 给我的第一印象是:经过软件的解释之后,发现这些数据排列地十分整齐 :02000F0080FE71:03000000020003F8:0C000300787FE4F6D8FD75810702000F3D:00000001FF 把解释后的数据当作十六进制来观察 1.每一行数据

    Java ArrayList扩容机制 (源码解读)

    结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

    Spring 源码解读:自定义实现Bean定义的注册与解析

    引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

    GPT系列之:GPT-1,GPT-2,GPT-3详细解读

    一、GPT1 论文:Improving Language Understanding by Generative Pre-Training 链接:https://cdn.openai.com/research-covers/languageunsupervised/language_understanding_paper.pdf 启发点:生成loss和微调loss同时作用,让下游任务来适应预训

    Python 内置的一些数据结构

    文章目录 1. 列表 (List)2. 元组 (Tuple)3. 字典 (Dictionary)4. 集合 (Set)5. 字符串 (String) Python 提供了几种内置的数据结构来存储和操作数据,每种都有其独特的特点和用途。下面是一些常用的数据结构及其简要说明: 1. 列表 (List) 列表是一种可变的有序集合,可以存放任意类型的数据。列表中的元素可以通过索

    python内置模块datetime.time类详细介绍

    ​​​​​​​Python的datetime模块是一个强大的日期和时间处理库,它提供了多个类来处理日期和时间。主要包括几个功能类datetime.date、datetime.time、datetime.datetime、datetime.timedelta,datetime.timezone等。 ----------动动小手,非常感谢各位的点赞收藏和关注。----------- 使用datet

    LLM系列 | 38:解读阿里开源语音多模态模型Qwen2-Audio

    引言 模型概述 模型架构 训练方法 性能评估 实战演示 总结 引言 金山挂月窥禅径,沙鸟听经恋法门。 小伙伴们好,我是微信公众号《小窗幽记机器学习》的小编:卖铁观音的小男孩,今天这篇小作文主要是介绍阿里巴巴的语音多模态大模型Qwen2-Audio。近日,阿里巴巴Qwen团队发布了最新的大规模音频-语言模型Qwen2-Audio及其技术报告。该模型在音频理解和多模态交互

    文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

    本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

    速通GPT-3:Language Models are Few-Shot Learners全文解读

    文章目录 论文实验总览1. 任务设置与测试策略2. 任务类别3. 关键实验结果4. 数据污染与实验局限性5. 总结与贡献 Abstract1. 概括2. 具体分析3. 摘要全文翻译4. 为什么不需要梯度更新或微调⭐ Introduction1. 概括2. 具体分析3. 进一步分析 Approach1. 概括2. 具体分析3. 进一步分析 Results1. 概括2. 具体分析2.1 语言模型

    Unity Post Process Unity后处理学习日志

    Unity Post Process Unity后处理学习日志 在现代游戏开发中,后处理(Post Processing)技术已经成为提升游戏画面质量的关键工具。Unity的后处理栈(Post Processing Stack)是一个强大的插件,它允许开发者为游戏场景添加各种视觉效果,如景深、色彩校正、辉光、模糊等。这些效果不仅能够增强游戏的视觉吸引力,还能帮助传达特定的情感和氛围。 文档