Jump to content

  • Log In with Google      Sign In   
  • Create Account

Warcraft 3 cliff and ramp rendering


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
4 replies to this topic

#1 Triad_prague   Members   -  Reputation: 140

Like
0Likes
Like

Posted 18 May 2013 - 06:54 AM

Hi people. I'm designing a format for a map in my game. I want it to have cliff and ramp, just like WC3. Thing is, I don't know how they make it work. At first I thought WC3 map was just a simple textured heightmap, but then it can have cliffs, ramps, which breaks the rules of standard heightmap. I guessed it was just a simple heightmap underneath, with "procedural" rendering for each tiles (I could see the heightmap layout in wireframe mode in the editor, thus I thought they just render each tile "differently").

 

Can anyone give me a hint on how to do that? I think I just got a few ideas, but somehow I feel not confident enough. I need the opinions of others. Thank you guys!

 

This is what I mean by cliff:

44739d1230921253-editing-cliff-skins-cli

 

and this is what I mean by "ramp" (basically it's a passable passage that connects higher tile to lower tile):

rampstart.jpg


the hardest part is the beginning...

Sponsor:

#2 Hodgman   Moderators   -  Reputation: 30384

Like
2Likes
Like

Posted 18 May 2013 - 07:39 AM

My guess would be that they have a terrain grid, which in most places is a regular heightmap. At each grid-cell though, instead of the regular height-map rendering, they can replace that cell with an artist-generated model. They then get their artists to make a "set" of models, which includes straight cliffs, corner cliffs and ramps.

Their editor then has a bunch of fancy logic that knows how these different models should be connected (e.g. ramp must have cliffs on either side, "inner" or "outer" corners selected based on angles of the straight cliffs on either side, etc) to make level editing easy. At any cell where these models are used, the heightmap terrain is 'stitched' up to the edge of the model on either side.



#3 Triad_prague   Members   -  Reputation: 140

Like
0Likes
Like

Posted 19 May 2013 - 05:45 AM

Well, that's a good idea. I got a good idea to implement it now. But instead of stitch the terrain heightmap, I'll place a "parametrical model", which replace regular tiles. They will draw themselves based on the 4 corner values. Can't wait to implement it next week!!


the hardest part is the beginning...

#4 dpadam450   Members   -  Reputation: 923

Like
0Likes
Like

Posted 19 May 2013 - 12:15 PM

You can also generate texture coords based on the normals major axis.

Flat ground means normals Y is the major axis, textureCoord =   (vertex.x*tileScale, vertex.y*tileScale);

If X is the major axis, textureCoord = (vertex.y*tileScale, vertex.z*tileScale);

It makes texture coords on 3 axis instead of just top down y. You can then decide if the normals x or z is greatest to sample the rock texture.

Realistically though, just make rocks separate geometry, a lot of games do it. You can really notice it in something like Halo3 for reference.



#5 toraxxx   Members   -  Reputation: 158

Like
2Likes
Like

Posted 19 May 2013 - 05:45 PM

Maybe the map specifications (RE'd) can help you find out how they did it (http://www.wc3c.net/tools/specs/index.html). The section about the terrain is at 4) "war3map.w3e" The environment


Edited by toraxxx, 19 May 2013 - 05:48 PM.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS