Jump to content

LOD system questions


Rick
 Share

Recommended Posts

Here is a thought. When I first learned about tessellation I had an idea on how to create a tree from just a few planes. I have not had much time to try some of my new ideas. My idea involved what is called a two sided plane. A two sided plane is just two planes facing back to back almost in the same x,y,z. Just a tiny bit offset on one axis. So what if we use a cube with the normals on the outside. Then make a cube a little bit smaller and have the normals face the inside. Then you could tessellate the outside and inside when needed. The base mesh for each house or building would have eleven faces. I know your saying two cubes would be twelve faces. But you would not need the bottom face for the outside cube. I suppose if you would want to populate your game with a bunch of houses, buildings,trees, ect.. you still may want to use a billboard to help with the long camera shots.

 

@Rick The concepts are the same. We can only render a certain amount of triangles. With both techniques all you are trying to do is render the most amount of triangles closest to the camera. To decrease and increase a models poly count with tessellation is LEVEL OF DETAIL.

Link to comment
Share on other sites

To decrease and increase a models poly count with tessellation is LEVEL OF DETAIL.

 

There is different kinds of detail though. There is how many polys on a model (which tessellation handles very well), then there are completely different models needed (like in the house example). Your suggestion seems to use a combination of traditional LODish (1 model for house outside and 1 for the inside only showing the inside when the camera is close) and tesselation (on the house outside). I think the suggestion is worth checking out, but this idea related to the house is more than to increase/decrease poly count. It's to show an entirely different model or not given camera distance as well as increase/decrease the outside model.

Link to comment
Share on other sites

[/font][/color]

 

There is different kinds of detail though. There is how many polys on a model (which tessellation handles very well), then there are completely different models needed (like in the house example). Your suggestion seems to use a combination of traditional LODish (1 model for house outside and 1 for the inside only showing the inside when the camera is close) and tesselation (on the house outside). I think the suggestion is worth checking out, but this idea related to the house is more than to increase/decrease poly count. It's to show an entirely different model or not given camera distance as well as increase/decrease the outside model.

 

 

Yes but think about it like this. My two cubes (inside/outside) both collectively have 22 triangles. Each cube has one set of textures. If you add up the triangles for three maybe four LOD and each LOD has their own texture. The LOD memory footprint will be much larger.

Link to comment
Share on other sites

Could you really have 1 cube for inside the house? I mean we are talking the inside of a house here. Can tessellation really make all the different kinds of rooms needed in a house from 1 cube and a texture map? I'm guessing no on that so the inside cube would be your normal model of the inside of a house which would be way more than 22 triangles. So now we are talking savings on the outside of the house only, which true there is savings on that part, I agree.

 

How are physics handled with tessellated objects?

Link to comment
Share on other sites

Why not? The interior walls can be created from the bottom plane of the inside cube. Also you could have the tile textures or carpet or hardwood floors. The left and right inside cube planes could make the inside section of the walls, windows, and doors. And even cracks in the paint. Same for the front and back planes. If you want to do multiple floors you could place a two sided plane at each floor level. One side will be the ceiling and the other interior walls for the second floor. You would not be able to create the furniture and other items.

Link to comment
Share on other sites

The left and right inside cube planes could make the inside section of the walls, windows, and doors.

 

You seem to be talking about multiple cubes then? I mean you'd have the kitchen, living room, bedrooms, bathrooms, etc all in different configurations to make the house unique. This seems to be a pretty extreme view of tessellation usage. Sounds sort of like the round peg in square hole sort of thing. I just don't think this is what it excels at. I get the idea and excitement but I'd be shocked to see anything like this made from tessellation.

Link to comment
Share on other sites

No just one cube. All of the solid interior walls on the first floor can be created from the bottom plane. Any doorway would need a two sided plane. The side planes can make up the inside of the outside walls. Along with the widows, doors, paintings.... And the top plane is the ceiling. Each bedroom would have one door and one closet door. So each bedroom add 8 triangles. Then a entry for kitchen, living room, laundry. 4 triangle each. Say a closet at the main door so you can hang your coat up. And maybe a pantry in the kitchen. Another 8 triangle. Two bath. 8 triangle. So a four bed room one story house could have as little as 82 triangles for a base (primitive) mesh. 72 for inside and 10 for out side.

 

Maybe you did talk me into a combination of using both LOD. However, once the geometry shader gets going. You will not need to load the interior on the memory. Just create a primitive interior. Tessellate and boom.

 

Edit: No your right. One cube plus 30 planes.

Link to comment
Share on other sites

Looking forward to seeing your one cube game

 

..that would be interesting indeed smile.png .. on side note, while does look attractive, tessellation is not a 'silver bullet' of optimization..if we are talking about triangles manipulation, what tessellation is basically about, modern hardware already have large enough vertex buffers, that properly modelled and very good looking characters can be loaded and utilized without any LOD basically, so there is no real benefit of using tessellation at all on modern hardware, except potential issues , as The Witcher 3 team clearly said and ditched tessellation out exactly because of mentioned problems. Its just not really needed on new hardware and causing more issues than its worth. In case you want your game to be backward compatible and playable, then thats a ultimate reason why would you forget about tessellation at all..it will kill frame rate in a heartbeat, if you somehow, manage to get it work on wide variety of hardware setups..so, my personal conclusion is..its cool option to have, but getting rather useless with massive vertex buffers modern hardware is equipped with..

 

Exactly same reasons why The Witcher3 team, kicked tessellation out of scope..

http://www.examiner.com/article/the-witcher-3-developer-explains-lack-of-tessellation-on-pc-ps4-and-xbox-one

 

Link to comment
Share on other sites

Just about the only place I see tessellation having a place is as an "Improved bumpmap" - because it overcomes the traditional problem of bump/normal maping, namely that the edges of an object remains unchanged

 

model_comparision.jpg

 

This allows for a much faster ( or lazier if you will ) art pipe line, eg for making a castle;

  1. create a high poly model either by building it from individual stones or by sculpting a base mesh to look like it's been made out of individual stones
     
  2. re-topo the entire mesh into a lower poly model
     
  3. repeat step 2 for each LOD level
     
  4. unwrap and bake normal maps

 

 

vs

 

  1. create a low poly base castle mesh as you would for sculpting
     
  2. unwrap
     
  3. put on your standard stone wall texture + displacement map

 

The real nice part ( and what always has me day dreaming ) how ever is it's potential for creating static models ( buildings, etc ) on the fly procedurally using just basic geometric shapes... jum!

 

For cases such as this it's perfectly adequate for "LOD", but due to it's linear nature it wont really work well with more complex or organic shapes - I ( or an artist ) can suggest a shape or form with far fewer polygons than you can with automatic tessellation, this is simply because it wont know what to focus on to get a recognizable silhouette1.

 

 

1) there are ways to improve it, for instance DMC uses quadratic error functions to isolate sharp features in complex meshes, this is how ever still not anywhere near real time. And of course not all sharp features are helpful in creating a recognizable silhouette.

 

 

((why doesn't the bullet list have indentation - makes i very hard to read :( ))

System:

Linux Mint 17 ( = Ubuntu 14.04 with cinnamon desktop ) Ubuntu 14.04, AMD HD 6850, i5 2500k

Link to comment
Share on other sites

 

 

 

 

For cases such as this it's perfectly adequate for "LOD", but due to it's linear nature it wont really work well with more complex or organic shapes - I ( or an artist ) can suggest a shape or form with far fewer polygons than you can with automatic tessellation, this is simply because it wont know what to focus on to get a recognizable silhouette1.

 

 

Sorry this is wrong. You the artist defines exactly where the newly generated vertice go with a displacement map. You the artist (and me) model a high poly model. We then make all of our textures for said high poly model. You then create a low poly model. One that would be equal in poly count as a low poly LOD (or lower). You then (in a modeling program) bake all of you textures from high poly to low poly.

 

Now you can tessellate your model to what would be equal to your medium LOD. Or if the camera gets closer you could tessellate to what would be equal to a high poly LOD. All from one model. Which can clear up a lot of memory space so you (and me) the artist can create more uncommon models. Instead of every time you go around a corner you see the same pop can or the same character over and over again.

Link to comment
Share on other sites

Sorry this is wrong.

 

hummm... hummm... anyone can do the way he wants no ? why your method should be the best ?

 

 

@tournament :

Well , make a demonstration, a little demo with a character in Leadwerks 3.

Show us how it is ? easy or not ? will you really make good LOD for character ?

I just think it's impossible to have good result you expect using tesselation.

 

Enought talk,if you think you are right , and have the solution, be concrete now, you have tesselation with LE3 , so just bring us a demo.

  • Upvote 1

Stop toying and make games

Link to comment
Share on other sites

@YouGroove

 

As i said before, tessellation is nice thing but doesn't really feel necessary for characters if your game running on latest hardware, as characters could look already very very good, without any dynamic altering such as tessellation. On other side, if you aiming older hardware, you may enter serious trouble by using hw tessellation as from the GPU manufacturers standpoint, for mentioned hardware, such feature is not uniform and chances are that your game will not work at all on some configurations. I don't see any reason to prove anything as people in industry already have had first touch and feeling with given option (tessellation), and it appear to be unnecessary (The Witcher 3 team)..anyway, this discussion seems to fade away from original thread topic, in to endless talk, and thats not good for any of us, so maybe is time to put a 'dot' on to this one :)

 

Link to comment
Share on other sites

hummm... hummm... anyone can do the way he wants no ? why your method should be the best ?

 

 

@tournament :

Well , make a demonstration, a little demo with a character in Leadwerks 3.

Show us how it is ? easy or not ? will you really make good LOD for character ?

I just think it's impossible to have good result you expect using tesselation.

 

Enought talk,if you think you are right , and have the solution, be concrete now, you have tesselation with LE3 , so just bring us a demo.

 

I gladly will when I get a chance. As I said before I am extremely busy right now. I am glad to say that things have been set in motion for me to reach my goals in video game land. I just need to get my development computers put back together and this darn house remodeled. As you can see my office/mini studio is getting close.

post-570-0-75786600-1392431310_thumb.jpg

 

@Naughty Alien

 

As i said before, tessellation is nice thing but doesn't really feel necessary for characters if your game running on latest hardware, as characters could look already very very good, without any dynamic altering such as tessellation.

 

You keep only thinking about tessellation on the extreme high poly count end. The poly count that we have right now in a "high poly LOD" is good enough. WE DO NOT NEED TO GO IN HIGHER DETAIL THAN A HIGH POLY LOD CHARACTER. We can however have a lot more characters in game if we use tessellation as a LEVEL OF DETAIL poly count management. Instead of cluttering up our memory with a **** load of LOD and extra textures.

 

You said.

tessellation is nice thing but doesn't really feel necessary for characters if your game running on latest hardware

 

Tessellation only works efficiently on the latest hardware.(opengl4 dx11) 1.6 billion triangles a second is good enough performance. Wouldn't you say? So if you want to reach more customers (older hardware) you will have to use the low end renderer. Which obviously tessellation will not work. In order to hit all hardware markets. You will have to use different techniques and or technology. Which brings me back to my first post in this thread.

 

Do you want to use lod for the fall back renderer or opengl4 ?

Link to comment
Share on other sites

Could you really have 1 cube for inside the house? I mean we are talking the inside of a house here. Can tessellation really make all the different kinds of rooms needed in a house from 1 cube and a texture map?

 

Take a look at this picture. Displacement map on the left, and a tessellated mesh with the displacement map applied on the right.

 

post-570-0-10257200-1392438403.png

 

The displacement map could be altered to make the reliefs higher in the mesh. Which could easily be used for solid indoor walls.(or a cool maze) You would still need to use the two sided face technique for the indoor doorways. The rest of the indoor outside walls,windows,doors can be created from the side faces of the before mentioned cube.

 

Here is the link to the two sided technique I mentioned.

http://www.katsbits.com/tutorials/blender/double-sided-faces-different-materials.php

Link to comment
Share on other sites

I gladly will when I get a chance. As I said before I am extremely busy right now. I am glad to say that things have been set in motion for me to reach my goals in video game land. I just need to get my development computers put back together and this darn house remodeled. As you can see my office/mini studio is getting close.

 

You have the chance to a three multiple monitors and cool place.

 

But stop hiding behind text and theory , all time you spend on writing all that long stuff on tesselation , you should spend it making the demo. Some of us are borred about long theory and text.

We want concrete smile.png

 

1CU2Q27HD3RP3_136NP6C_IL_P_LS.jpg

 

Stop talking theory, bring us a real example of character tesselation LOD.

 

It's like saying : Hey , surfing on water is cool, you can do that and that, you have all that great sensations etc ... without never have tried it by yourself

without knowing what it is really IN PRACTICE AND REAL CASE.

Stop toying and make games

Link to comment
Share on other sites

Hard to believe tesselation and characters.

So here it is two models for you ready to use, you have just to make tesselation maps and import models in LE3 , and apply the tesselation shader.

 

Show us the real magic and real practical example.

 

--------------------------------------------

 

Lightening :

 

 

Just to show you why i think Tesselation is useless, the model without any norml map is already very well rounded, why tesselation ?

lightening.jpg

 

----------------------------

 

Konnor :

 

Another example: what to do with tesselation , why more GPU and rendering polygons when it's so smooth and rounded ?

konnor.jpg

 

 

You see i'm practical, i just pick up good characters, tested them and zipped them instead of beeing theorical, now it's tour turn to stop talking and be concrete.

 

Curious to see HOW BAD they will look using tesselation and HOW LOW FRAME RATE will be using tesselation instead of Mid/High Res optimized characters

Stop toying and make games

Link to comment
Share on other sites

@tournametdan if I understand what you are saying, instead of starting off with a regular model with all the details already present then subtracting polygons to create the lower poly lod versions, Create an almost featureless model such as (since I had to scroll past it) a Lightning model where you don't model the clothes and the hair resulting in a low poly model then selectively tessellate the features back into the mesh resulting into a normal poly mesh.

 

This would be a very interesting concept to put into practice, but I have a feeling that even if we could use the same shader to generate the tessellation, we would need to do substantial work making the displacement map. This seems to me a demoscene level of dedication to creating the smallest most effectient way to model, store and render an object

 

I'm just a noob at actual opengl coding, I've created obj model viewers and such from scratch but shaders are beyond my comprehension atm. Let me know if I'm talking out my *** or if I just need to be corrected on certain points.

Link to comment
Share on other sites

..tessellation is no magic and rather simple process, yet it can be time GPU time consuming..there is no doubt that it can be used, but fundamental question is, do you really need it when modern hardware can crunch triangles necessary for good looking model with ease..it is truth that in such scenario, use of tessellation would be downsampling, in order to get less triangles to render..however, having in mind that modern hardware have huge vertex buffers, capable to store enormous amount of vertices, so, tessellation is really not a necessary option to have really even if you want to downsample your character mesh..point is, if you have not so many characters on scene, and using modern hardware, you really dont need any tessellation as LOD on mentioned characters..if you have plenty of characters (eg. 100), in order to keep your performance up, you will most probably rely on instancing in order to populate such amount of characters(same skeletal/mesh with different textures), rather than have tessellation over every single character..other people in some AAA ranked studios, realized that and I dont understand whats the problem here..i see tessellation well used over static geometry, but not at all on animated characters (if we talking modern hardware)..

 

If game need to be executed on modern and not so modern hardware, and far as im, as a developer concerned, I want that,,in that case, use of tessellation is no go for both, characters as well as geometry, because chances are, it will not work on plenty configurations or it will be very slow..all in all..its nice and not worth trouble you may get yourself involved..simple as it is..

  • Upvote 1

 

Link to comment
Share on other sites

@NA Wouldn't this almost be just as much about memory usage as it is speed? Not having to load 3 models of everything does save your on memory.

 

@tournamentdan Nice on the walls idea. It then would come down to getting the interior mapped out to the exterior to match up and look good and being able to populate the house correctly in editor, and physics.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...