- Rendering the original HDR image. This is the "traditional" part of the pipeline, with the difference that we can use images outside the 0.0 to 1.0 range (or 0..255 range).
- Computing the average luminance for the scene. The result of this is a value indicating how bright (or how dark) the scene is.
- Performing any post-processing on the image. The lens on a camera (as well as the human eye) can "scatter" some of the incoming light and lead to various blurring effects around particularly bright objects.
- Compositing these steps together to create the final result. Taking the results from the previous 3 sections we can create a final image, mapped back down to a regular 32bit (or even 16bit) XRGB texture that is suitable for being displayed to the end user.
D3D9 High Dynamic Range Rendering Example
For reference purposes, a more up-to-date version is now available as part of the DirectX 9 SDK: HDRPipeline
[caution] Warning: This is a fairly long announcement/article type thread, I hope you like it and remember - I really appreciate any comments/feedback!
Introduction
This thread is about a piece of research that was originally for my own personal amusement, but part way through I decided that it might well be of interest/use to you guys. So, here it is.. [smile]
Whilst HDR rendering is not the most complicated process to work with, it can be quite confusing. As shown by this sample there are a large number of connected steps that go into the final image - each of these steps is straight-forward, but it is the system as a whole that can be confusing.
What I planned to do with this sample that I hadn't seen in any of the other samples I've looked at was show all of these individual steps as part of the GUI. All of the elements are updated each frame, so it should make it easier to understand the system as a whole if you can see what is actually stored/computed in each step.
There are four main sections:
Cool demo. I like how it shows all the steps. But the weird thing is it only works for me in debug mode. I have a 6800GT (drivers 77.77) w/ the august runtimes installed. In release mode the app crashes instantly.
-SirKnight
-SirKnight
awesome.
i've been SOL trying to implement something similar and it was getting me depressed to try and fix it. now I can take another happy stab at it :P
i've been SOL trying to implement something similar and it was getting me depressed to try and fix it. now I can take another happy stab at it :P
Thanks for the positive feedback everyone - greatly appreciated [grin]
I don't suppose you're running an AMD processor are you? Simon O'Connor (S1CA) ran an earlier version that was built using SSE2 -that tripped up on his AMD... I was pretty sure I turned off those optimizations though [oh]
Cheers,
Jack
Quote:In release mode the app crashes instantly.
I don't suppose you're running an AMD processor are you? Simon O'Connor (S1CA) ran an earlier version that was built using SSE2 -that tripped up on his AMD... I was pretty sure I turned off those optimizations though [oh]
Cheers,
Jack
Quote:Original post by Nik02
My AMD runs the program just fine :)
I have Athlon 2800+ @home.
Interesting - so I guess I did turn off the SSE stuff like I thought I did..
Seems that Evil Steve's crashed as well, so maybe there's something else going wrong [sad]
Anyone got any further details as to what/why it's going tits up?
Cheers,
Jack
It only seems to work in Debug mode (And you get a warning that the device has a non-zero reference count [wink]). I get that illegal instruction exception in release mode. I'm running an AMD 2600XP, GeForce 4 Ti 4400.
I'll see if I can find out what's going wrong...
Edit: The illegal instruction is:
0040BDEB movsd mmword ptr [eax+8],xmm0
Looks fine to me :/
I'll see if I can find out what's going wrong...
Edit: The illegal instruction is:
0040BDEB movsd mmword ptr [eax+8],xmm0
Looks fine to me :/
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement