正向渲染一个基于着色器的渲染路径。它支持逐像素计算光照(包括法线贴图和灯光Cookies)和来自一个平行光的实时阴影。在默认设置中,少数最亮的灯光在逐像素计算光照模式下渲染。其余的灯光计算对象顶点的光照。 根据影响物体的光源的不同,正向渲染路径用单个或多个通道来渲染物体。在正向渲染中,光源本身也会根据他们的设置和强度受到不同的对待。...
分类:
编程语言 时间:
2016-06-02 13:43:16
阅读次数:
155
简介全局光照,简称GI,是一个用来模拟光的互动和反弹等复杂行为的算法,要精确的仿真全局光照非常有挑战性,付出的代价也高,正因为如此,现代游戏会先一定程度的预先处理这些计算,而非游戏执行时实时运算。同一场景里:没有照明(左),只有直接光源(中),和有间接光源的全局光照(右)的表现,注意颜色如何在不同的表面进行光的”反弹”,产生更真实的结果。在本文中,我们会描述全局光照如何在Unity里运作,带领你通...
分类:
编程语言 时间:
2016-05-27 12:33:58
阅读次数:
318
本系列文章主要翻译和参考自《Real-Time 3D Rendering with DirectX and HLSL》一书(感谢原书作者),同时会加上一点个人理解和拓展,文章中如有错误,欢迎指正。
这里是书中的代码和资源。 本文所有的环境和工具使用都基于之前的文章,如有不明白的地方请先参考本系列之前的几篇文章。本文索引: 关于灯光类型
Point Light 什么是点光源...
分类:
其他好文 时间:
2016-05-27 12:08:43
阅读次数:
329
今天是520,20年前肯定没有这个“节日”呢。下面是20年前的一张图,当时用于送给Dudu的生日礼物哦: Hss:来看看我给你做的生日贺卡。 Dudu:啊,好漂亮,你怎么实现的? Hss:啊,是这样,在背景放上文字和心形,中间放三个玻璃球,然后指定光源位置,用光线跟踪算法来做光线渲染,然后…… 然后 ...
分类:
其他好文 时间:
2016-05-20 11:37:09
阅读次数:
243
浮点数的平方根倒数常用于计算正规化矢量。3D图形程序需要使用正规化矢量来实现光照和投影效果,因此每秒都需要做上百万次平方根倒数运算,而在处理坐标转换与光源的专用硬件设备出现前,这些计算都由软件完成,计算速度亦相当之慢。在1990年代这段代码开发出来之时,多数浮点数操作的速度更是远远滞后于整数操作。因 ...
分类:
编程语言 时间:
2016-05-17 11:25:17
阅读次数:
438
烘焙:把灯光信息写到贴图里 比如影子 AO 这样就可以不用实时灯光 是节省硬件资源的一种较好的方法 Realtime GI(Global Illumination),实时全局光照 首先来说说GI是干啥的,非常粗略的来描述下,如果说我们以前的光照系统就是由光源 - 物体 - 视点组成的话,那么全局光照 ...
分类:
编程语言 时间:
2016-05-16 21:47:57
阅读次数:
209
总序相机:决定哪些东西将要在屏幕上渲染
光源:决定对材质会如何显示和生成阴影的使用
物体: 相机中被渲染的对象Scene场景的几个方法
Scene.add(object);//往场景中添加物体
Scene.remove(object);//场景中去除物体
Scene.children;//Scene的子对象列表;数组吧,包括相机和光源
Scene.getChildByName()//通过物体的n...
分类:
Web程序 时间:
2016-05-13 04:15:17
阅读次数:
1507
场景中存在一个足够强大的黄色Pixel平行光,强大到可以保证它一定会被ForwardBase内的_WorldSpaceLightPos0所捕捉,从而不会让任何其他Pixel光源落到ForwardBase内,而只会被放到ForwardAdd Pass的_WorIdSpaceLightPos0内。最后,场景中还有5个RenderMode为Not Important,即Vertex光源,其色彩分别为青色、橙色、绿色、红色和蓝色。编译并运行此场景,然后依次将5个Vertex光源设为Pixel,结果如图7.8所示,右...
分类:
其他好文 时间:
2016-05-13 03:37:10
阅读次数:
712
总序如果没有光源,就不可能看到任何渲染结果。
AmbientLight: 环境光,基础光源,它的颜色会被加载到整个场景和所有对象的当前颜色上。
PointLight:点光源,朝着所有方向都发射光线
SpotLight :聚光灯光源:类型台灯,天花板上的吊灯,手电筒等
DirectionalLight:方向光,又称无限光,从这个发出的光源可以看做是平行光.
AmbientLight=>影响整个场景的光...
分类:
Web程序 时间:
2016-05-12 23:40:54
阅读次数:
2168
HDRFramebuffer中的亮度和颜色值的范围被限制在0.0和1.0之间。我们在场景中设置光和颜色的时,也只能这个范围取值。这么做大部分情况下是OK的,结果也还可以,但是当场景中有一块多光源,亮度总合超过1.0的区域时,结果是什么样的?答案是所有的亮度或颜色值超过1.0的片段被直接截断到1.0。这并是我们想要的结果!
由于大量的片段亮度或颜色被直接截断到1.0,所以这些被截断的片段存的值都是白...
分类:
其他好文 时间:
2016-05-12 19:19:34
阅读次数:
362