Jump to content
View in the app

A better way to browse. Learn more.

Obsidian Forum Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

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 by Zwiebelchen

  • Author

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 by Zwiebelchen

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.

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.

  • Author

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...

Create an account or sign in to comment

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.