Game Development Community

Multiple texture layers (interior specific?)

by Stefan Lundmark · in Torque Game Engine Advanced · 10/24/2006 (2:44 pm) · 7 replies

I can no longer layer textures ontop of eachother in materials applied to interiors. They appear full bright as soon as I layer the second texture, and this procedure worked just fine in MS3. As long as I keep to one layer, it is okay.

Could this be related to the new exposure variable?
Another thing I want to add is that this works perfectly on DTS shapes.

#1
10/25/2006 (5:25 pm)
It could have been broken with lighting changes. Trace into the matInst and see what it's doing - it may be doing an additive blend on the second pass or something, which would make it real bright.
#2
10/26/2006 (12:41 pm)
// set alpha blend
   if( mCurPass > 0 )
   {
      GFX->setAlphaBlendEnable( true );
      [b]mMaterial->setBlendState( mPasses[mCurPass].blendOp );[/b]
   }
   else
   {
      GFX->setAlphaBlendEnable( false );
   }

The blend mode is being set to LerpAlpha, so I don't think the second pass is using Additive Blending.

Another note: Only the first layer ever gets overexposed, no matter how many layers are added the others stay normal. I'm still clued as to why this does not happen to DTS shapes though.

Ie. This material is ok (because the first layer is not used):
new Material(cornercat)
{
   mapTo = "cornercat";
   baseTex[1] = "cornercat.png";
   
   baseTex[2] = "cornercat_glow.png";
};

baseTexture[0]:
www.innercircledev.net/garagegames/base.jpg
baseTexture[1]:
www.innercircledev.net/garagegames/glow.jpg
Result:
www.innercircledev.net/garagegames/result.jpg
#3
10/29/2006 (11:02 am)
Can no one else (Brian?) reproduce this or is it simply not a priority?
#4
10/30/2006 (2:58 pm)
Umm, your Material definition doesn't specify a baseTex[0]. Also, are you glowing a later pass?
#5
10/30/2006 (4:03 pm)
That's the point. Look at my post again:

Ie. This material is ok (*because the first layer is not used*):
new Material(cornercat)
{   
    mapTo = "cornercat";   
    baseTex[1] = "cornercat.png";      
    baseTex[2] = "cornercat_glow.png";
};

You following? If I specify the first layer, I get the overexposure. If I don't, it behaves as expected. Ie, the following material will get overexposed:

new Material(cornercat)
{   
    mapTo = "cornercat";   
    baseTex[0] = "cornercat.png";      
    baseTex[1] = "cornercat_glow.png";
};

Do you want me to type down a short document on how to reproduce this in TSE MS4 terrain_water_demo?
#6
10/31/2006 (5:22 pm)
Send me your data and I'll take a look at it.
#7
11/07/2006 (4:44 am)
Apparantly, something changed in the /shaders folder, between the first MS4 and the second release. Copying it over seems to solve the issue, which explains why I couldn't reproduce it in the older MS4 but in the newer one.