Xp-cagey,
Wolv
Join Date: 2002-01-25 Member: 56Members
<div class="IPBDescription">possible compile tool changes</div> Hello XP-Cagey,
With your programming skills and undertanding of the compile tools, I wondered if some of the changes made in <a href='http://www.shaderlab.com/q3map2/' target='_blank'>Q3Map2</a>, Quake III's custom compile tools, might also be doable in Half-Life.
Obviously it's an entirely different engine, but some things might also be possible in the Half-Life engine.
For example merging identical lightmaps. I don't know how this works in Quake I, but in Quake III it apears to be possible to let faces with identical lightmaps use only 1 lightmap . So it would go something like: determine if the lighting on lightmap X is equal to the lighting on lightmap Y and then let the face that originaly referenced Y reference X instead, so that Y can be deleted. I'm probably talking complete nonsense here, but it sounds like a possible performance enhancer and limit increaser.
Perhaps this is also possible with planes (if it isn't done automaticaly already): determine if two planes lie on the same "plane", and if they do let faces use only 1 of them, so the other can be deleted.
With your programming skills and undertanding of the compile tools, I wondered if some of the changes made in <a href='http://www.shaderlab.com/q3map2/' target='_blank'>Q3Map2</a>, Quake III's custom compile tools, might also be doable in Half-Life.
Obviously it's an entirely different engine, but some things might also be possible in the Half-Life engine.
For example merging identical lightmaps. I don't know how this works in Quake I, but in Quake III it apears to be possible to let faces with identical lightmaps use only 1 lightmap . So it would go something like: determine if the lighting on lightmap X is equal to the lighting on lightmap Y and then let the face that originaly referenced Y reference X instead, so that Y can be deleted. I'm probably talking complete nonsense here, but it sounds like a possible performance enhancer and limit increaser.
Perhaps this is also possible with planes (if it isn't done automaticaly already): determine if two planes lie on the same "plane", and if they do let faces use only 1 of them, so the other can be deleted.
Comments
what you propose is kinda like a zip/unzip prgm or a jpg maker/viewer that uses indexing to reduce file size. but the mod engine would have to be made to unzip the compressed index data as well.
not a bad idea per se, i just do not think it is gonna happen due to the work involved.
The planes are already indexed this way... I'm not sure if Valve is doing this with lightmap information, but I've been going over the HLRAD source the last few days to see how it's put together.
On the subject of HLRAD, there are some common subroutines--like finding line-plane intersections--that weren't reduced to simplest form before being coded--I haven't profiled the code yet, but it looks like there are some possible speed gains. The biggest problem is still the memory drain... perhaps a faster routine wouldn't have to cache quite so much <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html/emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif'><!--endemo-->.