这部分笔记对应书中第九章内容,内容涉及了很多unity底层为我们做好的事情的实现方法,譬如光的衰减,阴影实现以及渲染路径的理解。我对这部分理解还是不怎么深刻,这里还会以摘抄为主:)先说渲染路径,渲染路径决定光照如何应用到shader中。渲染路径分为三种:前向渲染,延迟渲染和顶点渲染。U5以后舍弃了顶点渲染,替换了新的延迟渲染,但也提供对旧版本的兼容。开发过程中可统一设定渲染路径,也可以针对came
转载
2024-10-08 12:22:26
60阅读
目录一、效果图二、实战三、算法核心一、效果图二、实战适用场景:平面且周围没有墙体时,例如:足球游戏1、准备资源:Unity酱模型 (可直接在Unity商店搜索)2、一个C#脚本和一个材质和Shader3、去掉模型身上的材质阴影投射效果(即去除ShadowCaster的Pass),在Unity酱身上的材质Shader都是通过Fallback的Shader进行投射阴影的所以注释掉Fallback即可。
转载
2024-05-16 10:14:50
174阅读
在Unity 3D中,经常需要用到光照阴影,即Directional Light的Shadow,Shadow分为Hard Shadow和Soft Shadow。区别是Soft Shadow的阴影边缘比较平滑,接近真实,但是性能消耗大于Hard Shadow。 Lightmapping有3种选择:实时光照阴影(RealTimeOnly)、场景烘焙阴影(BakedOnly)、以及上面两者结合的阴
转载
2024-06-22 17:10:34
98阅读
第四部分讲一下如何在2D屏幕空间步进光线。http://casual-effects.blogspot.com/2014/08/screen-space-ray-tracing.html 中的代码感觉不太好理解,这里的代码是按照我自己的理解去重新实现的简单版,在效率上可能不如这个网址中的代码。3D空间的光线步进原本的实现中,我们得到光线后,将其在3D空间中进行步进,再投影到2D空间上。在投影过后,
1 阴影原理物体投射阴影、物体接收阴影。1.1 阴影相关开关 1)开启 Light 组件渲染阴影No Shadows:不渲染阴影Hard Shadows:硬阴影(阴影边缘较清晰)Soft Shadows:软阴影(阴影边缘较模糊) 2)开启投射阴影 / 接收阴影Cast
转载
2024-03-20 15:39:34
2281阅读
背景和广大游戏爱好者一样,自己也是一个游戏迷,曾经阅游戏无数,除了被丰富的游戏内容所吸引,另一个让人着迷的地方就是绚丽的游戏效果,真是一种视听的享受。所以儿时一直有一个梦想,想揭开游戏的秘密,其中关于游戏特效的秘密,现在终于不是高深莫测了,谈到游戏特效,就不得不提到Shader着色器语言,它生来就是处理光影效果的,掌握了这门知识,基本就掀开了游戏特效的面纱,剩下的事情就交给美术了。 但是我相信,很
目录9.3 光照衰减9.3.1 用于光照衰减的纹理9.3.2 使用数学公式计算衰减9.4 Unity的阴影9.4.1 阴影是如何实现的9.4.2 不透明物体的阴影 1.让物体投射阴影2、让物体接收阴影9.4.4 统一管理光照衰减和阴影9.4.5 透明度物体的阴影1、透明度测试 2、透明度混合 9.5 本书使用的标准Unity Shader9.3 光照衰减
转载
2024-06-22 15:43:50
330阅读
写在前面 一直以来,Unity Surface Shader背后的机制一直是初学者为之困惑的地方。Unity Surface Shader在Unity 3.0的时候被开放给公众使用,其宣传手段也是号称让所有人都可以轻松地写shader。但由于资料缺乏,很多人知其然不知其所以然,无法理解Unity Surface Shader在背后为我们做了哪些事情。 前几天一直被问
3D模型通过3D建模软件所建出来的点和面,如以三角形为主的点和面,比如人的脑袋一个球,就是由各种各样的三角形组成的点和面。点和面以及纹理坐标都是通过3D建模软件建模出来的。Unity会帮我们把模型的信息存到Mesh里面来,Mesh翻译成中文是网格。顶点,三角形,纹理坐标,法线和切线。3D建模软件1:Autodesk 3D Studio Max 支持mac os windows;2: Autodes
转载
2024-06-18 15:31:11
32阅读
Unity Version2019.4.18f1HDRP Version7.5.2里面有些资源我暂时不知道是做什么的,后期补充喽就这样喽Hierachy主摄像机_MainCamera官方文档https://docs.unity3d.com/cn/Packages/com.unity.render-pipelines.high-definition@10.4/manual/HDRP-Camera.h
转载
2024-08-06 10:15:59
354阅读
Unity中的光照衰减Unity在内部使用一张名为_LightTexture0的纹理来计算光源衰减,好处在于计算衰减不依赖于复杂的数学公式。fixed atten = tex2D(_LightTexture0, dot(lightCoord, lightCoord).rr).UNITY_ATTEN_CHANNEL;通常只会关心_LightTexture0对角线上的纹理颜色值,这些值表明了在光源空间
一.Unity字体种类展示 这是字体包里面的图片,是不是很多种字体.下载链接不能用了,涉及到ban quan,可以留言,我发给你 有时候可能回复的不是很快(抱拳了,工作日很快)二.TextMeshPro介绍TextMeshPro 是 Unity 的文本解决方案。它是 Unity 的 UI 文本和旧版文本网格的替代品。TextMeshPro(也称为 TMP)功能强大且易于使用,它使用高级文本渲染技术
转载
2024-08-17 12:15:50
195阅读
这是小空坚持写的Unity新手向系列,欢迎品尝。小空为了方便更多的人(新手)看明白,使用的汉字,真实项目尽量使用英文规则昂。新手(√√√)大佬(√)?实践过程 从图中看Text的属性并不多,最开始的输入框就是你想让Text显示的内容,英文显示,但中文以及中文的某些符号受字体文件的影响。 Font:指定字体文件,ttf后缀的那种。 Font Style:字体样式,有四个选项:Normal(正常)、B
转载
2024-06-12 14:56:39
222阅读
目录前言让物体投射阴影光源设置Mesh Renderer控件统一管理光照衰减和阴影效果图透明度物体的阴影效果图透明度阴影的另一版本效果图总结 前言在前向渲染中,如果场景中最重要的平行光开启了阴影,unity就会为该光源计算它的阴影映射纹理(shadowmap)。这张阴影映射纹理本质上也是一张深度图,它记录了从该光源的位置出发、能看到的场景中距离它最近的表面位置(深度信息)。让物体投射阴影光源设置
转载
2024-04-25 17:11:48
151阅读
之前的人皮渲染相关前篇1:unity3d Human skin real time rendering 真实模拟人皮实时渲染前篇2:unity3d Human skin real time rendering plus 真实模拟人皮实时渲染 plus篇SSS:Unity3d shader之次表面散射(Subsurface Scattering)PBR:Unity3d 基于物理渲染Physicall
1.阴影是如何实现的 当一个光源发射的一条光线遇到一个不透明物体时,这条光线就不可以再继续照亮其他物体(这里不考虑光线反射)。因此,这个物体就会向它旁边的物体投射阴影,阴影区域的产生是因为光线无法到达这些区域。 在实时渲染中,我们最常使用的是一种名为Shadow Map的技术。这种技术理解起来非
转载
2024-03-22 13:53:31
49阅读
渲染阴影的过程一 渲染屏幕空间的深度贴图 (DepthTexture)在正向渲染里,unity会先用ShadowCaster这个Pass渲染一遍场景,得到一张深度贴图 (PS:延迟渲染,深度贴图和albedo specular之类在Deferred Pass里统一计算一并放在Gbuffer里,不会专门单独渲染)二 渲染光源方向的深度贴图(ShadowMap)然后unity会从
转载
2024-05-20 09:46:39
336阅读
点赞
Screen-Space Perceptual Rendering & Subsurface Scattering of Human Skin其实就是Screen-Space Subsurface Scattering与Subsurface Scattering 简称SSSSS&SSS,8S,本来是录了视频的,但是视频降质,色差太大,就没有上传。。。先上肉质鲜嫩的两张图夜光引擎(L
Unity Shader 学习笔记(14) 阴影参考书籍:《Unity Shader 入门精要》【常见问题】Unity阴影和深度纹理的补充说明(重要)*版本:2017.1.1f1阴影实现原理使用Shadow Map技术。把摄像机与光源位置重合,光源的阴影部分就是摄像机看不到的地方。前向渲染路径中,最重要的平行光如果开启了阴影,Unity就会为光源计算阴影映射纹理(shadowmap),本质就是深度
转载
2024-03-23 09:31:04
158阅读
文章目录思路实践获取光源空间ShadowMap[A]获取屏幕空间的深度图[B]获取SSSM(Screen Space Shadow Map)绘制一个全屏的Quad[C]输出SSSM RT Shader在全屏Quad[C]里,制作将屏幕空间深度重建屏幕世界坐标[D]在将屏幕的世界坐标[D]转换到光源空间下的坐标[E]比较[E]与[A]对应的Shadow Map深度,确定是阴影的将在Quad[C]写
转载
2024-04-23 16:50:18
238阅读