Jump to content


Photo

TPC compressed texture transparency: alpha blending

TPC texture transparency blending

  • Please log in to reply
No replies to this topic

#1 ndix UR

ndix UR

    Jedi Padawan

  • Members
  • PipPipPip
  • 99 posts
  • Locationca, usa

Posted 14 January 2018 - 01:33 AM

The TPC texture format contains a floating point number in its header that we refer to as 'alpha blending'. It appears to be critical when used with DXT5 compression. This tutorial will try to help you use this feature properly.

 

What is alpha blending?

 

Alpha blending is not a direct 'opacity' or 'transparency' factor. It is only relevant for non-environment mapped textures that contain alpha-channel image-based transparency. For example, semi-transparent signage, mostly transparent windows, ghosts, etc.

 

The best description I can give you for what alpha blending is:

 

TLDR: alpha blending is not object opacity. It hides any mesh behind the textured object that has opacity less than tpc alpha blending number. Set it to 0.0 when using texture alpha channel as transparency.

 

The meshes that will be hidden include any mesh that may be using alpha channel solely for environment mapping. Let's see how this plays out in practice with some visual aids. Each figure uses a TPC encoded version of the K1 Manaan Overhaul semi-transparent texture for the Sith Embassy signage. Transparency of the sign is right around 50%.

 

Figure 1. TPC with alphaBlending set to 1.0

 

Attached File  trans-1-0.jpg   124.39KB   0 downloads

 

With alphaBlending set to 1.0 the only thing that shows through the sign is the skybox itself. This may be some kind of depth buffer test to make sure that something always blends through, which, in the 1.0 case, leaves just the most distant mesh, the skybox.

 

Figure 2. TPC with alphaBlending set to 0.9

 

Attached File  trans-0-9.jpg   125.27KB   0 downloads

 

This seems to be the critical shot. With alphaBlending set to 0.9, lma_wall11 is showing, while lma_wall09 is hidden. lma_wall11 is 100% opaque, 0% transparent. lma_wall09 is 85% opaque, 15% transparent.  So because lma_wall11 opacity > alphaBlending, it is shown, while, for lma_wall09, opacity < alphaBlending, so it is hidden.

 

Figure 3. TPC with alphaBlending set to 0.5

 

Attached File  trans-0-5.jpg   122.93KB   0 downloads

 

In figure 3 we can see that both lma_wall09 and lma_wall11 are showing because their opacities are both greater than 50%.

 

Figure 4. TPC with alphaBlending set to 0.0

 

Attached File  trans-0-0.jpg   116.53KB   0 downloads

 

This looks exactly the same as figure 3. Wait, isn't that weird though? Why can't we see the other sign through the first sign? It's opacity is 50%, which is greater than 0.0...

 

Figure 5. TPC with alphaBlending set to 0.5, reverse viewing angle

 

Attached File  trans-0-5rev.jpg   107.41KB   0 downloads

 

Just by looking through the sign in the opposite direction, the signs in the background now are blended through. This is showing a couple things. First, it seems that alphaBlending doesn't actually control instances where the same texture is behind itself. Instead, it appears that there is some kind of directionality at play. I haven't figured out what determines the direction of blending. I investigated whether it was the faces that appear earlier or later, but that didn't necessarily seem true.

 

Using alpha blending

 

The game's vanilla textures use all kinds of different values from 0.0 - 1.0 here. I do not fully understand why or how they have come up with a lot of their alpha blending values. In my testing, it seems like if you have a semi-transparent object, you set this to a low value, 0.0 or 0.1, and if you have a non-transparent object, you set this to 1.0.

 

The important thing is that you do not think of alpha blending as the transparency or opacity of the object itself.

 

If anyone comes up with better guidelines for setting this value through scientific testing, I will be happy to update this post to reflect the improved guidance.







Also tagged with one or more of these keywords: TPC, texture, transparency, blending

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users