Forcing sample size


(VolumetricSteve) #1

when I compile my maps, I get a ton of “WARNING: surface at (x y z) (x y z) too large for desired samplesize/lightmapsize/lightmapscale combination, increased samplesize from # to #”

That goes on for about 5 minutes before each compile, what’s worse is that it’s a single threaded process, so I can see my computer is spending a lot of time dealing with warnings I don’t want to get.

I’d think there’d be some way to globally scale everything …up…so far I’ve got one chunk of the puzzle with adding -samplesize 4 to both BSP and Light, but I don’t know about lightmapsize and lightmapscale. I’m about to do some serious digging, but if there’s some way to just force every surface to accept a “samplesize 4” parameter, I’d be happy to leave it at that. The advantage of it being 2010 is that a 900 dollar computer gives you processor cycles to burn. I plan on burning every single one.

I’m about to be knee-deep in google, but if anyone has any tips, I’d greatly appreciate it.

Thanks.


(obsidian) #2

Really high resolution lightmaps don’t work well with large surface areas. It’s basically warning you that it’s trying to stretch a 128x128 lightmap page over a relatively large surface area despite you trying to set a higher resolution. It’s like you trying to wrap a Christmas present with too little wrapping paper. You can either go with a more reasonable lightmap resolution, fiddle with splitting up surface geometry or force larger dimension lightmaps and export them to external lightmaps.


(VolumetricSteve) #3

“fiddle with splitting up surface geometry”

I like the sound of this idea, but I actually tried it in razztazzmagoria and it didn’t seem to work, the version of q3map2 I’m using (Net Radiant’s 2.5.17) requires that -meta be used in the bsp phase, and I get the feeling that undoes a lot of the splitting, but I’m not sure, maybe I just wasn’t splitting the geometry correctly. I’d also be willing to swap back to GTKRadiant if it meant I could get higher resolution lightmaps on larger surfaces.

“force larger dimension lightmaps and export them to external lightmaps.”

I love the sound of this one the most, i’ve been wanting to experiment with external lightmaps for a while, but how does it work? Do they need to be dumped back into the bsp file somehow? I’ve seen mention of the -export switch, but I don’t remember seeing an -import switch.

I’ll be pulling another all nighter looking into these as far as I can, any tutorials/threads you know of that explains these would be great. In the mean time, I’m trying my hand at RedBull and Google. Thanks.


(obsidian) #4

There is an -import, but you won’t be using it in this case, just leave it dumped into a folder and Q3Map2 will generate a bunch of shaders for them.

Tread lightly, Q3Map2 might explode sending shrapnel into your face. I suggest using this locally only on surfaces that you specifically need it.


(VolumetricSteve) #5

interesting…(yeah, this is how I’m spending my friday evening, I feel good about feeling good)

I better get a face full of shrapnel.

researches

thanks again!

interesting…(yeah, this is how I’m spending my friday evening, I feel good about feeling good)

I better get a face full of shrapnel.

researches

thanks again!

**edit

so if I’m to understand correctly…

if I were to add
“q3map_lightmapSize 1024 1024” to every shader used in my map, every surface’s lightmap would be linked to an external, high-res lightmap?..presumably 1024^2 in resolution

just…hypothetically speaking

(which I won’t do, the goal is to make it look as good as it can, so I just need to make the big surfaces look better at this point, but…just sayin’…that’s how it would work, right?)


(obsidian) #6

Yes, that’s the idea. Though q3map_lightmapSize takes a single value, (“q3map_lightmapSize 1024”, not “q3map_lightmapSize 1024 1024”). You can experiment with different values like 256 or 512 as needed. If you look at the external lightmap image and there is a lot of black wasted space, you can probably choose a smaller lightmap size to save on memory.