http://www.gamedev.net/topic/496785-deferred-rendering-and-hdr/

Quote:

Original post by jstroh
Yeah I've been reading about people saying "oh you can only do it if the device supports fp16 texture blending" but it's pretty simple to just add to a texture in a pixel shader lol. Ok cool thanks, much appreciated as always.

Except that it means that you need to ping-pong your texture for every light that you render... and you can't batch up lights into one DP... and you need to worry about copying at least the affected part of the texture into the second ping-ponged texture every time you render a light...

In short it's rather impractical to do it manually for a scene with complex lighting. If you mean to target GPUs without fp16 blending, you're going to want to look at an alternate HDR representation, such as Valve's post-tone-mapped RT stuff (sacrifices a lot of flexibility in your tone mapping unfortunately), or potentially some of the alternate colour space stuff like LogLUV or similar.

Posted 06 June 2008 - 07:54 AM

lol that's some hack tastic HDR there valve :P

Damn XNA+XBOX 360 not having FP alpha!!!

EDIT: It does support 10.10.10.2 with alpha though. I was looking through HDR_The_Bungie_Way.ppt and they found that the 360's 10.10.10.2, which is 7e3, doesn't give enough exposure:

Quote:

10-bit floating point formats.

The XBOX 360 has full support for the 7e3 format (7 bits mantissa, 3 bits exponent), which is the dark purple curve.
7e3 has more than enough precision, but only gives you about 3 stops of exposure range – it’s well into the banding region with the 5 stop headroom here.

Another alternative, not supported by XBOX 360 but possibly showing up on PC hardware soon, is 6e4.
This format has just enough precision, as it is barely poking above the visual curve. But it gives you a full 10 stops of exposure range.

DX10 will support 6e5 I believe, with 5e5 for the blue channel. It is difficult to say if 5 bits is enough for the blue channel – this visual curve I measured was monochrome values, for which 5 bits will exhibit some banding. The blue channel, however, might require less precision.

I might just try it for the hell of it to see if my scene has banding.

EDIT AGAIN:

Oh and I was looking into the other techniques where you store a brightness in the alpha channel: http://www.daionet.gr.jp/~masa/archives/GDC2003_DSTEAL.ppt

but of course you can't alpha blend that :P

So it seems like 10.10.10.2 is the only option I can find for deferred with tons of lights on the 360.

 
 

Like

0Likes1Likes

Like

Posted 06 June 2008 - 09:32 AM

Quote:

Original post by jstroh
Damn XNA+XBOX 360 not having FP alpha!!!

EDIT: It does support 10.10.10.2 with alpha though. I was looking through HDR_The_Bungie_Way.ppt and they found that the 360's 10.10.10.2, which is 7e3, doesn't give enough exposure:

Be careful: you're talking about 2 different surface formats here. XNA supports regular A2R10G10B10, which is a fixed-point format with some extra precision (everything will still be normalized to the range [0,1]). The format Bungie is talking about, which uses floating-point components, is not accessible through XNA. The reason why is because this format is unique to the 360, and has some interesting quirks about it's usage (the format only exists in the 360's eDRAM backbuffer, when it's resolved it's copied out to main memory as full fp16).

Because of that, the HDR situation on 360 through XNA basically sucks. You can use fp16, but you get two wonderful problems along with it:

-Backbuffer size is doubled, which means you have to tile even without MSAA
-No alpha-blending

So you're stuck with those problems, doing something with alternate color spaces, or using the Valve method. Not great options, IMO. I've been wrestling with these issues myself over the past few weeks, and I think I'm just going to bite the bullet and go with fp16 on both 360 and PC. I'm using a forward renderer so at least I don't have to worry about batching lights, but any alpha-blended geometry is going to be a pain.

I actually brought up the issue over at Connect, and they basically said they're not looking into giving access to the fp10 format. I understand it creates some inconsistency they don't want across the PC and 360 platforms, but it's really frustating not having access to one of the 360's unique advantages.

 
 

 - 11:02 AM

Quote:

Original post by jstroh
Do you think removing light batching would eliminate the speed benefit of deferred? hmmm

Depends how many lights you have, but if you have enough lights that deferred is faster than forward for you, you'll probably have trouble with the number of ping-pongs and copies you have to do to implement the manual blending. Feel free to try it out though and see. 

[ZZ] Deferred Rendering and HDR的更多相关文章

  1. Tutorial - Deferred Rendering Shadow Mapping 转

    http://www.codinglabs.net/tutorial_opengl_deferred_rendering_shadow_mapping.aspx Tutorial - Deferred ...

  2. Tile-Based Deferred Rendering

    目前所有的移动设备都使用的是 Tile-Based Deferred Rendering(TBDR) 的渲染架构.TBDR 的基本流程是这样的,当提交渲染命令的时候,GPU 不会立刻进行渲染,而是一帧 ...

  3. Deferred Rendering(三)反锯齿和半透明问题

    Deferred 框架下的AA 前面说过Deferred 框架下无法使用硬件AA.这句话不严谨: Deferred Shading在G-Buffer之后,物体几何信息全被抛弃了,导致兴许每一个像素都独 ...

  4. Forward Rendering VS Deferred Rendering

    http://gad.qq.com/article/detail/32731 Forward Rendering Deferred Rendering

  5. deferred rendering with msaa

    https://docs.nvidia.com/gameworks/content/gameworkslibrary/graphicssamples/d3d_samples/antialiasedde ...

  6. Tile based Rendering 二 tbr and tbdr 优化建议tiled based deferred rendering

    http://www.seas.upenn.edu/~pcozzi/OpenGLInsights/OpenGLInsights-TileBasedArchitectures.pdf tbr 和tbdr ...

  7. Deferred Rendering(二)G-Buffer的组织

    先来看一张网上广为流传的<杀戮地带2>典型的Deferred Shading的G-Buffer组织: 这里补充解释下几个点: 不存Position,而由depth和屏幕像素坐标反推出来.參 ...

  8. [ZZ] RGBM and RGBE encoding for HDR

    Deferred lighting separate lighting rendering and make lighting a completely image-space technique. ...

  9. [ZZ] Understanding 3D rendering step by step with 3DMark11 - BeHardware >> Graphics cards

    http://www.behardware.com/art/lire/845/ --> Understanding 3D rendering step by step with 3DMark11 ...

随机推荐

  1. Mac OS Ruby安装 使用RVM

    访问http://www.ruby-lang.org/en/downloads/ 使用第三方工具安装ruby,经过了解,在mac下可以使用macports和rvm安装ruby. 经过实际操作觉得rvm ...

  2. jQuery基础DOM和CSS操作

    $('#box').html();//获取 html 内容$('#box').text();//获取文本内容,会自动清理 html 标签$('#box').html('<em>www.li ...

  3. .net学习之类与对象、new关键字、构造函数、常量和只读变量、枚举、结构、垃圾回收、静态成员、静态类等

    1.类与对象的关系类是对一类事务的统称,是抽象的,不能拿来直接使用,比如汽车,没有具体指哪一辆汽车对象是一个具体存在的,看的见,摸得着的,可以拿来直接使用,比如我家的那辆刚刚买的新汽车,就是具体的对象 ...

  4. Java Hour 21 Weather

    有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. 本文作者Java 现经验约为21 Hour,请各位不吝赐教. 继续心情不佳,那 ...

  5. C#学习笔记——Show()与ShowDialog()的区别

    用Show()调用的窗体不会返回任何值,在使用form.Show()显示form以后,会马上继续执行form.Show()后面的语句.而用ShowDialog()调用的窗体会返回一个DialogRes ...

  6. poj 3140(树形dp)

    题目链接:http://poj.org/problem?id=3140 思路:简单树形dp题,dp[u]表示以u为根的子树的人数和. #include<iostream> #include ...

  7. diff和common

    diff 命令 diff命令:找出两个文件的不同点,用于比较文件的差异 linux上非常重要的工具,一般用于制作补丁文件,特别是比较两个版本不同的文件以找到改动的地方. diff在命令行中打印每一个行 ...

  8. HashMap两种遍历数据的方式

    HashMap的遍历有两种方式,一种是entrySet的方式,另外一种是keySet的方式. 第一种利用entrySet的方式: Map map = new HashMap(); Iterator i ...

  9. 阿里云DRDS:分布式数据库服务

    最近在做阿里云相关的项目,用到阿里的很多接口服务的API,于是想把这段项目做个总结,顺便梳理下阿里云的云计算的相关知识点. DRDS:分布式数据库服务. 1.相关术语 DRDS(Distribute  ...

  10. 伪多线程类threading.js

    前言: 虽然html5中已经提供Worker对象进行多线程的支持,可该对象在某些场合还是无法满足需求——因为它难以操作DOM元素. 而某些情况下,进行大量的js计算以及DOM元素调用的情况下,会出现脚 ...