Hot answers tagged level-of-detail
10
ROAM stands for "Real-time Optimally Adapting Meshes." It is a level of detail algorithm for rendering large terrains. It's somewhat complicated so I'll link to some more in depth explanations:
Here is the paper: https://graphics.llnl.gov/ROAM/roam.pdf
The following is a slightly less academic explanation: ...
8
I use a template model. Every object in my game has a template ID, which is an integer. You can use the template ID to look up from a database or spreadsheet (or whatever you'd like), all the information about that kind of object. For example
Template ID Name Render Mesh Physics Mesh
1 Pine Tree Pine_Tree.nif ...
7
1 : I can't understand at which point down the Chunked LOD pipeline that the mesh gets split into chunks. Is this during the initial mesh generation, or is there a separate algorithm which does this.
It does not matter. For example, you can integrate the chunking into your mesh generation algorithm. You can even do this dynamically, so that lower levels are ...
6
Creating chunks are really a good idea but you need to use it wisely. there are many big titles that use the same idea to give the illusion of very large world. for example you I can mention Spore or Oblivion.
First let's talk about spore since in it's galactic phase you can easily see how the things work:
there are many planets in the galaxy but not all ...
6
The probably best reference to rendering grass: Boulanger.
Also, since geometry shader was mentioned: this techdemo has slightly inferior quality compared to K. Boulanger's technique, but it is stunning in another way since it draws crazy amounts of grass blades and does the culling via the geometry shader and transform feedback, which is a pretty cool ...
6
For now it seems that discrete LOD is still preferred, but it remains to be seen if this will change with the next generation of console hardware.
For what it's worth Tom Forsyth has written a lot about continuous LOD, which he calls "progressive meshing". Game Programming Gems 2 purports to have one of these articles, but it appears to be mirrored here.
...
4
You might find http://software.intel.com/en-us/articles/dynamic-resolution-rendering-article/ interesting.
Off the top of my head, there's a couple of things that will make automatically scaling somewhat complicated though:
Measuring FPS isn't enough. At the very least you need to know if the bottleneck is the CPU or the GPU so you can make a good choice ...
4
Supreme Commander (1&2) - this RTS prides itself in the fact that you can smoothly zoom out all the way to see a map of the battlefield, and then zoom all the way in on an area and manage it. It uses LOD very well as you zoom in and out to keep from overloading the graphics card, and at a certain zoom out level the meshes are replaced by 2D images of ...
4
I'm not sure what is considered the best approach, but one option would be to use instanced geometry - you provide the GPU with a 3d model and a list of places/orientations where you'd like it drawn (preferable in the form of a concatenated matrix), and the GPU will handle the rest via a custom vertex shader.
Basically, you create two vertex buffers: one ...
3
LOD is about trying to keep the amount of processing constant over time. Hierarchical level of detail is the only way of doing this for scenes of considerable detail. If you are near enough to an object, it decomposes into multiple objects. This recursive LOD provides not only a simple mechanism for handling the transition points for switching in new levels ...
3
One modern approach to continuous LOD is hardware tessellation. Hardware tessellation was implemented in DirectX 11 and essentially provides programmable subdivision of surfaces. Because this is implemented on the GPU, it allows for much higher detail than provided by CPU-generated tessellation. By subdividing surfaces based on the view distance, for ...
2
Here is an alternative suggestion, just to keep it interesting. Convex decomposition can create approximate geometries quite quickly, and is usually for collision meshes. These meshes work well as LOD and it is plausible as a real time decimation for speeding up a pipeline.
http://codesuppository.blogspot.com/2009/11/convex-decomposition-library-now.html
2
I believe the process you're talking about is something like a fractal landscape. Fractals allow infinite zoom. Perlin noise, without modification, is not appropriate for a fractal. You also typically want some minimum level of detail when dealing with landscape. Natural landscape doesn't really follow a fractal because the large scale landscape shape is ...
2
It's not easy to debug recursive structures, particularly when you're relying on a potentially bugged renderer to inform you. So the question is, Is this a bug in your rendering code, or somewhere else?
Suggestions:
Ensure that when a larger, parent quad subdivides, you stop rendering it. In other words, render only what are considered to be its leaves. ...
1
i would consider looking into GIS based methods firstly although i do not know exactly how this would relate within a game.
http://gis.stackexchange.com/
if i were to write from scratch for simplicity purposes however, i would scale the 2d positional Vector and group the value by those scaling within a given range i.e if you had a 1000 pixel map condensed ...
1
I fixed the problem...
Here is the revised code for the method "create()" if anyone is interested, Thanks for the time:
public static void create(Quad quad, int i, int ii){
quad.children = true;
i*=2;
ii*=2;
Vector3f parent = new Vector3f(i*quad.width/2, 0, ii*quad.width/2);
System.out.println(parent + " "+ toString(quad));
if(quads ...
1
One issue you'll run into is that the mesh is camera-relative, so you'll get a "swimming" effect as you move and pan the camera around, as the topology of the mesh sweeps over the underlying heightfield data. This can be a distracting visual artifact. However if you can minimize that, it could be a good approach. It's reminiscent of what CryEngine 2 did ...
1
i would LOVE to suggest pure geometry shader based solution, but you dont know even basic vertex-fragment shaders. So no, let's stay on the ground:). I will only guide to this site:
Loopix project
It is great place where to grab simple vegetation models. They are very lowpoly and always only one textured, with very smart texture repeating.
Use instanced ...
Only top voted, non community-wiki answers of a minimum length are eligible
