六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 307|回复: 0

Introduction to my galaxy engine 5: Differed Lighting

[复制链接]

升级  7.33%

72

主题

72

主题

72

主题

举人

Rank: 3Rank: 3

积分
222
 楼主| 发表于 2012-12-30 11:51:43 | 显示全部楼层 |阅读模式
Introduction to my galaxy engine 5: Differed Lighting

<div id="cnblogs_post_body">忙碌了好几天终于把deffered lighting做出了个雏形。其实关键就是局部灯光范围的检测。这里我是通过depth fail test和读写stencil value 来实现的。以下是每一步的截图:
这幅图是将场景物体的法向量渲染到第一个render target texture的RGB值

这幅图是将场景物体的projection depth渲染到第一个render target texture的Alpha值

这幅图是将场景物体的diffuse color渲染到第二个render target texture的RGB值,如果有specular color的话可以写到alpha值

之后就开始利用之前的两幅场景信息的texture来计算光照了,可以将之前的diffuse texture看做四边形渲染到back buffer,depth信息通过VS_Depth写入。normal 信息用于光照的计算。
下面这幅图是global ambiant light 和global directional light的效果图

这幅图保留了局部灯光的模型,除了全局的灯光,另外添加了4个local point lights 和4个local cone lights。将这些光照模型渲染到back buffer,关闭读写颜色和深度。做depth fail测试和写stencil buffer. 之后再读取back buffer,检测stencil buffer的值,如果大于一说明此像素受到光照影响并添加光照计算。

这幅则是最终的结果图


Reference:
[1] ShaderX2
[2] http://www.gamedev.net/page/resources/_/technical/graphics-programming-and-theory/deferred-rendering-demystified-r2746
[3] http://en.wikipedia.org/wiki/Deferred_shading
[4] http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter09.html
[5] http://www.gamerendering.com/2008/11/01/deferred-lightning/
[6] http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Deferred+Shading
[7] http://ftp.ambility.com/DeferredShading.pdf
[8] http://www.guerrilla-games.com/publications/dr_kz2_rsx_dev07.pdf
[9] http://developer.download.nvidia.com/assets/gamedev/docs/6800_Leagues_Deferred_Shading.pdf
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表