Unity3D学习之方向性阴影详情

解读unity内置的软阴影处理方式 这里的_ShadowMapTexture_TexelSize的x、y、z、w分量分别是阴影贴图的水平像素个数倒数,垂直像素个数倒数,水平像素个数,垂直像素个数。而又因为是相邻每两个像素的归一化,所以绿色框住的起点是-1.5+2=0.5,于是得到上面的偏移:+float2(-1.5,0.5);得到一个点的权重,然后分别做四次即可,得到四个方向上的阴影贡献值,即可得到最后软阴影效果了。如上图粉色框框起来的x和y点,其水平起点为三角形的底/2,取负,所以是-1.5。如上图所示,红色的p点为阴影处的点。 阅读详情

      注意:在移动平台上,方向灯的实时阴影始终使用 1 个阴影级联,并为硬阴影 (Hard Shadows)。

      方向灯大多用于室外游戏的关键性灯光 – 日光或月光 – 中。可见距离非常大,特别是在第一人称和第三人称游戏中,往往需要对阴影进行一些调整,以获得最佳质量和性能平衡效果,适应当时的情况。

      首先从第三人称角度游戏效果优良的阴影设置开始:


图中的阴影看起来非常漂亮!

在该图中,可见距离大约为 50 游戏单位,所以在质量设置 (Quality Settings) 中将阴影距离 (Shadow Distance) 设为 50。同样,阴影级联 (Shadow Cascades) 设为 4,阴影分辨率 (Shadow Resolution) 设为高,灯光使用软阴影 (Soft Shadows)。

下列章节仔细分析了方向灯阴影的每个方面:

· 硬阴影与软阴影

· 阴影级联 (Shadow Cascade) 数

· 阴影距离很重要!

 

硬阴影与软阴影

       采用相同灯光设置,如果将阴影类型 (Shadow Type) 切换成硬阴影 (Hard Shadows),那么从照明区域到阴影区域的过度为“硬”,对象完全在阴影下或完全在照明区。硬阴影渲染较快,但通常看起来不太真实。文章出处【狗刨学习网】


距离为 50,带 4 个级联的硬阴影。

 

阴影级联 (Shadow Cascade) 数

       对于方向灯,Unity 可使用级联阴影贴图 (Cascaded Shadow Maps)(或者叫做“平行分割阴影贴图 (Parallel Split Shadow Maps)”)提供很好的阴影效果,特别是可视距离较长的情况。级联阴影将可视区域分割成几个逐步变大的部分,每个部分使用相同大小的阴影贴图,使接近观看者的对象的阴影贴图像素比远距离对象的较高。

在下图中,我们将使用硬阴影,因为阴影像素在该图中的可见度更高。

       如果未使用级联阴影贴图,整个阴影距离(依然是 50 单位)必须被阴影纹理均匀覆盖。没有级联,硬阴影看起来就像这样:


距离为 50 的硬阴影,无级联。

 

      每个地方的阴影纹理像素大小都相同。在远处看起来还不错,但不是越近质量就越高。阴影纹理覆盖整个可视区域。如果将其可视化,看起来就像这样:


无级联,阴影纹理均匀覆盖整个可视区域。

 

       使用两个阴影级联时,整个阴影距离分成靠近观看者的一小块和远距离的一大块。带两个级联的硬阴影看起来就像这样:


‘距离为 50,带 2 个级联的硬阴影。

牺牲一点点性能,我们可获得近处更好的阴影分辨率。

 


带 2 个级联,两个阴影纹理覆盖可视区域中大小不同的部分。

 

      最后,使用 4 个级联时,阴影距离被分成四个逐渐变大的部分。带 4 个级联的硬阴影看起来就像这样:


距离为 50,带 4 个级联的硬阴影。快看,可以看到了!


带 4 个级联,4 个阴影纹理覆盖可视区域中大小不同的部分。

 

阴影距离很重要!

      阴影距离 (Shadow Distance) 对于方向灯阴影的质量和性能都极其重要。同阴影级联数一样,阴影距离也可在质量设置 (Quality Settings) 中设定,轻松按比例降低性能较低硬件中的阴影。

       在阴影距离末端,阴影淡出,更远的对象无阴影。在大多数情况下,游戏中超过特定距离的阴影不会被注意到!

       没有阴影级联,阴影距离设为 20 的硬阴影效果见下图。请注意,远处的阴影会淡出。同时,阴影质量比没有级联且距离为 50 单位的质量要高。

 

距离为 20,无级联的硬阴影。

       如果将阴影距离设得太高,效果看起来会很差。在该图中,将距离设为 100 只会降低质量和性能,没有太大意义,场景中没有哪个对象超过 50 米远!

 

距离为 100,无级联的硬阴影。哎!

       带级联大小和距离的阴影贴图要好得多。比如,相机前覆盖 300 单位的 4 级联软阴影见下图。在一定程度上说比本页顶端的图片效果差,但阴影距离增大 6 倍后也不错(当然,在该场景中阴影距离大没有什么意义)。

 

距离为 300,带 4 个级联的软阴影。

 

 

Unity实时阴影技术(shadowMap) Unity实时阴影技术 阅读详情

相关推荐

unity烘培单个物体_Unity3D 5.1烘培 操作

http://blog.youkuaiyun.com/asd237241291/article/details/48056575原创文章如需转载请注明:转载自脱莫柔Unity3D学习之旅Unity3D引擎技术交流QQ群:【119706192】本文链接地址:Unity3D_5.1烘培静态Bake1.将要烘培的场景物体设施state(只有静态对象会被纳入GI预计算)2.留下静态烘培模式3.设置灯光为静态烘培...

weixin_39856630的博客 863

[Unity]实时阴影技术方案总结

一,Projector Shadow是常用的实时阴影实现方式,其基本原理是通过摄像机将需要显示阴影的物体,渲染到一张RenderTexture(RT)上,记录下物体的颜色值(可设置为自定义颜色),并将RT关联到Projector组件的材质上;然后通过Projector组件将需要接收阴影的物体以Projector组件的材质再渲染一遍来实现阴影的显示。具按照自己的理解,其实就是根据光照方向计算片元在接受阴影的平面上的投影位置,然后绘制即可,这种方式还是只适合在平面上绘制阴影。

主攻工具化、AI 辅助开发、团队效率提升与产品落地。 5898

Spherical Harmonics实战:用Unity3D实现动态环境光遮蔽(含SH烘焙避坑指南)

本文深入探讨了在Unity3D中利用球谐函数实现动态环境光遮蔽的实战方案。文章从球谐函数的数学原理出发,重点分享了针对移动端的阶数选择、SH系数烘焙流程、常见问题(如闪烁与接缝)的避坑指南,以及动态更新与性能优化策略,为在性能受限环境下实现高质量动态阴影提供了完整工程实践路径。

weixin_29100927的博客 238

【Unity3D】阴影原理及应用

如果当前 Shader 文件中没有 LightMode 为 ShadowCaster 的 Pass,就去 Fallback 指定的 Shader 中继续寻找,如果仍没有找到,就继续去 Fallback 里寻找,直到找到了 ShadowCaster Pass 或没有 Fallback,如果最后找到了,Unity 会使用该 Pass 更新光源的阴影映射纹理。注意:投射阴影和接收阴影开关可以独立控制,不相互依赖,因此,一个物体可以只投射阴影而不接收阴影,也可以只接收阴影而不投射阴影。其原理是:先生成相机的。

little_fat_sheep 3878

使用Shader Graph实现《塞尔达传说:旷野之息》风格的着色器

本文转自Unity Connect Unity的技术经理Ciro Continisio在Connect上分享创作模仿任天堂游戏《塞尔达传说:旷野之息》角色风格的着色器,受到不少用户的关注,本文将在分享制作该着色器的方法。 说明事项: 该着色器使用Shader Graph着色器视图制作。 使用了全新的轻量级渲染管线LWRP。 由于目前LWRP和ShaderGraph着色器视图仍处于早期阶段,各自存...

优快云_ONION的博客 1497

Unity PBR材质核心属性深度解析与实战调优指南

在计算机图形学与实时渲染领域,基于物理的渲染(PBR)已成为构建高真实感3D场景的行业标准。其核心原理在于通过一套符合物理光学规律的数学模型,来模拟光线与物体表面的交互,从而生成逼真的材质外观。这项技术的核心价值在于,它提供了一套相对标准化的工作流,使美术与程序能够基于一致的物理参数进行协作,显著提升了材质制作的可预测性与跨平台的一致性。在游戏开发、数字孪生、影视动画等应用场景中,PBR是实现沉浸式视觉体验的基石。本文聚焦于Unity引擎中PBR材质的关键属性,深入剖析Albedo(基础色)与Metalli

weixin_29847829的博客 247

Unity阴影(Shadow)、Shadowmap

需要注意的是,阴影的计算和渲染是相对消耗资源的操作,对于性能要求较高的场景,需要进行适当的优化和权衡,例如降低阴影的分辨率、限制阴影的投射范围或使用静态预计算的方法。级联阴影图(Cascade Shadow Maps):用于近距离和远距离阴影投射效果不同的场景,将远处物体的阴影分为多个级联阴影贴图,以提高阴影的质量和细节。阴影可以增加场景的真实感,并在视觉上提供深度和空间感。阴影遮罩(Shadow Masks):使用阴影遮罩技术,通过在场景中创建特定的遮罩对象,限制阴影的投射范围,从而优化实时阴影的性能。

無限進步的全棧遊戲開發的博客 2509

阴影边界柔化插件Shadow Softener.unitypackage

unity阴影边界柔化插件,非常好用,只需要将shader放到接受阴影的地面上就可以,简单方便可操作,自用插件,喜欢的快快下载呀

Unity3D 光照、光源

渲染光照,对GPU消耗非常大 平行光 Directional 类似太阳光,从不同位置都是一个角度照射。 点光 Point 类似蜡烛光,有一个点发散出来。 聚光 Spot 聚光灯,带有方向性发散的光源。本质也是点光,但是聚光只朝某个方向发散光源。 范围光(区域光)Area 区域内的平行光,主要用于某些平行光被遮挡无法涉及的区域。 只有烘焙之后,范围光才能预览到。 光源强度 Intensity 实时...

喵毛的博客 1064

稳定性性能系列之五——Native Crash深度分析:工具实战

深入理解Native Crash的机制与分析方法,掌握addr2line、ndk-stack、gdb等核心工具的实战使用,学会从Tombstone文件中快速定位问题根因

Cheson的专栏 1542

window部署open claw(使用wsl-Ubuntu-docker部署)

本文详细介绍了在Windows 11系统下通过WSL2+Docker部署OpenClaw的完整流程。首先需要满足硬件配置要求并开启虚拟化功能,然后依次完成WSL2安装配置、Docker Desktop安装、OpenClaw镜像拉取等步骤。重点说明了端口映射、socat转发配置及openclaw.json文件修改方法。最后通过验证WSL2内网IP和端口访问服务。该方案具有最佳兼容性,能有效避免Windows环境下的依赖冲突问题。

Kmoyic的博客 2763

Unity3D上路_04-基础资源介绍

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34248023的博客 154

从Canny到深度学习:边缘检测指标进化史(含ODS/OIS/AP的数学推导)

本文系统梳理了边缘检测评估指标的演进历程,从经典的Canny算子到深度学习时代,重点解析了ODS、OIS和AP三大核心指标的设计哲学与数学推导。文章深入探讨了基于PR曲线的评估体系,揭示了不同指标(如ODS与OIS)在阈值优化上的差异,并分析了AP指标在边缘检测任务中的优势与局限,为算法研究和模型评估提供了实用指南。

b9c0d的博客 199

STM32CubeMx搭建LWIP程序

  使用STM32CubeMx5.21,在stm32f745平台上搭建ethernet通信程序,PHY选用KSZ8081RNB。(LAN8742/DP83848使用一样) 1、系统时钟设置   RCC设置,勾选外部高速时钟源。   系统时钟配置。写入外部晶振频率、HSE提供PLCCLK、HCLK,其他参数自动生成。 2、ETH设置   勾选设置NVIC。   根据硬件设置对应GPIO引脚。   参数设置默认   根据硬件设置PHY地址,其他参数默认。 3、LWIP设置   勾选使能,通用参数设置

Gandalf94的博客 3237

嘉立创EDA报错:元件引脚与焊盘未对应报错解决记录

原件引脚与焊盘未对应报错解决方法,一文总结!

2303_77013775的博客 1万+

Unity3D:场景视图视图选项

您可以使用“场景视图视图选项”工具栏“叠加”来选择用于查看场景以及启用/禁用照明和音频的各种选项。这些控件仅在开发期间影响场景视图,对构建的游戏没有影响。“辅助图标”菜单包含对象、图标和辅助图标的显示方式选项。此菜单在“场景”视图和“游戏”视图中均可用。有关详细信息,请参阅小控件菜单手册页上的文档。场景可见性开关可打开和关闭游戏对象的场景可见性。当它关闭时,Unity 会忽略它们。摄像机设置菜单包含用于配置 Scene 视图摄像机的选项。”按钮右侧的图标激活)具有在“场景”视图中启用或禁用渲染效果的选项。

ygtu2018的博客 2471

贝叶斯机器学习在吸附量预测中的应用

本文介绍了贝叶斯机器学习在吸附量预测中的应用。通过Python实现完整的贝叶斯建模流程,包括数据生成、预处理、模型构建与评估。文章对比了贝叶斯与频率学派的差异,详细阐述了贝叶斯线性回归和神经网络的实现方法,并提供了数据可视化、模型诊断等技术细节。该方法不仅能预测吸附量,还能量化预测不确定性,为工程决策提供更全面的依据。全文超过6000字,结合理论推导与代码实践,是应用贝叶斯方法解决实际工程问题的完整指南。

AI的内部世界的博客 166

Unity3D虚拟家园漫游系统:从场景搭建到交互实现的毕设全流程指南

虚拟现实与三维交互技术通过构建沉浸式数字环境,为用户提供直观的空间感知与操作体验。其核心原理在于利用实时渲染引擎模拟物理世界的光影、材质与空间关系,并通过输入设备捕获用户意图,驱动虚拟角色或视角进行反馈。这项技术的价值在于能够突破物理限制,低成本、高效率地构建、展示与体验各类空间场景,广泛应用于数字孪生、虚拟展厅、教育培训及游戏开发等领域。本文聚焦于利用Unity3D引擎实现一个温馨的虚拟家庭屋院漫游系统,详细阐述了从场景搭建、灯光烘焙、角色控制到物理交互等关键技术环节。项目实践表明,通过合理运用URP渲染

weixin_34337381的博客 383

在 ABAP Cloud 中玩转 CL_ABAP_PARALLEL 并行处理:从原理到实战

ABAP并行处理框架CL_ABAP_PARALLEL解析 本文系统介绍了SAP ABAP环境中实现并行处理的CL_ABAP_PARALLEL框架。该框架通过封装异步RFC和对话进程,为开发者提供了面向对象的API,显著提升大批量数据处理的效率。 文章首先分析了ABAP环境需要并行处理的原因:传统的串行处理在面对百万级数据时效率低下。然后详细介绍了CL_ABAP_PARALLEL的设计思路,它是一个"小型线程池"式的同步并行框架,适用于批量计算场景。此外,文章重点讲解了控制并行任务的关键参

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 338

基于STM32设计自动输液监测系统(241)

该系统集成了液位传感模块、光电传感器、电机模块、按键模块和OLED显示屏等多个功能模块,以实现全面的输液过程监控和控制。液位传感模块能够实时监测输液瓶中的液位,当液位到达限定值时,系统会自动控制步进电机夹紧输液管,并发出报警提醒,确保输液过程不会因液位过低而中断。

1341

Unity3D场景漫游毕设全流程:从建模到交互与性能优化

三维场景构建与交互式漫游是计算机图形学与游戏开发领域的核心实践,其原理涉及三维坐标系变换、光照模型、实时渲染管线与用户输入处理。掌握这些技术不仅能实现虚拟环境的可视化,更能为文化遗产数字化、虚拟仿真培训、数字孪生等应用场景提供关键技术支撑。本文以Unity3D引擎为基础,深入探讨如何系统性地完成一个高质量场景漫游项目。内容涵盖从使用Blender进行模型创建与减面优化,到在Unity中整合地形、建筑、植被等资产;从实现第一人称与第三人称角色控制器,到构建基于射线检测与接口设计的可扩展交互系统。同时,针对项目

weixin_30245867的博客 340

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Unity&Shader高级篇-渲染路径(Rendering Paths)

原文:http://www.manew.com/thread-97939-1-1.html一、前言在的Camera中常常会看到一个Rendering Paths的选项,里面有5个选项,其中两个比较重要的选项分别是“Deferred Shading”和“Forward Rendering”,在我还是初学Unity的时候,并没有在意太多。如今随着学习Shader的深入慢慢领会到了这两个渲染路径的重要性。

阿童木的博客 2261

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【Unity】4.6 灯光

分类:Unity、C#、VS2015 创建日期:2016-04-11 一、简介 灯光(Light,也叫光源)是每一个场景的重要组成部分,用于照亮场景和对象,从而让游戏具有自己的个性和风格,比如利用灯光可模拟太阳、燃烧的火柴光、手电筒、炮火或爆炸等。 网格模型和材质纹理决定了场景的形状和质感。灯光则决定了场景环境的明暗、色彩和氛围。每个场景中可以使用—个以上的灯光,合理地使用灯光可以创造完美的视觉效...

weixin_33724659的博客 176

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

unity片元着色器中获取屏幕坐标_Unity 水、流体、波纹基础系列(四)——朝水里看(Looking Through Water)...

目录1 使水透明1.1 水下风光1.2 透明表面着色器1.3 移除水阴影2 水下雾2.1 找出深度2.2 抓取背景2.3 应用雾2.4 自定义混合3 伪折射3.1 抖动背景样本3.2 使用法线向量3.3 仅折射水下3.4 方向性流体收起水下的雾化和折射(Underwater Fog and Refraction)文章重点:让水透明采样深度并获取渲染的内容添加水下雾创建伪折射这是有关创建流...

weixin_39552874的博客 433

Unity树木资源包全攻略:从选型到优化,打造高效自然场景

在Unity3D环境搭建中,树木模型是构建沉浸感户外场景的核心资产。其实现原理基于计算机图形学的渲染管线与资源管理,通过LOD(细节层次)系统、PBR(基于物理的渲染)材质与批处理技术,在保证视觉质量的同时优化性能。这项技术的核心价值在于将复杂的美术制作封装为即插即用的资源,极大提升开放世界、RPG等项目的开发效率。在实际应用场景中,开发者需根据项目风格(写实、风格化、低多边形)、功能需求(静态布景或动态生态生成)及目标平台(PC、移动端)进行综合选型。例如,对于追求极致写实与大规模植被管理的项目,常会组合

weixin_30240349的博客 305
上一篇: Unity3D技术之游戏的登陆注册界面详解
下一篇: Unity3D学习之光照贴图快速详解
Qst_Baron
博客等级 码龄12年 15粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值