i have some difficulty to figure out how to texture a runway and taxiways
my main problem is the uvmap
1- for the runway :
since it is a looooong plane i don’t know how to uvmap it correctely without loosing image resolution
especially adding numbers to the runway surface
2 - same thing for the taxiway :
how to add long yellow lines and other decals textures
3 - as an option if i have time i want to add also some texture splatting to get some transition from dirt to grass … etc
but in the meaning time my concern is how to add decals to surfaces and position thems correctely, I want to use blender as modeler with realtime 3d engine (openscenegraph.org), I’m not using the BGE at all.
You unwrap your whole runway as one and use a repeatable texture for a road. Like this:
You unwrap it proportionally and then scale the whole UV layout, so the width fits, let the length just reach out of the image. If the UV mapping is set to repeatable, the width will just match fine, and over the length the texture will repeat.
For the numbers on the runway surface you create seperate polygons and map the numbers on them and place the polygons. So called decals.
you can either make a seperate texture for the transition, unwrap it and paint it using the two textures as brushes and blend them into each other simply with blenders texture blend, or you use a stencil texture, like a mask. You crate one big texture with grass. Create another big texture with dirt and now you create a third texture, a grayscale map, which tells blender where to mix the images together how much. Some game engines support something similar, else you got to bake the result down in a texture map.
Some of my suggestions would be:
uv texture will repeat so layout your runways to tile the asphalt texture. For number decals you may want to think about using actual planar models of the numbers positioned just above the runway plane, no one will get down low enough to see the elevation difference. Of course there is all kinds of stuff you can do with shaders.
actually i made the same things that you have mentiened
for the road plane i have uvunwraped it and then scale the uvmap along the y axis
to get repeatable texture
for numbers i have added a separate plane just above the runway plane
this worked but this solution gave me another problem
i have some ugly flickerring at runtime
the best solution i think is to uvunwrap the road and the textures as a single image but i don’t know why how to achieve this
one idea that comes to my mind
is to split the long runway plane along the plane length
and make a seam on each section
but after how to arrange each section in the UVimageeditor to get a compact square uvlayout ?
another thing i want to add to the runway plane is some squad marks like this
the other problem is to make taxiway lines a t a good resolution
some one suggested me to make my uvmap , export it to gimp or inkscape and draw the lines and other decals there
but how to get a good texture resolution with tis approch ?
again … any help is welcome
ps : sorry for the long forum section,
can a moderator move this topic to the right one ?
Maybe its my lack of vocabulary, or it´s because I am no aeronautic fan… what´s a taxiway?
The ugly flickering is z-fighting. you got to offset the decals further, and be sure they are above ground, not at the same place.
depending on the engines z-resolution often only a minimal offset´s enough, sometimes it requires a bit more. Some engines also allow to render the decal into the existing texture AFAIK.
It´s hard to give good advice without knowing your engine - well I know what you use, but I don´t know the engine… you might ask in their forum
The blend contains the brushes I used for texture painting, a few grasses and an tarmac closeup.
The whole secene has 3 textures, 1024x1024.
Further stuff, like the darker spots in the middle where the planewheels loose rubber I´d decal with a quad, same for numbers and stuff like that.
In the example you posted you can see, that the curvature is made out of geometry, as the curve is jaggy. They most likely just used 1 gray texture with a white line on one side and mapped it perfectly.
Uh that’s kind of tough. It requires intermediate unwrapping and quite some planning ahead with the textures. It’s nothing you learn by a tutorial, you got to hone the art.
GLSL is just for viewport so the textures look “nice” there is no use of shaders from my side, i just turned down the gloss of the materials.
Basically it is geometry with an UV mapping and the textures. No shaders at all. IF openscenegraph supports normalmaps that might be a big improvement. There is an addon around though that allows you to export the shaders blender creates if you play with the materials. Just search with google or the forum. I´ve never used it though.
I’ve looked at your file and the image above. You’re running into two major problems.
First the tiling. What looks good in a MMO, RPG or any other game where you’re close to the ground, kills the visuals in a flight simulator/areonautics game.
If you’re close to the ground, taking off or landing it looks nice, if you’re up in the air it looks fugly. The tiling on the hangars is really bad.
The way to solve this are adaptive LOD texures. (=Level Of Detail)
Imagine you’re 10 feet above the ground, easy enough, you use tiling textures, no one can spot the repeating.
Now if you’re 1000 feet above ground, everyone sees the tiling. Obviously unless you use ID softwares Tech5 engine (RAGE, DOOM4) you’re unable to use 20.000px square textures to paint all the detail.
However, 1000 feet above ground, what is 100x100px at 10 feet, is 1px from up there.
So you create a second texture for the various heights.
It is simple enough, let´s say the airport spans 1km by 1km.
at “ground level” you use tiling, good enough.
at 100 feet, the 1km/1km from sattelite view would span over lets say 16k pixel square.
So you bake your tiling into 16 times 4k pixel textures. Then you paint the seams and tiling out of them.
At 500 feet, you use 8 times 2k pixel textures. and so on.
You just have to find the point in the engine and game, where you start replacing the tiling uv textures, by bigger texture maps.
You´ll have a point, where the tiling is noticable, and at that point you got to start replacing the tiles with area-wide texture maps, reducing the size by the amount of texture maps visible.
The second problem are your decals. With that complexity I seriously doubt it is possible to do with tiling.
You either have to do “floating geometry” for those lines, placing faces as decals on top of your landscape mesh, or, cut them as geometry into the landscape mesh, map the “concrete-part” repeatable to use tiles, and map the lines seperately.
In any case, though the project seems trivial, it has quite some complexity to it and there’s no real easy way to do this and it requires intense planning ahead on how it will be integrated into the engine.
are you using the pyosg wrapper for openscenegraph
or the coding with c?
And do you use vrml-exported-graphics?
Next, the size of the texture-tiles is “game-specific”.
Your first screenshot and later google-pic are not the same style.
The first screenshot looks a lot like the “white stripes” are modeled
and set for a white material - in blender this would be like creating in
one plane the faces for the grass, the faces for the runway, the faces(like small lines) for the runway-lines and use small tileable textures for all colouring.
For the tiling problem i will study your suggestion but in meanwhile i want to avoid it with some (splatting/stencil map) and adding some other objects on the ground like trees, grass … etc
For lines and other decals if i understand correctly i have two options :
Use a separate textured geometry just above the ground but with the risk of the z-fighting
Subdivide the ground and uv-unwrap each part with a separate texture wich produce a better result
Another method i tried before :
is to use a bezier curve to make these lines, but i found this technique not very flexible and very time consuming because the difficulty of using the bezier curve (in my case of course :))
i know i cannot get a good result just by reading a tutorial, and i am aware that good results need lot of practise , i need only to know what to practise, a general guidance to achieve my goal,
just t tell you, i read and watch a tons of tutorials about uvmapping but none of them has meets to my needs
ah something that come in my mind now !!
is it possible to use several uvmap on a single surface ? :
let’s say that i have the very bottom uvmap that use the goudron texture :
over it an uvmap that draw the yellow textures with an alpha map
and over all it another uvmap for the decal numbers and other descriptions
I don´t know how the hawkx engine work or what they use, but it has to be tailored of the use.
When you watch the descent for landing you see, well better you don´t see any texture switching.
My guess is that everything is textured with lots of small high quality texture maps, and the engine decides when the distance is too high to spot smaller details and renders multiple textures into once and uses it. Something like realtime-texture backing.
But I have no idea how they actually do it. But they have a LOD system for geometry for sure, and I guess with this one they also switch the texture LOD.
I´d texture it with tiles, bake this texture into smaller texture maps, and go from there painting them with all the detail you need.
As for the LOD system you have to decide what to use and when, or see what the specifications of Openscenegraph are. I have no idea how the engine works.
I can’t really help you further as I am not familiar with openscenegraph and its capabilities and to be blunt, it’s not my job to read into it for you.
Decals have to work 100%. They are just more geometry with a texture. If they don´t show in OSC there are 3 possible situations:
You did not uv-unwrap the quad holding the decal.
You did not offset the decal enough and OSC thinks of it in or below your landscape mesh
The normals are facing downwards and OSC displays only singlesided.
If OSC supports mesh and texture LOD you don´t need decals anyways.
You tile your landscape in let’s say 3232 textures with 40964096.
This is LOD-0. When near the ground.
For LOD-1 you take 22 of those textures and bake them into one 4096² texture.
For LOD-2 you take 22 of LOD-1 and bake them into a 4096² texture.
and so on…
Texture baking… not backing. Use the forum search or google on how to do it in Blender. Think of it like taking a photograph of a jigsaw puzzle. The jigsaw tiles are the various single UV textures (the 22) and the photo is the next LOD, one smaller texture containing the 22. You can also simply stitch them in GIMP and scale it down. Doesnt matter.
As for high detail ground, many commercial grapic engines use a layer system with blend/stencil maps.
You put a tiling soil texture over the whole landscape, on the next layer you put grass, tiling again, on the next layer you put flowers, on the next layer stones.
And then you draw blend/stencil maps, often low resolution, so simply create your landscape.
Many commercial engines come with world editors, there you just paint the textures like you would with a brush, but what happens behind the scene within the engine is much more complex.