Forum

Lightmap with higher resolution (hmap2 + standard quake)

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.

Moderator: InsideQC Admins

Lightmap with higher resolution (hmap2 + standard quake)

Postby JasonX » Thu Mar 25, 2010 5:53 pm

Quick question guys: how can i have lightmaps with a higher resolution using hmap2 and standard quake?
JasonX
 
Posts: 411
Joined: Tue Apr 21, 2009 2:08 pm

Postby Lardarse » Thu Mar 25, 2010 6:26 pm

hmap2 -light -extra mapname

or

hmap2 -light -extra4x4 mapname
Roaming status: Testing and documentation
User avatar
Lardarse
 
Posts: 266
Joined: Sat Nov 05, 2005 1:58 pm
Location: Bristol, UK

Postby Spike » Thu Mar 25, 2010 9:03 pm

lightmap resolution is 1/16th of the regular texture resolution. Scale your textures, scale your lightmaps.
Spike
 
Posts: 2892
Joined: Fri Nov 05, 2004 3:12 am
Location: UK

Postby metlslime » Thu Mar 25, 2010 9:03 pm

Lardarse wrote:hmap2 -light -extra mapname

or

hmap2 -light -extra4x4 mapname


These just enable supersampling, they will not create a higher-resolution result.

In normal quake engines, the lightmaps are set at 1 sample per 16 texels. So to get more lightmap density on a wall, you can scale down the textures in your map editor.

So for example, replace your 64x64 texture with a higher-res 128x128 version (must be in the wad file itself, not using external textures), then in your map editor set the texture scale to 0.5 on all walls that use that texture, and you will get higher lightmap density.
metlslime
 
Posts: 316
Joined: Tue Feb 05, 2008 11:03 pm

Postby mh » Fri Mar 26, 2010 10:14 am

2 things to be aware of before you do try this (this isn't for metl who already knows this...):

Firstly, lightmaps are loaded into a "blocklights" array before being sent to OpenGL. This is hard-coded to a size of 18*18, and is dependent on the max surface extents. If you boost the lightmap density you will need an engine modification to either reduce the max surface extents or increase the size of blocklights, otherwise you'll risk overflowing the array.

Secondly, you can expect dynamic light modification to be a serious performance hit.
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
User avatar
mh
 
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Postby JasonX » Fri Mar 26, 2010 2:09 pm

What about software rendering, does it have this limit?
JasonX
 
Posts: 411
Joined: Tue Apr 21, 2009 2:08 pm

Postby frag.machine » Fri Mar 26, 2010 7:19 pm

JasonX wrote:What about software rendering, does it have this limit?


Actually, AFAIK this limit is due software render limitations (or, to be more exactly, with hardware constraints back in the software render only days).
I know FrikaC made a cgi-bin version of the quakec interpreter once and wrote part of his website in QuakeC :) (LordHavoc)
User avatar
frag.machine
 
Posts: 2090
Joined: Sat Nov 25, 2006 1:49 pm

Postby metlslime » Fri Mar 26, 2010 7:21 pm

mh wrote:2 things to be aware of before you do try this (this isn't for metl who already knows this...):

Firstly, lightmaps are loaded into a "blocklights" array before being sent to OpenGL. This is hard-coded to a size of 18*18, and is dependent on the max surface extents. If you boost the lightmap density you will need an engine modification to either reduce the max surface extents or increase the size of blocklights, otherwise you'll risk overflowing the array.


To be clear, these are not caveats related to using my suggestion above, they only apply if you intend to modify the engine to get what you want.
metlslime
 
Posts: 316
Joined: Tue Feb 05, 2008 11:03 pm

Postby leileilol » Fri Mar 26, 2010 8:26 pm

frag.machine wrote:Actually, AFAIK this limit is due software render limitations


Or human limitations. How many people want to touch Abrash's crazy asm?
i should not be here
leileilol
 
Posts: 2783
Joined: Fri Oct 15, 2004 3:23 am


Return to General Programming

Who is online

Users browsing this forum: No registered users and 1 guest