Diffuse mapping- baked into lightmap?

Discuss programming topics for any language, any source base. If it is programming related but doesn't fit in one of the below categories, it goes here.
Post Reply
Downsider
Posts: 621
Joined: Tue Sep 16, 2008 1:35 am

Diffuse mapping- baked into lightmap?

Post by Downsider »

Is this possible? O_o

Would it look satisfactory?
mh
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Post by mh »

:?:

Diffuse mapping is just a standard texture, unless I'm mistaken and you mean something else.

In any case, the Quake lightmaps are (1) low res, (2) not mipmapped, and (3) an "atlas" texture (so that each individual surface lightmap is effectively clamped rather than wrapped - http://en.wikipedia.org/wiki/Texture_atlas ), so they would be impractical for any such trickery.
We had the power, we had the space, we had a sense of time and place
We knew the words, we knew the score, we knew what we were fighting for
MauveBib
Posts: 634
Joined: Thu Nov 04, 2004 1:22 am

Post by MauveBib »

I presume you mean Deluxmapping?
Apathy Now!
Downsider
Posts: 621
Joined: Tue Sep 16, 2008 1:35 am

Post by Downsider »

MauveBib wrote:I presume you mean Deluxmapping?
Yeah, yeah that's what I meant >_>

Sorry o_o

Or rather I meant the aspects of deluxemapping, like normal mapping.
mh
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Post by mh »

Ah, that makes more sense. :D

The answer is still probably "no", however. I say "probably" because it's possible, but you shouldn't. Lightmaps are just way too low-resolution. I'm not talking half-resolution or even quarter-resolution, it's something in the order of one-sixteenth resolution! You don't see it in WinQuake because of the way it calculates it's blend from the colormap, and you don't see it in GLQuake because values of gl_texturemode don't affect lightmaps, but for a standard 64 x 64 Quake texture the lightmap equivalent is only 4 x 4.

Increasing the lightmap resolution (by filtering upwards during an upload, for example) is one option, but you would seriously hurt dynamic light update times. The same applies to mipmapping lightmaps, which would be another requirement. To encode a normal map in a lightmap you would need 3 channels, meaning that you've a single channel left over for colour, meaning that you'll lose coloured light. You could take an alternative tactic and bake a height map in, then convert that to the normal map in a pixel shader, but it's gonna be slow and take a lot of instructions.
We had the power, we had the space, we had a sense of time and place
We knew the words, we knew the score, we knew what we were fighting for
Downsider
Posts: 621
Joined: Tue Sep 16, 2008 1:35 am

Post by Downsider »

Ah, okay. Thanks for the explanation. I never actually noticed them being insanely low res, I guess it's just done right so it's pretty ;D
Post Reply