Hard Light Productions Forums

Modding, Mission Design, and Coding => The Modding Workshop => Topic started by: FUBAR-BDHR on June 28, 2009, 11:39:36 pm

Title: Shine maps and DXT1
Post by: FUBAR-BDHR on June 28, 2009, 11:39:36 pm
Recently doing some nameplates for TBP I was saving shine maps in DXT5 resulting in some rather shiny ships.  After scratching my head I accidentally hit on the problem.  The original shine maps were saved in DXT1 format (verified by looking at the DDS file header).  Everything I've read and been told seems to point that DXT1 can't be used for shine maps.  So now I'm wondering if the shine maps are even doing anything or does DXT1 work for shine maps? 
Title: Re: Shine maps and DXT1
Post by: Water on June 29, 2009, 12:16:22 am
The alpha for a DXT1  pixel is either black or white, no greyscale. So a DXT1 shine map will work fine.

Black alpha = no Environmental mapping

Edit: Changed No to Black
Title: Re: Shine maps and DXT1
Post by: Vasudan Admiral on June 29, 2009, 08:57:36 am
Don't mistake shinyness for reflectivity - DXT1 shine maps will more than likely have have the Alpha pixel Water talks about set to white, resulting in the effect where your ship is 100% reflective in-game, but with normal shine. Test it in the ship lab if you're unsure by seeing if the look changes when env map is turned on or off.
Title: Re: Shine maps and DXT1
Post by: Scooby_Doo on June 29, 2009, 02:10:33 pm
If I'm not mistaken, no alpha = complete environ mapping
Title: Re: Shine maps and DXT1
Post by: DaBrain on June 29, 2009, 03:04:20 pm
DXT1 supports an 1-bit alpha channel. So just make it black and the env mapping will be gone.

Or alter the shaders so it uses another color channel for the env mapping.

I am not 100% sure if FS2 supports the 1-bit alpha channel.
Title: Re: Shine maps and DXT1
Post by: FUBAR-BDHR on June 29, 2009, 05:36:51 pm
Well that's good to know at least DXT1 does do something.  I thought they were doing something but was worried they weren't.  Actually my big fear was that they were all saved incorrectly but thankfully that's not the case. 

I've been using paint.net (yea I know but it works for what I do) and I don't know what the option does but weight color by alpha and DXT1 is what seems to give the same effect as the originals.  What that flag does I have no idea.
Title: Re: Shine maps and DXT1
Post by: Nuke on June 29, 2009, 08:51:47 pm
1 bit alpha only gives you full env or no env. but at least it lets you pick one or the other. dxt1 should default to no env, but if you get excessive shinys then it defaults to full env. what we really need is a materials system.
Title: Re: Shine maps and DXT1
Post by: chief1983 on July 14, 2009, 01:50:58 pm
If you tell me which maps need it, I can probably get some DXT5 maps with proper env to them, that aren't mirrors but still offer a bit of a sheen.  Needs a slight reflection, they're mostly metal after all.
Title: Re: Shine maps and DXT1
Post by: redsniper on July 14, 2009, 02:13:27 pm
Herra says they should be concrete... :nervous:
Title: Re: Shine maps and DXT1
Post by: blowfish on July 14, 2009, 03:52:39 pm
FS2 will not read DXT1's alpha channel.  When DXT 1 is used (or any format that lacks an alpha channel, for that matter), environmental mapping will be calculated based on the RGB intensity.  For format's like DXT3 and DXT5 which have an alpha channel, that alpha channel will be used.  So if you leave the image fully opaque and save as DXT5, you will get full alpha.
Title: Re: Shine maps and DXT1
Post by: Herra Tohtori on July 14, 2009, 05:25:50 pm
Herra says they should be concrete... :nervous:

Oh what a funny man you are... :lol:

I was talking of the basic underlying structure of something like GTD Orion, not the surface of the ship. Reinforced concrete might not be as silly a building material for a massive space ship as you might think. Provided you can use it where you're building the ship. Using it in vacuum might be slightly problematic.

Regarding DXT1; I was under the impression that FS2_Open does not even read the alpha channel on that format, and when there is no alpha, the engine currently interprets it as black (no alpha). Am I completely in the woods with this assumption of mine?