Zwiebelchen Posted March 10, 2015 Posted March 10, 2015 (edited) Hello everyone! I'm currently writing a tutorial on how to create and render PoE-esque landscapes with Blender (to allow future community projects that add custom user content). However, I'm confused about how the depth map of PoE works, which is vital to create the occlusion effects ingame. This picture is from the tech demo video: http://media.obsidian.net/eternity/media/updates/0079/pe-passes.jpg So, here are my problems: Why does the building on the screenshot have a layered black-and-white striped pattern instead of a steady bottom-to-top gradient from white (ground plane) to black (maximum possible occlusion height)? Also, why do the wall columns on the left side of the screen have a bright white top, brighter than the ground plane, which is clearly behind the wall columns, not in front of them? This is very confusing, imho and makes it hard to find out the correct parameters for the rendering process. Can you please share us some details about how the depth rendering is done (or at least, how the depth map works)? Final, Normal and Albedo map are no problem so far. Edited March 10, 2015 by Zwiebelchen 2
Zwiebelchen Posted March 11, 2015 Author Posted March 11, 2015 (edited) From what I see now, it looks like there is just a striped overlay over every vertical wall. This means replicating this would be as simple as projecting the striped texture onto all objects in X/Y directions. Am I on the right track here? Still, I don't see the purpose of this yet. Edited March 11, 2015 by Zwiebelchen 1
Xerophyte Posted March 15, 2015 Posted March 15, 2015 I don't think there's a big mystery. It's not depth as in z-buffer, but height above ground. Since the max and min heights aren't known there's no range that's easily mapped to [0..1], so the debug visualization you're seeing is instead showing the fractional part. Each stripe represents an increase in height by 1.
BMac Posted March 17, 2015 Posted March 17, 2015 More specifically, the height of each pixel off the ground is encoded as a normalized floating point number into the 24-bit height texture. The reason you get the striations and other strange patterns is that the image viewer has attempted to render this floating point number as a 24-bit RGB value, which doesn't exactly make sense - the stripes are not a feature of the format but rather an artifact. You should pull any of the HGT_AR textures out of the build to get a better idea, that render is not completely accurate, though it shows the basic idea. 4
Merlkir Posted March 17, 2015 Posted March 17, 2015 Nice! Looking forward to that tutorial! ======================================http://janpospisil.daportfolio.com/ - my portfoliohttp://janpospisil.blogspot.cz/ - my blog
Zwiebelchen Posted March 17, 2015 Author Posted March 17, 2015 More specifically, the height of each pixel off the ground is encoded as a normalized floating point number into the 24-bit height texture. The reason you get the striations and other strange patterns is that the image viewer has attempted to render this floating point number as a 24-bit RGB value, which doesn't exactly make sense - the stripes are not a feature of the format but rather an artifact. You should pull any of the HGT_AR textures out of the build to get a better idea, that render is not completely accurate, though it shows the basic idea. Thanks for the additional intel. Combined with the knowledge from the other thread about maps, I think I can now replicate all the maps with a satisfactory result. Now the remaining problem is porting them into a game-readable file... 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now