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

【SOFA】SOFA框架+Win10+VS2019 配置

SOFA (Simulation Open Framework Architecture)官网 SOFA 是一个开源的仿真框架,用于实时的物理仿真,而且主要针对医学上的仿真。主要用于研究人员开发新的算法,也可以作为一个有效的快速成型工具或是物理引擎。 官网中给出的配置方法写的很清晰,有着各个库或者软件的版本要求,仔细看按版本要求来 官网配置地址 官网给了两种方 1.通过脚本自动配置 2. 自己下载相关库通过CMake进行生成 第一种 没使用,不知道是否好使,因为如果其中有下载的东西,国内不一定能成功,大家可

GordonWei 5260

思科—OSPF多区域配置实验

实验目的:配置OSPF多区域,使得不同网段的PC互相ping通。 网络拓扑如下: R0的配置 Router>en Router#conf t Router(config)#int g0/1 Router(config-if)#ip add 192.168.1.1 255.255.255.0 Router(config-if)#no shut Router(config-if)#exit Router(config)#int g0/0 Router(config-if)#ip add 192.168.

m0_46237205的博客 1万+

Unity3D上路_04-基础资源介绍

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

weixin_34248023的博客 154

Nvidia Tesla A100 驱动安装方法

Nvidia Tesla A100 驱动安装方法 遇到的问题:以前安装tesla系列、geforce系列等gpu 驱动的时候,只需执行nvidiaxxxx.run驱动包或者安装nvidiaxxxx.rpm包即可,但遇到新的GPU Nvidia Tesla A100的时候,安装完驱动似乎不起作用,找了半天资料,原来需要以下步骤才可以使用;

qq_24343177的博客 2万+

flink新版本无bat启动文件的解决办法

flink

6 4932

制作 img系统镜像的详细方法

      I.MX6开发板目前支持从TF卡和eMMC启动,启动时,由于各个不同的启动文件对路径有不同的要求,例如uboot文件要求位于启动设备的某个块,dtb文件要求在FAT分区上,文件系统要求在Linux分区上,基于此,我们目前采用将映像制作成img文件的方式,这样可以更简单完成对启动卡的制作。 关于如何制作img,方法如下:方法一  Windows下面利用Win32工具1.   准备我司提供...

armkits的博客 4万+

Unity3D:场景视图视图选项

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

ygtu2018的博客 2471

如何区分Info与CoWoS封装?

这篇文章主要从Info、CoWoS封装的定义、Interposer的种类以及Info、CoWoS封装的种类三方面进行了介绍,希望读者能够有所收获

wangyubo1的博客 7938

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

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

weixin_34337381的博客 383

宏基因组功能注释实战:从CAZyme到VFDB的完整流程(含数据库下载与脚本优化)

本文详细介绍了宏基因组功能注释的完整流程,涵盖CAZyme、eggNOG、CARD和VFDB四大核心数据库的实战应用。从环境配置、数据库下载与预处理到注释流程执行与优化,提供了全面的操作指南和脚本优化建议,帮助研究人员高效完成宏基因组数据分析。特别针对CAZyme注释等关键步骤给出了参数优化方案和常见问题排查方法。

weixin_29289821的博客 295

低功耗设计:如何计算power switch的数量?

power switch加多了漏电高,加少了ir drop会有问题,具体加多少合适要如何计算呢?这里可以给一个参考方式。 第一步,先选switch cell的类型 通常选用HVT类型的switch cell,优点是漏电更低,缺点也很明显,电阻大,压降也大,switch cell的大小选择,可以选择(开启电阻x面积)最小的switch cell,即单位面积提供最小并联电阻的cell类型。 第二步,计算数量 选好类型,确定了开启电阻,可以按照如下公式计算数量: Ron/Xnum • W/V = V•P

m0_61544122的博客 3570

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

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

weixin_30245867的博客 340

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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

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

阿童木的博客 2261

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【Unity】4.6 灯光

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

weixin_33724659的博客 176

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

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、付费专栏及课程。

余额充值