Collada Importer

Published November 26, 2009
Advertisement
Angrypig managed to get Collada importer into beta stage, so here are some first screens with new Cessna model and Gaz 66 truck. Too bad neither AO nor shadows are ready yet, the screens would be much nicer with it.


Cessna cockpit has quite a high resolution; the indicators should become alive soon.


Views from the outside. Propeller is already turning, but there's no motion blur on it yet. Transparency works too but there's a bug in the model. The windows ask for bit of dirt here and there, too.








Approximately 3,900 feet above the ground.








Mount Etna in the background.


Gaz 66 truck ..


.. and a fleet of them.
0 likes 4 comments

Comments

LachlanL
Looking pretty impressive! There's some obvious tiling on the grass texture, but that disappears at a distance. Maybe a detail texture would help?
November 26, 2009 04:07 PM
cameni
Quote:Original post by LachlanL
Looking pretty impressive! There's some obvious tiling on the grass texture, but that disappears at a distance. Maybe a detail texture would help?

Thanks. Yes the tiling is quite visible there, but I plan to employ several tricks to break it. First thing would be replacing the programmer's art texture with some from an artist.
There's already one thing used that slightly helps - tile texture coordinates are displaced using fractal channels, otherwise the tiling would be straight (the rows you can see there are actually repeats of the detail texture). Final material mixer will also use more detail textures to mix with, also the hue will be slightly altered using another fractal channel, etc.
I hope the huge terrain will be rendered with unique non-repeating look at each LOD scale, eventually.
November 27, 2009 12:23 AM
Ysaneya
The trees really "make" it. Are they rotating billboards (fixed around the vertical axis) ? Cross-quads ? How many triangles per tree ? How many trees in a view like this ?

I've tried to spawn a high amount of trees over the procedural landscape in my engine, but each tree required a call to the procedural getHeight() function, which itself is a combination of up to 30 octaves of perlin noise. Needless to say, I had some serious performance problems and had to keep the density of trees relatively low. In the future I'll probably try to spawn them directly on the surface mesh, by interpolating vertex positions, but I'm afraid of the LOD transitions (when a terrain chunk gets split, the tree won't be at the right position anymore).

Y.
November 27, 2009 03:43 AM
cameni
Quote:Original post by Ysaneya
The trees really "make" it. Are they rotating billboards (fixed around the vertical axis) ? Cross-quads ? How many triangles per tree ? How many trees in a view like this ?

These are rotated billboards, originally quads, now generated as two triangles through a geometry shader. I guess there are some 200,000 of them rendered in there, maybe more - maximum density is ~44,000 trees per square km. Performance depends on the actual density of the trees on the visible tiles - for the areas that are almost completely covered by trees that that would make 400-500 thousand trees rendered.

Geometry shader helped tremendously to reduce the memory needed for tree info layer (now single vertex per tree), and by not generating the geometry for places with no trees the performance is much better too.

As for the placing the trees - I'm creating the tree info layer upon reaching specific quad-tree level (~1200m wide tiles). As the engine generates 256x256 heightfield for the tile already, this is then also fed to the shader that uses it to compute probability of tree occurrence at each point and generates the tree info layer. This contains things like the elevation and the probability itself (used to make trees smaller at forest borders) and some random value used to mod the tree height etc.
Trees are then rendered by the geometry shader emitting the bilboard quads.

Not sure if something like this could be used in your engine, though, you'd probably have mentioned it.
November 27, 2009 05:51 AM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement