摘要: 全局光源•一些影响整个场景的元素,比如太阳光和雾•需要在整个屏幕上进行计算•顶点坐标,法线,颜色以及材质的参数均以纹理的形式输入。•光照计算在象素着色器中实现。•计算输出先储存在一个中间的光照缓冲中。局部光源•局部光源的光照效果只影响到整个场景的一部分•我们只计算受相关光源影响的象素。•这需要将光源体投影到屏幕空间•利用GPU很容易对象素按光源进行分类。•在场景构造时,我们建立一个简单的网格来表示光源影响的空间区域,在游戏运行时,在3D空间中对这个网格包围的象素进行光照计算。以下是延迟光照的关键部分,水平有限,如有错误还请谅解。延迟光照的关键点之一,如何找到光照体积网格中的象素。首先渲染光源体 阅读全文
posted @ 2011-07-19 17:24 oayx 阅读(618) 评论(0) 推荐(0) 编辑
摘要: 延迟着色是一种对3d场景进行后期照明的技术,这种技术突破了以往渲染系统支持多重动态光源时,效率以及各种性能急剧下降的的限制。从而使得一个3d场景可以支持成百上千个动态光源的效果。 它的技术思路主要将3d场景的几何光照信息(位置、法线、材质信息)渲染到render target上,把它们从世界的三维空间转变成屏幕的颜色空间,作为光照计算时的输入,接着,对每一个光源,使用这些信息输入来进行计算生成一帧,然后把这样的一帧(render target)合成到结果的帧缓存上,这样当遍历完所有的光源,计算就完毕了,帧缓存上的图像就是最后的渲染结果。概述:延迟着色的优势1.它能让你在绘制几何图形的时候不需要 阅读全文
posted @ 2011-07-19 17:23 oayx 阅读(684) 评论(0) 推荐(0) 编辑
摘要: Bloom必须使用Pixel Shader,这相当于一个图像处理的过程大致步骤如下:先对图片(或是渲染结果)做一个Brighter Pass,检测每个像素的亮度值,若大于指定的却值就保留其颜色,反之将其置为黑色输出,这一步是为了仅对高亮的部分产生光晕效果2.对上一步的结果做高斯模糊,或其他种类的模糊,具体根据需要而定,最简单的就是对四周临近4个像素采样求平均值3.将模糊后的图片叠加到原始图片上,即颜色相加具体代码可参考dxsdk中的Post Processing,其中就有Bloom效果,它和边缘检测联用还可以作出诸如边缘光晕这类的特效 阅读全文
posted @ 2011-07-19 17:04 oayx 阅读(1020) 评论(0) 推荐(0) 编辑