Terrain sizing / resolution concerns


(Obli) #1

Hi all,

I am tackling the begining of my first full size map… :eek3: I have built many test maps and feel I have a decent understanding of mapping basics.

I have a map of 10,000 x 10,000 units in Radiant and I have built a few random buildings as to my sketched out plan!

The map will be 90% oudoor and I am having problems with the terrain.

I made the terrain in Easygen using only the modifiers. The map was 10,000 x 10,000 units (to fit) and 200 x 200 divisions with a 50 x 50 division width. When I export the map and import into Radiant, the program runs stupidly slow. I painfully aligned the terrain to fit and moved some buildings then tried to compile (BSP -meta only). The compile was taking so long (cullsides didn’t even count up) I stopped it.

My system is an Atlon XP2200+ 512 DDR PC2700 RAM, GF4 TI4200 64MB GFX card - what I thought would be adequate enough.

Am I doing something basically wrong?
Should I use lower divisions (although I’m worried about losing detail) ?
How would the terrain on Fuel Dump have been created and at what level of detail - does the phong shading cover up a low number of triangles?

I thought one solution would be to use large brushes to add flat terrain and therefore limiting the number of triangles used but I don’t really want flat terrain :frowning:

Any advice would be appreciated :smiley:

Regards,

Obli.


(SteelRat) #2

10000x10000 is awfully large in my opinion, a map of 4096*4096 will take the player 30 seconds to run from one corner to another and on your map it would take about 1 minute and 30 seconds just to get to the other end.

My advise would be to reduce the size to about half and then use a heightmap in easygen instead of only using the modifiers. If you look at fueldump that map is not one single open area, it is 2 large ones combined thru the tunnel where Axis originally start.
Having a huge map with a 90% outdoor environment will kill the FPS for most players and the map will not be played, I know since I have made that mistake.

You may want to make a smaller map that is fun to play and where you can get where you need within reasonable time. Size is not what makes a map fun, it is how intelligent you have planned the gameplay on it (this is hard).

To speed up the performance of Gtk you can turn on the cubic clip in the camera view so the 3d view does not have to draw everything.

/SteelRat


(badong) #3

First of all radiant will be slow with a terrain of that size. And your compile time will be pretty large. But your main problem is that your division widths are too small.
50x50 units is way too much detail, and you don’t need it, especially for terrain. If you do the math you’ll see that you have a 200x200 grid meaning you have 40,000 total faces on your terrain or 80,000 triangles!!! Granted that you probably won’t see all of it at once, you still will end up with very high tris counts(especially considering how hard it is to vis terrain properly). If you want decent FPS you shouldn’t pass the 20-25000 tris count.
My advice to you is increase your division width to at least 128x128 or even higher(256x256) if you can afford it.
Fuel dump has a 256x256 division widths for most of it’s terrain, and yes phong shading does help a lot. (By the way, if you want to see how the official maps were done you can just decompile them).
As far as easygen is concerned I never use heightmaps personally. They take almost the same amount of time to make as doing the terrain by hand(you still have to go pixel by pixel when you draw the heightmap just like you would go vertex by vertex in easygen) and they never give you as good of a result as the hand shaped terrain. But that’s just me.
Try cubic cliping the camera view like SteelRat suggested to get better performance in radiant but like i said if you don’t increase the division width your map will probably be very slow.
Hope that helps


(Obli) #4

Hi again,

Yes guys, thanks for the responses - very helpful indeed.

I have now imported my terrain at a lower detail (approx 1/4 number of triangles less - 75 x 75 grid) - all is well - Radiant runs faster and it compiles (BSP -meta and Light -fast) pretty quick! :clap:

I created the terrain in Easygen using only the modifier tools (I prefer this way too). I textured (‘alphamaped’) the terrain in four different textures. However, the textures look unrealistic in ET, like small tiles although I did use + ‘a good few times’ to enlarge the texture tiling in Easygen. Why is this? Is there a fix?

I must agree, the map is HUGE! Far too much open space! I shall start over with a smaller map and try and ‘compress’ main areas of the map. With my GF4 TI4200, I get a constant 90FPS so far which is quite good considering the GFX card isn’t cutting edge anymore :smiley: I know FPS will drop as I add more buildings / structures… :frowning:

Thanks again for your help.

Regards,

Obli.


(SteelRat) #5

To make the textures look better on the terrain you need to edit your shader that easygen creates. This should be in the \scripts directory and the shader has the name: yourname.shader Also make sure your shader is included in the shaderlist.txt

Edit that in a text editor of your liking and to start with I suggest a simple search and replace.
The default tcmod scale from easygen is 0.500, play with this value until you are satisfied.

textures/v2basenew/terrain_0
{
	surfaceparm nolightmap
	q3map_novertexshadows
	q3map_forcesunlight
	{
		map textures/temperate_sd/rock_ugly_brown.tga
		rgbGen vertex
		tcmod scale 0.100 0.100
	}
}

A value somewhere around 80 to 200 is usully pretty good depending on brush size and all that.


(badong) #6

Actually it has been suggested many times by ydnar that the tcmod scale command in the individual stages of the shaders is useless and should be removed because it’s just waisting CPU power.
Grab and use these easygen templates instead, which are more recent and are better written(they were writen by rgoer) and place them in the templates directory in easygen(also add them to the templatelist.txt file).

Your problem with the small tiling is most likely caused because you haven’t added the shader file name generated by easygen to your shaderlist.txt file, so add it.

If that still doesn’t solve your problem(although I suscpect it will), you can try changing the parameters in the q3map_tcGen ivector ( 512 0 0 ) ( 0 512 0 ) command in the _base shader generated by easygen.(By the way, when easygen generates the shader file it places this shader at the very end of the file. I suggest you move it from there to the beginning of the file.)
The ( 512 0 0 ) ( 0 512 0 ) parameters mean tile the textures every 512 units in the x and y direction. You can try increasing this value for less tiling.


(Obli) #7

Thanks for the suggestions guys.

I couldn’t find the command ‘tcmod scale’ anywhere within my shader generated by Easygen. Is this because I had previously updated my Easygen templates (which gave me the ‘wolfet’ template) ? Does the box within EXP MAP in Easygen, ‘gridsize (to light entities)’ have anything to do with texture sizing?

I have had no luck with adjusting the texture tiling size :frowning: I added the shader file name to my shaderlist.text file. I located the ‘q3map_tcGen ivector’ command at the bottom of the shader created by Easygen. I changed the values to (1024 0 0) (0 1024 0), re-compiled the map (is this necessary?) and loaded the map up - unfortunately, there was no difference :frowning:

Any more ideas? I shall continue experimenting… Thanks again.

Obli.


(badong) #8

hmmm…well let’s see…did you add only the shader file name to the shaderlist.txt without the .shader extension(meaning if your shader file is called myMap.shader you should only add myMap to shaderlist.txt)
seconldy move the base shader that’s at the end of the file at the beginning (that’s the shader that ends with _base and has the q3map_tcGen ivector command in it) because it looks like it’s not using the base shader at all .

If this still doesn’t fix it I don’t know what to tell you :uhoh:


(Obli) #9

Just a note to say I got it working! Thanks for your help! No more (small) texture tiling on my terrain!

It was a case of moving the _base part of the shader up to the top - after that it worked! :clap:
After that I adjusted the q3map_tcGen ivector command until I got the desired result, ( 256 0 0 ) ( 0 256 0 ) proving ideal for my terrain… it looks so much better now! :smiley:

I can sleep in peace now… until the next ‘issue’! :blah:

Cheers,

Obli.