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

Unity中Shader光强与环境色

文章目录

  • 前言
  • 一、实现下图中的小球接受环境光照
    • 实现思路
    • 1、在Pass中使用前向渲染模式
    • 2、使用系统变量 _LightColor0 获取场景中的主平行灯
  • 二、返回环境中主环境光的rgb固定a(亮度),小球亮度还随之改变的原因
  • 三、获取Unity中的环境光的颜色
    • 1、Color模式下的


前言

Unity中Shader的光强与环境色


一、实现下图中的小球接受环境光照

在这里插入图片描述

实现思路

1、首先使用前向渲染模式
2、获取到场景中的灯

1、在Pass中使用前向渲染模式

Tags{“LightMode”=“ForwardBase”}

2、使用系统变量 _LightColor0 获取场景中的主平行灯

_LightColor0
主平行灯的颜色值,rgb = 颜色x亮度; a = 亮度

需要引用 Lighting.cginc

测试代码:

Shader "MyShader/P1_5_2"
{Properties{_MainTex ("Texture", 2D) = "white" {}}SubShader{Tags { "RenderType"="Opaque" }Pass{Tags{"LightMode"="ForwardBase"}CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"#include "Lighting.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;};v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);return o;}fixed4 frag (v2f i) : SV_Target{return _LightColor0;}ENDCG}}
}

效果:
请添加图片描述

二、返回环境中主环境光的rgb固定a(亮度),小球亮度还随之改变的原因

当我们在片元着色器结果处返回 fixed4(_LightColor0.rgb,1)这个结果时,会发现,小球的亮度还是会随着主环境光的亮度改变而改变

return fixed4(_LightColor0.rgb,1);

请添加图片描述

在这里插入图片描述

由上图 FrameDebugger调试数据可得
原因是: _LightColor0中的 rgb 值,不是单纯的rgb颜色,而是一个与 a(亮度)相乘后的结果。

三、获取Unity中的环境光的颜色

在这里插入图片描述

unity_AmbientSky — 环境光(Gradient)中的Sky Color.
unity_AmbientEquator — 环境光(Gradient)中的Equator Color.
unity_AmbientGround — 环境光(Gradient)中的Ground Color.
UNITY_LIGHTMODEL_AMBIENT — 环境光(Color)中的颜色,等同于环境光(Gradient)中的Sky Color.

1、Color模式下的

在这里插入图片描述
获取到 unity_AmbientSky ,与LightColor0 相乘后输出测试
测试效果:
请添加图片描述

2、Gradient模式下的
在这里插入图片描述
分别与这三个 一 一 对应
unity_AmbientSky — 环境光(Gradient)中的Sky Color.
unity_AmbientEquator — 环境光(Gradient)中的Equator Color.
unity_AmbientGround — 环境光(Gradient)中的Ground Color.

相关文章:

Unity中Shader光强与环境色

文章目录 前言一、实现下图中的小球接受环境光照实现思路:1、在Pass中使用前向渲染模式2、使用系统变量 _LightColor0 获取场景中的主平行灯 二、返回环境中主环境光的rgb固定a(亮度),小球亮度还随之改变的原因三、获取Unity中的环境光的颜色1、Color模式…...

Android9 查看连接多个蓝牙耳机查看使用中的蓝牙耳机

#Android9 查看连接多个蓝牙耳机查看使用中的蓝牙耳机 文章目录 一、主要api:二、BluetoothA2dp 对象的获取三、获取 BluetoothDevice 对象,四、其他: Android 9.0之后,支持一台手机可以同时连接多个蓝牙设备。 但是判断那个蓝牙…...

【EF Core】如何忽略影响导航属性(级联)

文章目录 EF更新和插入时如何忽略更新导航属性级联删除删除主体/父实体断开关系配置级联行为 来源 EF更新和插入时如何忽略更新导航属性 使用Ignore方法&#xff1a; modelBuilder.Entity<Blog>().Ignore(b > b.Posts);使用HasNoKey方法&#xff1a; modelBuilder.…...

【苍穹外卖 | 项目日记】第一天

前言&#xff1a; 我打算用16天的时间写完黑马程序员的苍穹外卖项目&#xff0c;为了督促自己每天坚持写以及记录项目知识点&#xff0c;所以用这种项目日记的方式鞭策自己 目录 前言&#xff1a; 今日完结任务&#xff1a; 今日收获&#xff1a; 1.阅读代码框架&#xf…...

WuThreat身份安全云-TVD每日漏洞情报-2023-10-07

漏洞名称:迪普科技DPtech SSL VPN任意文件读取漏洞 漏洞级别:高危 漏洞编号:CNVD-2023-69478 相关涉及:杭州迪普科技股份有限公司 DPtech SSL VPN 漏洞状态:POC 参考链接:https://tvd.wuthreat.com/#/listDetail?TVD_IDTVD-2023-24924 漏洞名称:DTS监控SSL证书操作系统命令注…...

SpringBoot整合Druid配置yml文件

springboot中引入依赖注意&#xff0c;否则yml中配置不生效 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><group…...

如何保证 RabbitMQ 的消息可靠性?

项目开发中经常会使用消息队列来完成异步处理、应用解耦、流量控制等功能。虽然消息队列的出现解决了一些场景下的问题&#xff0c;但是同时也引出了一些问题&#xff0c;其中使用消息队列时如何保证消息的可靠性就是一个常见的问题。如果在项目中遇到需要保证消息一定被消费的…...

图像分类数据集划分(创建ImageNet格式的数据集)

原始数据文件夹如下&#xff1a; ├──data├── 0 类别1├── 1 类别2制作数据集格式如下所示&#xff1a; ├──datasets├── meta│ ├── test.txt # 测试数据集的标注文件│ ├── train.txt # 训练数据集的标注文件│ └── val.txt # 验证…...

ArcGIS Engine:报错无法嵌入互操作类型“ESRI.ArcGIS.Geometry.EnvelopeClass”。请改用适用的接口。

此错误是由于尝试直接实例化ArcGIS COM组件的某些互操作类引起的。这在.NET Framework 4及更高版本中是不被推荐的。 为了解决此问题&#xff0c;你需要确保在工程的引用中将ArcGIS的互操作类型设置为“不嵌入”。 按照以下步骤操作&#xff1a; 在解决方案资源管理器中找到…...

核货宝:服装店收银系统如何选择?收银系统选购指南!

对于各行各业而言&#xff0c;收银系统都是必备的工具。特别是对于像服装店这样的零售门店来说&#xff0c;选择一套适合的收银系统尤为重要。在选择收银系统时&#xff0c;有一些关键的技巧需要注意&#xff0c;以达到软硬件合理搭配、节省开支的目的。下面将分享四个选购服装…...

GB/T 7134-2008 浇筑型工业有机玻璃板材检测

非改性浇筑PMMA板材是指甲基丙烯酸甲酯均聚物板材&#xff0c;或者甲基丙烯酸甲酯与丙烯酸酯类或甲基丙烯酸酯类单体的共聚物板材&#xff0c;通过适当的引发剂本体聚合生产。 GB/T 7134-2008浇筑型工业有机玻璃板材测试项目&#xff1a; 测试项目 测试方法 拉伸强度 GB/T …...

数据采集平台(二)

5. 安装Kafka 5.1 基础架构 为方便扩展&#xff0c;并提高吞吐量&#xff0c;一个topic分为多个partition配合分区的设计&#xff0c;提出消费者组的概念&#xff0c;组内每个消费者并行消费为提高可用性&#xff0c;为每个partition增加若干副本&#xff0c;类似NameNode HA…...

Nginx + PHP 异常排查,open_basedir 异常处理

新上一个网站&#xff0c;通过域名访问失败&#xff0c;排查方法如下&#xff1a; 开启异常日志 开启域名下&#xff0c;nginx的异常日志&#xff0c;并查看日志 tail -f /var/log/nginx/nginx.localhost.error.log开启php的异常日志&#xff0c;该配置位于php.ini文件下 …...

Linux免密登录

目标&#xff1a; 192.168.233.31 ton-pc-003 192.168.233.32 ton-pc-004 在ton-pc-004&#xff08;以下简称004&#xff09;免密登录ton-pc-003&#xff08;以下简称003&#xff09; 具体流程和说明&#xff1a; 1、在004&#xff08;客户机&#xff09;中生成秘钥对 ssh…...

迷宫 蓝桥杯

问题描述 这天, 小明在玩迷宫游戏。 迷宫为一个 nn 的网格图, 小明可以在格子中移动, 左上角为 (1,1), 右下角 (n, n)为终点。迷宫中除了可以向上下左右四个方向移动一格以外, 还有 m 个双向传送门可以使用, 传送门可以连接两个任意格子。 假如小明处在格子(x1​,y1​), 同时有…...

25 mysql like 是否使用索引

前言 这里主要是 探究一下 explain $sql 中各个 type 诸如 const, ref, range, index, all 的查询的影响, 以及一个初步的效率的判断 这里会调试源码来看一下 各个类型的查询 需要 lookUp 的记录 以及 相关的差异 此系列文章建议从 mysql const 查询 开始看 测试表结构…...

Android---Class 对象在执行引擎中的初始化过程

一个 class 文件被加载到内存中的步骤如下图所示&#xff1a; 装载 装载是指 Java 虚拟机查找 .class 文件并生成字节流&#xff0c;然后根据字节流创建 java.lang.Class 对象的过程。 1. ClassLoader 通过一个类的全限定名&#xff08;包名类名&#xff09;来查找 .class 文件…...

Altium Designer实用系列(二)----PCB绘图小技巧

一、技巧总结 1.1 丝印大小 在导入PCB之后&#xff0c;元器件的丝印一般都是strock font&#xff0c;个人感觉比较大&#xff0c;也不美观&#xff0c;但是一个个修改成true type又比较麻烦。简便方法是使用相似查找全部修改:   此时会选中所有stroke 类型的丝印&#xff…...

threejs-开发入门与调试设置

近年来web得到了快速的发展。随着HTML5的普及&#xff0c;网页的表现能力越来越强大。网页上已经可以做出很多复杂的动画&#xff0c;精美的效果。还能通过WebGL在网页中绘制高性能的3D图形。 学习资料来源&#xff1a;https://www.three3d.cn/threejs/01-%E5%BC%80%E5%8F%91%E…...

win11安装双系统Ubuntu的坎坷记录

之前一直装的都是在一个硬盘中&#xff0c;这是是两块盘。 我的电脑是惠普暗影精灵8Pro 一 安装前的准备工作 1.1 记得先关闭&#xff0c;Bitlocker 输入wins&#xff0c;搜索框输入&#xff1a;设备加密设置 1.2 BIOS设置 &#xff08;惠普这电脑是开机时按 F10&#xff0…...

逆向实战:用X32dbg条件断点精准定位MFC程序的窗口消息处理函数

逆向实战&#xff1a;用X32dbg条件断点精准定位MFC程序的窗口消息处理函数 在逆向分析领域&#xff0c;MFC程序因其复杂的消息映射机制和封装层次&#xff0c;常常让分析者感到无从下手。特别是当我们需要分析某个特定窗口消息&#xff08;如按钮点击、菜单选择&#xff09;的处…...

AI健身教练开源项目:用代码实现个性化训练与健康追踪

1. 项目概述&#xff1a;当AI健身教练遇上开源代码库最近在GitHub上闲逛&#xff0c;发现了一个挺有意思的项目&#xff0c;叫ClaireAICodes/gym-workout-health-longevity。光看名字&#xff0c;你可能会觉得这又是一个普通的健身计划分享&#xff0c;但点进去之后&#xff0c…...

终极Windows离线语音识别指南:打造企业级隐私安全的实时字幕系统

终极Windows离线语音识别指南&#xff1a;打造企业级隐私安全的实时字幕系统 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 在数字化办公和远程协作日益普及的今天&#xff0c;实时语音转文字技术已成为提升工作效…...

CoaXPress 2.0多输入高速图像采集卡:应对机器视觉数据洪流的架构核心

1. 项目概述&#xff1a;当视觉系统遇上数据洪流在工业检测、半导体AOI、生命科学成像这些对速度和精度要求近乎苛刻的领域&#xff0c;图像采集卡扮演着“数据咽喉”的角色。它决定了视觉系统能从相机“吞下”多少数据&#xff0c;以及“消化”的速度有多快。最近&#xff0c;…...

解锁端侧智能:基于BigDL-LLM与Qwen-1.8B-Chat的CPU高效推理实践

1. 为什么要在CPU上部署大模型&#xff1f; 最近两年大模型技术发展迅猛&#xff0c;但大多数应用都依赖昂贵的GPU服务器。我在实际项目中发现&#xff0c;很多中小企业和个人开发者其实更需要能在普通电脑上运行的轻量化方案。这就是为什么基于CPU的大模型部署方案变得越来越…...

如何安全备份微信聊天记录:PyWxDump工具使用全指南

如何安全备份微信聊天记录&#xff1a;PyWxDump工具使用全指南 【免费下载链接】PyWxDump 删库 项目地址: https://gitcode.com/GitHub_Trending/py/PyWxDump 你是否曾因误删重要微信对话而懊悔不已&#xff1f;是否想永久保存珍贵聊天记录却不知从何下手&#xff1f;Py…...

用Python复现FAST天眼数学建模:从坐标变换到促动器伸缩量计算(附完整代码)

用Python复现FAST天眼数学建模&#xff1a;从坐标变换到促动器伸缩量计算&#xff08;附完整代码&#xff09; 中国天眼FAST作为全球最大单口径射电望远镜&#xff0c;其主动反射面调节系统堪称现代工程奇迹。当观测不同方位天体时&#xff0c;需要通过促动器精确控制4450块反射…...

终极Windows Defender移除指南:13项核心服务的完整卸载方案

终极Windows Defender移除指南&#xff1a;13项核心服务的完整卸载方案 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_mirror…...

Windows Defender终极移除指南:高效卸载13项核心服务完整教程

Windows Defender终极移除指南&#xff1a;高效卸载13项核心服务完整教程 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_mirr…...

别再为嵌入式设备大内存发愁了!手把手教你用CMA(连续内存分配器)搞定Linux视频编解码缓冲区

嵌入式多媒体开发中的连续内存优化实战&#xff1a;CMA技术深度解析 在嵌入式多媒体开发领域&#xff0c;视频编解码、图像处理等任务对内存管理提出了严苛要求。当你在树莓派上部署视频监控系统&#xff0c;或在工业摄像头中实现实时H.264编码时&#xff0c;是否经常遇到这样的…...