• We should now be fully online following an overnight outage. Apologies for any inconvenience, we do not expect there to be any further issues.

I've been thinking about polygons..... there has to be something better....

zsouthboy

Platinum Member
Aug 14, 2001
2,264
0
0
It seems as I look around my world I see more things that are curved or not perfectly straight than are straight..... and all we see in 3d games currently are models and objects based on polygons, which are fine until you (try to) simulate curved surfaces, where you are left with square looking doorways and blocky character heads, unless you increase the polygon count, which of course is a double- edged sword. As you try to get closer to a perfect curve, you actually get farther away from it. Therefore I was wondering if there are any other ways that are being used..... I heard something about NURBS, will someone explain that system for me? Also if there are any similar systems please post them. I think that if a new"system" could be embraced, we could then have graphics accelerators that allow us to render faster, and so on.

Your thoughts please.

zs
 

gentobu

Golden Member
Jul 6, 2001
1,546
0
0
Ive taken some classes in 3d (modeling, animation, etc) and I really dont think there is anything that will replace polygons. Things that use NURBS, and subdivision are really just surfaces (that use polygons) that have been smoothed out to look rounder/smoother. There is something called volumetrics that is used to render things like smoke and water, but it takes a *really* long time to do so.
 

wviperw

Senior member
Aug 5, 2000
824
0
76
nah, polygons are it I think. Although a highly detailed voxel system might work. Just remember, "realiy" i.e. this physical world isn't full of perfect things either. For example, you don't find a "perfect" curved door way. Its simply the material having enough changes in direction (each change in direction could be called a polygon in computer speak), that it looks completely curved. So, essentially, all you need to do for computer graphics to rival realities graphics is to have as many "polygons" as the physical world has. And the physical worlds building blocks are atoms.
 

CTho9305

Elite Member
Jul 26, 2000
9,214
1
81
how about describing some things as equations? of course, solving them over and over would probably be incredibly resource intensive - so much so that using lots of polys would be faster....
 

Shalmanese

Platinum Member
Sep 29, 2000
2,157
0
0
Fractal imaging is remarakbly good at generating certain natural scenes but that is also a two edged sword as it fails when you want to generate something that looks artificial and man made. The best thing about fractal images is that you can use an essentially finite amount of data to generate an infinite amount of detail. If you had a mountain, you could start from outer space and zoom in until your down to the individual molecules (some exageration here) and you would still maintain the same level of detail.

The down side is that it is far harder to generate a fractal model than a polygon one.
 

zephyrprime

Diamond Member
Feb 18, 2001
7,512
2
81
The problem with volumetrics is that they are polygonal too. The basic unit, the voxel, is nothing more than a cube.
 

b0z0

Junior Member
Dec 17, 2001
2
0
0
hey.... ok i am not an expert on this topic or anything but what if everything was designed in the way of atoms..... real life stuff....

if all the general elements with their structures and stuff were programmed into a game engine could it be possible to like tell the computer to stack like 1 billion-gazillion atoms to make a particular object..... and it should be able to mimic the object in real life (if the physics of the world were programmed properly). i think i heard somewhere that there are programs that simulate chemical reactions and with some effort they could be able to determine to a fairly accurate degree the properties of general stuff based on their chemical properties.

it might (what am i saying, it probably will) be REALLY cpu intensive, but some of the new 2Ghz+ processors should be able to handle it (i think)....

i am just taking a blind shot in the dark here..... feel free to blow my crazy idea to pieces. :D :p
 

gentobu

Golden Member
Jul 6, 2001
1,546
0
0
Originally posted by: b0z0
hey.... ok i am not an expert on this topic or anything but what if everything was designed in the way of atoms..... real life stuff....

if all the general elements with their structures and stuff were programmed into a game engine could it be possible to like tell the computer to stack like 1 billion-gazillion atoms to make a particular object..... and it should be able to mimic the object in real life (if the physics of the world were programmed properly). i think i heard somewhere that there are programs that simulate chemical reactions and with some effort they could be able to determine to a fairly accurate degree the properties of general stuff based on their chemical properties.

it might (what am i saying, it probably will) be REALLY cpu intensive, but some of the new 2Ghz+ processors should be able to handle it (i think)....

i am just taking a blind shot in the dark here..... feel free to blow my crazy idea to pieces. :D :p


I think this is what super computers do.
:)
 

thedan

Senior member
Aug 5, 2001
332
0
0
Fractal Images are incredibly complex and would be cpu sucking. You can download a fractal generator (The Mandelbrot Set) and see how it goes.
 

wviperw

Senior member
Aug 5, 2000
824
0
76
Originally posted by: b0z0
hey.... ok i am not an expert on this topic or anything but what if everything was designed in the way of atoms..... real life stuff....

if all the general elements with their structures and stuff were programmed into a game engine could it be possible to like tell the computer to stack like 1 billion-gazillion atoms to make a particular object..... and it should be able to mimic the object in real life (if the physics of the world were programmed properly). i think i heard somewhere that there are programs that simulate chemical reactions and with some effort they could be able to determine to a fairly accurate degree the properties of general stuff based on their chemical properties.

it might (what am i saying, it probably will) be REALLY cpu intensive, but some of the new 2Ghz+ processors should be able to handle it (i think)....

i am just taking a blind shot in the dark here..... feel free to blow my crazy idea to pieces. :D :p

Yea, I've had this idea too. Theoretically, it should be possible to exactlly replicate our reality inside a computer. Only one problem though. It seems to break a fundamental law of physics. There's a law (forget what its called) which states that in a closed system (i.e. the universe), you can never end up with something inside that closed system which is as complex or more complex than the original closed system. I think it kinda relates to the Conservation of Energy, although I'm not sure. So with this in mind, it would be impossible to create a system which is as complex as our own inside of a computer. At perfect 100% effectiveness of utilizing the atoms we have, you still couldn't create a computer program with as much complexity as our world.
 

Shalmanese

Platinum Member
Sep 29, 2000
2,157
0
0
Originally posted by: thedan
Fractal Images are incredibly complex and would be cpu sucking. You can download a fractal generator (The Mandelbrot Set) and see how it goes.

The beauty of fractals is that you can control the Level of Detail (LOD) of the fractal to match your CPU speed. When your generating a Madelbrot, you can do a quick a dirty fractal in a split second but if you want it pixel perfect at 1600x1200, it will take a couple of minutes. Its much harder to do that with polygons because, eventually, if you want to show high detail, you will have to model high detail. With fractals, any level of detail can be rendered at constant speed.

As for the modelling real world thing, a 2Ghz machine is WAAAYYY too slow to do anything significant. Right now, a couple of thousand machines are working around the world on a project called folding@home to model how proteins fold. Now, each protein takes a couple of HOURS of cpu time on a 2Ghz machine and the average human is folding proteins at the rate of hundreds of thousands per second.

As for what wpviper was saying, that is one o the tenent of Godels Incompleteness theorom, you cant model a closed system from the inside with a finite set of rules becuase then your rules would have to account for you modelling yourself.
 

sao123

Lifer
May 27, 2002
12,653
205
106
Ah, the age old problem of how to get more for less. How do you get the highest level of detail with the lowest level of data.

the atom idea is creative, but would be too CPU intensive to be able to render a scene at any decent frame rate.

Polygons are currently the best way to go. The real current question is how to make the most efficient polygon structure?
Do you make less polygons giving each many more vertexes, or do you use simple polygons (3-8 vertices), requiring millions more of them.

Either way you go, its a performance hit.

Equations were once a great idea, especially with OPENGL, but they lack something-- closed surfaces, which generates good fill rates.

So now what if we defined our polygons with a set of equations. Well, it has possibility.
Except that... once again, the more points on the Equation you plot, the longer it takes to generate a frame, the less points you plot the less detail you get (henceforth jaggy edged lines).

But see, its the layers that really help your performance. to really understand polygons and rendering you gotta see the layering.
Heres a simple view of layering...Imagine this object

[oo\x\o]
[oo/x/o]
[oo\x\o]

you might think this is 3 separate complex polygons....

[oo \x\ o]
[oo + /x/ + o]
[oo \x\ o]

its not... its only 2. 1 simple and 1 complex.

[oooooo] \x\
[oooooo] + /x/
[oooooo] \x\

In this manner, only the topmost alyers of the rendered scene have to have complex polygons, the rest are simple, thus improving performance.



 

Belegost

Golden Member
Feb 20, 2001
1,807
19
81
Polygons are probably going to be the best way to do things for quite some time. If for no other reason that education. As it is, the people who write the 3d rendering code need a very good knowledge of math to understand the transforms that are occurring as they move the vertices. The amount of math that would be needed for a rendering system based on 3d vector-valued functions would be much much more. Not to mention the incredible amount of processing power that would be needed to evaluate those functions at a refresh frequency as low as 30Hz would seem to me to be incredibly large.

Computers are good at doing simple calculations, this is why polygons work, the transform that operates on the vertices all boils down to simple arithmetic fairly easily. However, transforms on vector functions are more difficult to bring down to simple operations. So, it's easier to continue pushing more polygons to make more realistic enviroments than it is to try and deal with the more complicated math involved in a vector function based system.

As for modeling an enviroment atomically... :confused:
 

glugglug

Diamond Member
Jun 9, 2002
5,340
1
81
How about specifying parabolic or cubic bezier surfaces contained within cubes?
Perhaps restrict it to equations of the form
z = ax^2 + bx + c + dy^2 + ey + fxy or
z = ax^3 + bx^2 + cx + d + ey^3 + fy^2 + gy + hxy + ix^2y + jxy^2,
along with a rotation angle for the curve (preferably one that makes z in the equation be depth from the current camera angle).

(Equations above chosen because they make it easy to calculate vertices for the sub-polygons by calculating the z values for an evenly spaced grid of x and y values).

This would drastically limit the # of textures needed to make a curved surface look good, but would be a hell of a lot more calculation for the 3D card to do if it were to actually render the curves as curves. Instead, an arbitrary # of polygons would have to be specified for each curve to be broken up into. (And the 3D card GPU, not the CPU would be responsible for converting curves to polygons and determining what smaller pieces of the texture for the curve to apply to each polygon).

The video card would sent the values for a,b,c,d,e,f,g,h, & i in the equation, a rectangle in the (x,y) plane to limit the part of the curve to calculate, a rotation angle, and preferred number of points to calculate the surface at and create polygons from along the x and y axes.
 

jna

Senior member
Jun 1, 2002
234
0
0
Here are the principles that I see are being advocated:

Every surface is defined as a vector valued function instead of a polygon.
This equation is evaluated every time we need to reference a point on the surface.

Let's start with the very basic, and compare a sphere made of triangles to a sphere generated by x^2+y^2+z^2=r^2.

Supposing that the vertices of the polyhedron-sphere have been precalculated, it will take very little time to simply draw a wireframe model. The resolution will have less impact on processor time (CPU or GPU) than memory capacity.

Imagine how long it will take to evaluate z = +-sqrt(r^2-x^2+y^2) for the wireframe model? If we work in polar or cylindrical coordinates, the equation is simpler to solve, but requires additional setup if we want to cover every pixel without "holes".

Then we move on to texture mapping. Whereas with the polyhedron, we simple map the texture onto each triangle, with the sphere, we need to perform a little differential geometry to map a plane onto the surface. Regardless of how often it repeats, we will have to perform extra calculations with our resolution to avoid holes.

I don't know enough about lighting and occlusion to even try to analyze these situations, but the essential idea behind using polygons is the sheer number of calculations it saves. Modern CPUs and GPUs that handle very high numbers of polygons at an acceptable framerate may handle our equation objects at 1/10th of that speed, if we develop enough optimizations.

 

sao123

Lifer
May 27, 2002
12,653
205
106
Remember, the art of rendering happens like this...
1 Plot points.
2 Connect the dots.
3 Fill Closed surfaces

Theres only one problem with your theory, as I stated earlier.
Lets assume you use equations to define lines.
Now, how many points do you plot? Every one?, Every other one?, Every Fifth?
The more points you plot on the equation, the slower your frame rate will be.
The less points you plot, the less smooth your curved surface is.

For example use a generic equation of a line, when graphed it might look like this.

Too slow, too many dots
|\......................____...........
|..\................../.........\..........
|....\............../.............\........
+---+--------+-------------+----
|.......\......../....................\....
|........------........................\..
|.........................................\.

Faster, not as good a picture
|\......................_..._...........
|..........................................
|....\............../.............\........
+---------------------------------
|.......\......../....................\....
|........-....-...........................
|.........................................\.


 

Shalmanese

Platinum Member
Sep 29, 2000
2,157
0
0
Originally posted by: Frish
i thought about modeling the real world based on atoms or smaller before . . . . . .

if you made an efficient enough program . . . .

you could use you computer to model a better computer . . . and go however many levels you need until you have a simulated computet powerful enough to model, like a room in real time . . . .


but i doubt that software could ever be THAT efficient.

and again . . . . . . . if you constructed a human brain model with atoms, in real time, presumably it would be concious and sentient . . . . . . . . . True AI . . . . . . . . . . . .

Thats like saying... well, I can compress this file to a zip file and get 30% compression rate, if I keep on compressing this zip file, I will eventually get all my pr0n down to 1 byte in size... doesnt work that way bub. You can't get something for nothing.

 

sao123

Lifer
May 27, 2002
12,653
205
106
Is there a real difference between the way
OpenGL, GLide, and MS DirectX render with polygons and equations? or is the only true difference the Interface API?
 

NogginBoink

Diamond Member
Feb 17, 2002
5,322
0
0
The reason triangles are used so much in 3D graphics is that they're FAST.

Any 3 points in a 3 dimensional space are always coplanar. (That is, you can draw a plane through any 3 3D points.)

From the plane you can get the vector normals.

Going to more complex surfaces increases computation time like nuthin else.

While I'm sure there are mathematical models for rendering 3D surfaces other than triangles, the fact of the matter is that triangles are just fastfastfast and breaking complex surfaces into lots of little triangles is still the fastest way to do it.
 

CTho9305

Elite Member
Jul 26, 2000
9,214
1
81
Originally posted by: NogginBoink
The reason triangles are used so much in 3D graphics is that they're FAST.

Any 3 points in a 3 dimensional space are always coplanar. (That is, you can draw a plane through any 3 3D points.)

From the plane you can get the vector normals.

triangles also are always convex. a quadrilateral can be concave... and if it its, you have to use a more difficult (slower/less efficient) algorithm to fill the pixels.