An alternative to Polygon's and Vertices?

Post » Tue May 08, 2012 8:21 pm

As many are well aware of, I am a modeler, I do some stuff from now and then, though none has been released as of yet. Now, the point of this thread is regarding the issue of having limited Models in one scene [which inevitably causes lag]; A scene which would cause more lag not just dependent of on the model count within it, but also dependent on the polygons and vertices of each model and their detail.

Now, this is a rather simple understanding, However, I've tried to delve into the understanding of why this is, but I haven't come to a reasonable conclusion. So I;d like to first ask a few questions.

1 - Why is it the more detailed an object is, the more data and memory it takes to read it?
2 - What affects what more and in what manner?; is it the memory-size of an object that causes the lag or is it the amount of objects in total that causes the lag and what affects the other first?
3 - Is there an alternative to Polygons and Vertices?
4 - If their isn't an alternative, is it possible to create a new form of modelling or said alternative, in which the object can be infinitely more detailed with no memory-size difference and there can be an hundreds of times more of these objects in one scene with no Memory-size difference and lag?

I say I ponder upon this and ask these questions because of my ridiculous vision in scenery within games, especially Morrowind. And I bring this up is because, I also think about learning enough to try and create such endeavors?
User avatar
Kyra
 
Posts: 3365
Joined: Mon Jan 29, 2007 8:24 am

Post » Tue May 08, 2012 8:06 pm

There are alternatives such as point cloud and voxel rendering, but they really aren't feasible for modern gaming yet. See the controversy around "Unlimited Detail Technology" last year.
User avatar
Valerie Marie
 
Posts: 3451
Joined: Wed Aug 15, 2007 10:29 am

Post » Tue May 08, 2012 10:04 pm

http://en.wikipedia.org/wiki/Ray_tracing_(graphics)
User avatar
Micah Judaeah
 
Posts: 3443
Joined: Tue Oct 24, 2006 6:22 pm

Post » Wed May 09, 2012 1:24 am

My main question is why does too many Vertices cause such a memory drop/lag? does each vertices have a specific amount of memory it holds? And to much causes a overload on your computer, therefore creating a lag?

If so, is it possible to reduce such memory of each of the vertices, drastically? Allowing much more vertices in a model and thus making it much more detailed?
User avatar
Andrew Perry
 
Posts: 3505
Joined: Sat Jul 07, 2007 5:40 am

Post » Tue May 08, 2012 10:48 pm

At render time the data is sent to the graphics card to process the triangles. It is the process of rendering, aplying to screen, applying textures and effects that take processing power. Another thing you have to concider is culling because showing all detail at all time is out of the question.

Mathematically each triangle has three points in a virtual space. each point need three values to exist. an x,y,z value. So for each triangle there is at least nine values. And that's the least. Most engines put more data into them for neccessitys sake.
User avatar
Music Show
 
Posts: 3512
Joined: Sun Sep 09, 2007 10:53 am

Post » Tue May 08, 2012 1:24 pm

Uhm... and if we use two meshes one extremely detailed but without collisions and the other just collisions, without polys? The first mesh would be rendered with MGE/MGEXE and Morrowind would take care of only the collisions, but it would require 2 .esps (one for MW and another for MGE/MGEXE).
AFAIK it could be a rather easy addition to the current versions of MGE/MGEXE, just like grass but without the moving.
User avatar
Zach Hunter
 
Posts: 3444
Joined: Wed Aug 08, 2007 3:26 pm

Post » Tue May 08, 2012 10:23 pm

I'm not a modeler. But I'm an aspiring computer scientist, I'll give it a shot without being too technical or going outside the bounds of my understanding.


1 - Why is it the more detailed an object is, the more data and memory it takes to read it?
The more 'detailed' an object, the more triangles/quads or polygons and vertices it is likely to have. Bassically each triangle, etc is a piece of information. The more triangles in an object, the more information that is required to store it and process it on screen.

2 - What affects what more and in what manner?; is it the memory-size of an object that causes the lag or is it the amount of objects in total that causes the lag and what affects the other first?
I'm not sure I understand exactly what you are asking. But, think of it as total amount of information. The more triangles and such you have in a single object, the larger its memory-size will be. Just as well, as you add more objects to a scene, each one of their individual memory-size adds up to the total memory/processing power being used. So, in (oversimplified) theory, a few high-poly models or lots of low-poly models would perform about the same if the total amount of information/triangles is the same. Now, it's not quite that simple once you factor in animations and the overhead of rendering individual objects, but that's going beyond my understanding of 3d graphics so I will stop here.

3 - Is there an alternative to Polygons and Vertices?
Voxels are once that's gotten alot of attention recently. Lookup "Unlimited Detail" and "Atomontage" on YouTube. I won't describe the way they work from memory as I wouldn't want to describe them inaccurately, but voxels are basically ,3d pixels' if that makes any sense. Akin to particles or "Atoms" as the Atomontage guy calls them. As of now, these technologies don't really work very-well for games because of the difficulty in animating voxel objects in real-time. So no, you can't use these. I think it would be amazing if someone developed a hybrid voxel/polygon engine that used voxels for static (non animated) objects like terrain, rocks, buildings, etc and used polygons for animated objects like characters and foliage. I'm not sure what the technical issues would be in implementing something like this though.

4 - If their isn't an alternative, is it possible to create a new form of modelling or said alternative, in which the object can be infinitely more detailed with no memory-size difference and there can be an hundreds of times more of these objects in one scene with no Memory-size difference and lag?
Machines have limited memory, unless you've got some sort of Turing machine on your hands :biggrin: You can not have 'infinitely' more detailed and numerous iterations of anything represented within a machine without running out of memory at some point. For this reason, research in optimization algorithms is a hot topic within computer science. Sadly, not my area of expertise. But, to answer your question: if you're talking about objects that are placed repetitively throughout a scene, there are methods of optimizing their performance. Describing those methods would be, again, be outside my comfort zone. But, for example, the SpeedTree technology that Oblivion uses for foliage would be making sure that 100 trees doesn't take 100 times the processing power of one tree.


I say I ponder upon this and ask these questions because of my ridiculous vision in scenery within games, especially Morrowind.
That's one of the difficult things about game development. You have to balance your ideal visions against what is possible to do with the current hardware. 3d animated movies can be so detailed because they are allowed to take lots of time (days? weeks?) to render 2 hours of footage on a render farm with many processors. Games have to render in real time on a single machine. But, computers are getting faster every year. 10 years from not we will be able to do much more with games than we can now, just as we are able to do much more now than when Morrowind was released 10 years ago.

Anyway, 'low'-poly modeling is a bit of an art within itself. That is, modeling objects that look like they are more detailed than they really are. I'm not an artist, so I can't give you any tips. But, do research on low-poly modeling for games and practice your skills.

Hope this helps!
User avatar
Jenna Fields
 
Posts: 3396
Joined: Mon Dec 11, 2006 11:36 am

Post » Tue May 08, 2012 9:58 pm

I saw the "unliiiiiiiimited detail" video last year and my thoughts were that it's cool, but I think that it would also take unlimited amount of time to create a game.
User avatar
JLG
 
Posts: 3364
Joined: Fri Oct 19, 2007 7:42 pm

Post » Wed May 09, 2012 2:29 am

As someone who has recently being building a very simple graphics engine, I'll share what I know.

1 - Why is it the more detailed an object is, the more data and memory it takes to read it?

The first thing you have to understand is a concept called the 'rendering pipeline' and how a 3D model is stored in a computer. 3D models are made up for vertices (with an x, y, z values), these vertices are linked to each other via faces. Onto of this, the vertices are also connected to a UV map that tells an engine how to display a 2D texture across the 3D model. This is the bare minimum for an object, normally on top of this you have a heap of other settings like collision meshes, material types, etc etc. These are read into your video card's memory (which acts the same as your computer's RAM, but only for video stuff). If there are more objects then the RAM can hold, then the vertices have to be cycles in and out of memory to be drawn.

Onto the pipeline; To get a vertices onto the screen there are a heap of steps change the vertices from the object (local coordinates) to world coordinates, then from world to camera (since we look from the player's view, not the world's view), then we add a perspective transform on before we finally change the vertices from 3D space into 2D and draw them onto the screen. This process happens to every vertex, every frame the game. There are a heap of tricks and whatnot to speed this up, companies have put billions into researching this to make it faster, but the fact remains, the more vertices you have to put onto the screen, the more time it is going to take to apply all the changes to these vertices and hence you get lag.

I hope that ins't too complex to understand, this is as much as I could dumb it down....this subject is HUGE if you get into it.

2 - What affects what more and in what manner?; is it the memory-size of an object that causes the lag or is it the amount of objects in total that causes the lag and what affects the other first?

The vertices count would effect it more, however depending on the way a game is coded having too many objects could also cause slowdown.

3 - Is there an alternative to Polygons and Vertices?

As said above, there are voxel and point cloud rending which take a more real life 'object are made from atoms not faces' approach. But at this time computer simply aren't powerful enough to really deal with it yet.

4 - If their isn't an alternative, is it possible to create a new form of modelling or said alternative, in which the object can be infinitely more detailed with no memory-size difference and there can be an hundreds of times more of these objects in one scene with no Memory-size difference and lag?

No, you don't see to grasp the concept of how data works. IF you want to have more detail, with more information about that object, you have to store more data, the more data you store the more there is to process and the more memory is taken up.
User avatar
Emma louise Wendelk
 
Posts: 3385
Joined: Sat Dec 09, 2006 9:31 pm

Post » Tue May 08, 2012 9:18 pm

Rest assured, quantum-optical computers are coming - if you dont mind waiting a couple decades.(I happen to be long lived heh)
User avatar
Logan Greenwood
 
Posts: 3416
Joined: Mon Jul 30, 2007 5:41 pm

Post » Tue May 08, 2012 11:19 pm

Rest assured, quantum-optical computers are coming - if you dont mind waiting a couple decades.(I happen to be long lived heh)
Yep, and I'll still be amazed if they can run a heavily modded Morrowind at 60fps :P

I'm curious to know about game engines while we're on this topic. For example, Skyrim can clearly render a heck of a lot more triangles at a time than Morrowind can. Would it be, theoretically, possible to tinker and edit Morrowind's engine to improve performance in this regard?
User avatar
StunnaLiike FiiFii
 
Posts: 3373
Joined: Tue Oct 31, 2006 2:30 am

Post » Tue May 08, 2012 3:37 pm

I'm curious to know about game engines while we're on this topic. For example, Skyrim can clearly render a heck of a lot more triangles at a time than Morrowind can. Would it be, theoretically, possible to tinker and edit Morrowind's engine to improve performance in this regard?

i second this question myself!


As someone who has recently being building a very simple graphics engine, I'll share what I know.



The first thing you have to understand is a concept called the 'rendering pipeline' and how a 3D model is stored in a computer. 3D models are made up for vertices (with an x, y, z values), these vertices are linked to each other via faces. Onto of this, the vertices are also connected to a UV map that tells an engine how to display a 2D texture across the 3D model. This is the bare minimum for an object, normally on top of this you have a heap of other settings like collision meshes, material types, etc etc. These are read into your video card's memory (which acts the same as your computer's RAM, but only for video stuff). If there are more objects then the RAM can hold, then the vertices have to be cycles in and out of memory to be drawn.

Onto the pipeline; To get a vertices onto the screen there are a heap of steps change the vertices from the object (local coordinates) to world coordinates, then from world to camera (since we look from the player's view, not the world's view), then we add a perspective transform on before we finally change the vertices from 3D space into 2D and draw them onto the screen. This process happens to every vertex, every frame the game. There are a heap of tricks and whatnot to speed this up, companies have put billions into researching this to make it faster, but the fact remains, the more vertices you have to put onto the screen, the more time it is going to take to apply all the changes to these vertices and hence you get lag.

I hope that ins't too complex to understand, this is as much as I could dumb it down....this subject is HUGE if you get into it.



The vertices count would effect it more, however depending on the way a game is coded having too many objects could also cause slowdown.



As said above, there are voxel and point cloud rending which take a more real life 'object are made from atoms not faces' approach. But at this time computer simply aren't powerful enough to really deal with it yet.



No, you don't see to grasp the concept of how data works. IF you want to have more detail, with more information about that object, you have to store more data, the more data you store the more there is to process and the more memory is taken up.

As for your explanation, I understand this almost entirely for the most part, it isn't too difficult to understand. But what I am wondering more or less, how much data does each face and vertices use up as a single, and is it possible to create something that is very similar but uses less memory to read, for each vertices/face, thus allowing more detailed objects and more objects in a scene alone?
User avatar
Sarah Knight
 
Posts: 3416
Joined: Mon Jun 19, 2006 5:02 am

Post » Tue May 08, 2012 8:50 pm

Yep, and I'll still be amazed if they can run a heavily modded Morrowind at 60fps :tongue:

I'm curious to know about game engines while we're on this topic. For example, Skyrim can clearly render a heck of a lot more triangles at a time than Morrowind can. Would it be, theoretically, possible to tinker and edit Morrowind's engine to improve performance in this regard?

Morrowind isn't a very efficient engine. It places far too much load on the CPU, it doesn't take advantage of multi-core CPUs, or even DirectX 9. You can't easily just edit a compiled engine.

You can rewrite that engine from scratch. And I suspect that when all is said and done, OpenMW will run faster with more features.
User avatar
Lynne Hinton
 
Posts: 3388
Joined: Wed Nov 15, 2006 4:24 am

Post » Tue May 08, 2012 4:18 pm

Morrowind isn't a very efficient engine. It places far too much load on the CPU, it doesn't take advantage of multi-core CPUs, or even DirectX 9. You can't easily just edit a compiled engine.

You can rewrite that engine from scratch. And I suspect that when all is said and done, OpenMW will run faster with more features.
I'd be curious to see what comes out if MGE renders everything and MW just takes care of the collisions and those assets that can be enabled/disabled.
User avatar
Austin England
 
Posts: 3528
Joined: Thu Oct 11, 2007 7:16 pm

Post » Tue May 08, 2012 1:28 pm

I'd be curious to see what comes out if MGE renders everything and MW just takes care of the collisions and those assets that can be enabled/disabled.

My understanding is that MGE is pretty much doing post-processing rendering. So the Morrowind engine operates just like normally, and then MGE intercepts the rendering that Morrowind came up with and alters it on the fly. It will never be faster than vanilla Morrowind.
User avatar
Joey Avelar
 
Posts: 3370
Joined: Sat Aug 11, 2007 11:11 am

Post » Wed May 09, 2012 2:35 am

OpenMW is garunteed to be faster than MW because it will make use of multiple corse and GPUs better.(and because if it doesnt, they didnt do a very good job)
User avatar
Suzy Santana
 
Posts: 3572
Joined: Fri Aug 10, 2007 12:02 am

Post » Tue May 08, 2012 4:30 pm

As for your explanation, I understand this almost entirely for the most part, it isn't too difficult to understand. But what I am wondering more or less, how much data does each face and vertices use up as a single, and is it possible to create something that is very similar but uses less memory to read, for each vertices/face, thus allowing more detailed objects and more objects in a scene alone?

Like I said, billions have been sunk into researching better compression and data storage.

At the point it is, not really and quite frankly, its not the 3D models that use up the memory....size of the 3D models effect the GPU (its the CPU in a video card) much more cause more vertices mean more calculations. The real memory hog, is in fact the textures, as textures take up over 1MB at times....couple of hundred objects with multiple textures on screen and suddenly the awesome 1Gig video card will fill up.



What you are saying is pretty obvious....yes if you could come up with a better way to store the data....and a way to render onto the screen more efficiently....then yes you could do more....and that's why its such a huge topic, a lot of very smart people have made big advancements in this field. Have you ever wondered how games kept looking better on consoles, despite the hardware not changing? efficiency is why.


In the realm of computer systems though, with hardware moving so quickly, things that used to take a super computer to render overnight 3 years ago (animated movies, rendered scenes etc) can now be done in an afternoon on a desktop computer. This means that if you want to have something more detailed, you can just while a few years for the hardware to catch up to your dream. Have you ever seen a PC game that takes advantage of new PC parts (such as metro 2033 or such)? compare that to the console version and you can see how far we have come in just 6 years.
User avatar
Alisha Clarke
 
Posts: 3461
Joined: Tue Jan 16, 2007 2:53 am

Post » Tue May 08, 2012 3:39 pm

My understanding is that MGE is pretty much doing post-processing rendering. So the Morrowind engine operates just like normally, and then MGE intercepts the rendering that Morrowind came up with and alters it on the fly. It will never be faster than vanilla Morrowind.

Yep, but the MGE renderer is much faster than the vanilla renderer. I would be interested to see a benchmark showing whether doing just collision in the Morrowind renderer would be faster, or slower.

Edit: Da Mage, I love your sig.
User avatar
Eilidh Brian
 
Posts: 3504
Joined: Mon Jun 19, 2006 10:45 am

Post » Tue May 08, 2012 10:09 pm

do research on low-poly modeling for games and practice your skills.

Wonderful writing about your knowledge and honesty about computer graphics. I didn't want to quote all of your wonderful writing but the last sentence is remarkable reality of things. Like Ivan Sutherland once said, "The best solutions are always simple."
User avatar
Rachel Hall
 
Posts: 3396
Joined: Thu Jun 22, 2006 3:41 pm

Post » Tue May 08, 2012 6:20 pm

I saw the "unliiiiiiiimited detail" video last year and my thoughts were that it's cool, but I think that it would also take unlimited amount of time to create a game.
Can't see why it would much longer if any more. You still model the meshes in the same way initially.
User avatar
REVLUTIN
 
Posts: 3498
Joined: Tue Dec 26, 2006 8:44 pm


Return to III - Morrowind