Jump to content

  • Log In with Google      Sign In   
  • Create Account

Interested in a FREE copy of HTML5 game maker Construct 2?

We'll be giving away three Personal Edition licences in next Tuesday's GDNet Direct email newsletter!

Sign up from the right-hand sidebar on our homepage and read Tuesday's newsletter for details!


We're also offering banner ads on our site from just $5! 1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


Baking a Local Thickness Map


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
4 replies to this topic

#1 Migi0027 =A=   Crossbones+   -  Reputation: 1939

Like
1Likes
Like

Posted 06 February 2014 - 02:59 AM

Hi guys wink.png .

 

As you know translucency is a big topic, and can be really expensive to simulate, therefore we prebake certain things, like a 'Local Thickness Map'. Which basically contains the distance from the current point to the one, well, behind, so the thickness, that can be locally mapped on a mesh, like this one:

 

112enic.png => 1zw1czq.png

 

The technique described by the paper by dice (

 

The offline approach described by the paper reads as following:

To streamline this, we rely on a normal-inverted computation of Ambient Occlusion 
(AO), which can be done offline (using your favorite modeling and rendering software) 
and stored in a texture. Since ambient occlusion determines how much environmental 
light arrives at a surface point, we use this information for the inside of the shape (since 
we flipped the normals), and basically averages all light transport happening inside the 
shape.

 Though I'm not fully sure what they exactly mean, are they implying that it's a brute force AO ( raytracing ) with inverted normals?

 

So my question is really what approaches can I take at baking this map?

 

You reached the bottom, thanks for your time! smile.png

-MIGI0027


Hi! Cuboid Zone
The Rule: Be polite, be professional, but have a plan to kill everyone you meet, ohh, AND STEAL ALL ZE TRIANGLES FROM ZHEM!

Sponsor:

#2 Chris_F   Members   -  Reputation: 2435

Like
0Likes
Like

Posted 06 February 2014 - 03:41 AM


Though I'm not fully sure what they exactly mean, are they implying that it's a brute force AO ( raytracing ) with inverted normals?

 

You are calculating AO, but from and to the interior surface. The occlusion value is then inverted to get the local thickness value.


Edited by Chris_F, 06 February 2014 - 03:42 AM.


#3 Reitano   Members   -  Reputation: 535

Like
1Likes
Like

Posted 06 February 2014 - 04:37 AM

I did some research on this topic recently and apparently the latest version of xnormal has support for baking translucency maps.  I haven't tried it yet and I'd be curious to see what results you'll achieve in your implementation.



#4 eppo   Crossbones+   -  Reputation: 2508

Like
2Likes
Like

Posted 06 February 2014 - 08:22 AM

Tried this out in Modo. Simply flip the polygons and bake an AO map.

 

nLqA16r.png


Edited by eppo, 06 February 2014 - 08:37 AM.


#5 Tocs   Members   -  Reputation: 676

Like
1Likes
Like

Posted 20 February 2014 - 03:16 PM

I know this topic is 14 days old but I started working on the subsurface scattering that uses these maps and needed a way to generate them. I found XNormal has a built in option for this type of map. It's called "Translucency" and not "Local Thickness". You won't need to flip your normals and such. It also has a C++ library if you want to integrate baking into some sort of tool you're building, and it's free. 

 

Edit: Didn't read carefully enough XNormal was already suggested.

 

Edit: Here's the translucency map generated from XNormal used in the shader...

SiSiDHI.png


Edited by Tocs, 20 February 2014 - 04:15 PM.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS