terrain techniques

The place for artists, modellers, level designers et al to discuss their approaches for creating content for OGRE.
Post Reply
kneeride
Bugbear
Posts: 807
Joined: Sun May 14, 2006 2:24 pm
Location: Melbourne, Australia

terrain techniques

Post by kneeride »

g'day, just after some advice on terrain modelling.

i wish to create a cartoon style world. eg spyro dragon. ie simple buildings, rolling open terrain, bright colours, comic sky (ie flat blue + puffy clouds)

should i build terrain with blender3d, or are there more suited terrain editors (maybe specific to ogre)

or since im going to use blender for the characters + animation, use blender anyway so that i am using 1 tool (instead of many)

i think (until persuaded) that i will manually build the terrain (instead of using height maps)

also, a question on texture mapping. i notice that if you tile textures evenly over a grid (x and y plane), and then use a height map to offset the z coords, the textures become stretched if the ground moves towards verticle (ie the square face becomes longer).

any solutions on how to get around this? ie are there any good texture tools/techniques that avoid texture stretching? **i guess mapping a square to a sphere raises similar issues.

thanks.
User avatar
Kencho
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 4011
Joined: Fri Sep 19, 2003 6:28 pm
Location: Burgos, Spain
x 2
Contact:

Post by Kencho »

Well, you must think that in that case the quads length is not uniform, so some kind of distortion will always happen. It's not avoidable (at least in a rather easy way) in my opinion.
Anyways, for a cartoon-ish world you don't need that kind of accuracy, so it won't be much problem :)
If you're going to use a modelling tool (Blender), you probably can use some texturing tools (LSCM unwrap maybe?) to minimize the distortions :)
Image
kneeride
Bugbear
Posts: 807
Joined: Sun May 14, 2006 2:24 pm
Location: Melbourne, Australia

Post by kneeride »

if the terrain if fairly flat, then it looks ok.

however when the terrain has some peaks where z offset is large (eg steep hills), and model has a grainy grass texture, then the texture becomes stretched. in my opinion it does not look good.

and in the cartoon example, i believe texturing is important, because the aim is to look simple without anything harsh on the eyes.

say you have a mountain, i guess you would want to then texture on a different plane (eg the x/z plane), to avoid the stretch from the x/y plane. (well that's how you would texture a wall). but this is more tricky when the wall and the floor are the same face and require a smooth texture transition.
vega
Halfling
Posts: 47
Joined: Sat Apr 02, 2005 11:19 am
Location: Germany
Contact:

Post by vega »

if your create the terrainmesh yourself you sould be able to avoid the texture stretching.

change the U/V ccords to:
(using the tangents)

U = sqrt(x^2 + z^2 )
V = sqrt(y^2 + z^2 )

this should solve the stretch problem

-never did this - so its just a bit more than a guess :)
User avatar
BlasterN
Gnome
Posts: 378
Joined: Thu Mar 24, 2005 1:07 am
Location: Spain
Contact:

Post by BlasterN »

If you are going to make a little maps, model it with Blender.
But if you are planning to have big maps, you will have problems with high poly - culling, so use a specific scenemanager like PLSM2 (but maybe it's too much powerfull for you)

About Heightmaps, I see Blender plugins that use it to build a "standard" geometry so I recommend it, you will save time.

gl!
Works:
MapToMesh | Bengine B9 @ www.sourceforge.net/projects/maptoogremesh/
3DWorldStudio exporter@ www.blastern.info
User avatar
Kojack
OGRE Moderator
OGRE Moderator
Posts: 7157
Joined: Sun Jan 25, 2004 7:35 am
Location: Brisbane, Australia
x 538

Post by Kojack »

Changing the uv coords of a quad to stop stretching is fine, but only for that one quad. In an area with one material, bumps in the ground will cause some rows/columns to become out of sync (texture tiling wise) with the surrounding terrain.

There's 3 ways I can think of to get around that.
- Blend between textures at each vertex, even if the textures are the same. So each stretched quad blends with the non stretched quads on either side. But that could look strange, blending the same grass texture at different uv offsets several times could cause artifacts.

- Procedural texturing using uvw coords.

- Non linear uv coords calculated in the pixel shader. Maybe an s-curve or something. So if a quad was stretched to 1.5 times it's normal size, you'd use a uv curve so most of the texture was tiled 1.5 times, but have a buffer zone at either side where it returned to regular tiled offsets. So in this case the texture would really tile 2 times over the quad, but most of the middle of the quad is at 1.5 times tiling.

Then again, depending on how you triangulate the terrain, things might become difficult (like having one triangle in the quad stretched and one normal size).
Post Reply