• Some users have recently had their accounts hijacked. It seems that the now defunct EVGA forums might have compromised your password there and seems many are using the same PW here. We would suggest you UPDATE YOUR PASSWORD and TURN ON 2FA for your account here to further secure it. None of the compromised accounts had 2FA turned on.
    Once you have enabled 2FA, your account will be updated soon to show a badge, letting other members know that you use 2FA to protect your account. This should be beneficial for everyone that uses FSFT.

Round corners

ProwlerTech

Limp Gawd
Joined
Feb 27, 2005
Messages
239
I'm trying to help a friend of mine understand why round corners and perfect circles are not possible in gaming. I remember an article here a few years ago that explained in detail the limitations that prevent such objects. Could anybody provide me with some info or a link that explains in detail why it's not possible? Thanks.:cool:
 
Because graphics are rendered with polygons. A circle in a game would be made up of tiny lines, the smaller they are the better it'll look. A perfect circle cannot be achieved because the 'roundness' would never be perfect.
 
its possible, just all the code monkeys are too damn lazy to make it work. programmers damn you!
 
Yeah, to basically back up what was said, since these shapes use polygons, a perfect circle isn't attainable. You'd need an infinite number of sides to create a perfect circle. That said, many games come "close enough" now, and there are various graphical tricks to make it that way.

If you really wanna mess with his head, try pointing out that it's impossible to even display a perfect circle using groups of square pixels on a computer monitor. ;)

So really, the whole thing is moot. :p
 
As far as I know, rasterisation (the traditional rendering method) requires that any 3D object be described as a collection of polygons, and you can't build a curved object from a bunch of flat pieces. True curved surfaces are possible with raycasting, since objects are defined mathematically.

"Curved surfaces" was something of a buzzword in gaming a few years ago (Unreal is the earliest game which springs to mind), but even though they have a true representation of a curve, they need to sample a finite number of points before they can render it.

EDIT:
A perfect circle cannot be achieved because the 'roundness' would never be perfect.
Define "perfect". You can easily make one which is indistinguishable to the human eye, and you could probably make one which produces a 100% identical image when displayed on a computer monitor.

If you really wanna mess with his head, try pointing out that it's impossible to even display a perfect circle using groups of square pixels on a computer monitor. ;)
If you want to really mess with his head, point out that it's also impossible to construct one out of physical matter, or display one using light, since you can't make a perfect curve from a collection of particles. In other words, he's never even seen a perfect circle.
 
There have been a few ways to do it or atleast an approximation of it.

Voxels. Rather than polygons, these are more spline based with something akin to mass. Depending on the density, they can pretty much obtain a 'perfect circle' if you count out the jagged pixels. They don't work well with hardware acceleration (if at all) so they have to be done in software, hence, lower screen resolutions with no anti-aliasing. First saw this in Commanche: Maximum overkill. Infinite rolling hills with dynamic surfaces. If the density is too low, they tend to break apart if you move too close.

There are others that can also give the illusion of it though Bump, Normal, Parallax and Displacement. Doom3 was the first to use it to great effect and gave simple four sided boxes the appearance of rounded edges.
 
According to the sandbox video, the terrain in Crysis will be voxel-based.

And boxes have 6 sides.
 
Cubes have six sides. 'Box' is a pretty vague term, and could be a cardboard box, a four-sided square drawn on paper, etc.
 
Cubes have six sides. 'Box' is a pretty vague term, and could be a cardboard box, a four-sided square drawn on paper, etc.

"Box" (versus "square") generally indicates a 3-dimensional object. Especially when used with the context of 3d games.
 
By box, i was talking about the four sided cube, yes, only four active sides since most games take out unused polygons. The part in Doom 3 that impressed me most were the metal cylindrical pillars with wires wrapped around them, i didn't realize they only had four sides until i turned down the graphics :) The fact that most static objects in the game had rounded edges (Or looked like it) impressed me more than the monsters :D
 
Perfect, as in perfect.
You can't have a perfect curve in a computer. You can have a mathematical representation of one, but if you want to draw it, you need to sample a finite number of points on its surface. You now have a curve represented by a finite number of points, which is no different to a polygonal model - using a sufficiently detailed model in the first place could yield exactly the same result. And if the outputs are identical, it doesn't make much sense to say one is a perfect curve and the other isn't.
 
You can't have a perfect curve in a computer. You can have a mathematical representation of one, but if you want to draw it, you need to sample a finite number of points on its surface. You now have a curve represented by a finite number of points, which is no different to a polygonal model - using a sufficiently detailed model in the first place could yield exactly the same result. And if the outputs are identical, it doesn't make much sense to say one is a perfect curve and the other isn't.

Yeah. I got that.

Because graphics are rendered with polygons. A circle in a game would be made up of tiny lines, the smaller they are the better it'll look. A perfect circle cannot be achieved because the 'roundness' would never be perfect.

Where's the confusion?
 
I'm trying to help a friend of mine understand why round corners and perfect circles are not possible in gaming. I remember an article here a few years ago that explained in detail the limitations that prevent such objects. Could anybody provide me with some info or a link that explains in detail why it's not possible? Thanks.:cool:

Try making a 1 million polygon ball in 3ds Max, with the proper lighting you will never be able to tell that it is made up of polygons, unless you zoomed in to a friggin microscopic level. So they are possible in a way, you just don't see them because no graphics card can handle that amount of polygons yet.
 
Remember, the display is made of discrete pixels, each of which are colored according to discrete samples of the scene. So if the polygons that make up said curved surface are smaller than the sample size (can be smaller than the pixels if AA is used) than did we not just draw a perfect representation of that curved surface, at least to the limit (screen resolution) that the display can project?

This is what some raytracers do, and some GPU/CPU now are probably strong enough performance wise to do it in real time on a limited basis. The amount of tessellation can be varied in real time as well, in case we want to "zoom in", and need smaller polys to compensate, most people know this as LOD.
 
Where's the confusion?
In the strictest sense, a polygonal model can't be curved. But in the same sense, neither can any object in the real world.

If you relax your definition of a curve to encompass physical objects, you automatically include sufficiently detailed computer representations.

That's why I asked your definition of a perfect curve. A true curve exists only as a conceptual object. A working definition within the confines of reality requires that you draw the line somewhere. Personally I'd say that a curve is perfect if further refinements are imperceivable.

So if the polygons that make up said curved surface are smaller than the sample size (can be smaller than the pixels if AA is used) than did we not just draw a perfect representation of that curved surface, at least to the limit (screen resolution) that the display can project?
I think there might be a subtle difference (and I think I overlooked this earlier). Though I could be dead wrong, since I don't know the specifics of how rendering techniques work...

Consider a polygonal sphere (with no shading or texturing, for simplicity's sake). Pick a random pixel. Translate the view by a tiny amount (less than a pixel's worth, so you won't see any movement), keeping the pixel within the same polygon. The pixel will remain the same colour, because the colour of the polygon is uniform.

Now consider a curved sphere, and translate it by exactly the same amount. The pixel will change colour (so long as the bit depth is high enough to represent the change).
 
its possible, just all the code monkeys are too damn lazy to make it work. programmers damn you!

Yes it's possible but not worth the effort since the effect can be simulated with much less work and most people won't notice the difference. I would much rather time and energy be spent on the gameplay..
 
I'm about 99% sure that Quake 3 was the first game that claimed to have done away with edges. I havnt played it for years but I do remember being very impressed with the feature. There should be a few interviews where carmack talks at length about it if you do a google.
 
Yes it's possible but not worth the effort since the effect can be simulated with much less work and most people won't notice the difference. I would much rather time and energy be spent on the gameplay..

QFT.
 
I'm about 99% sure that Quake 3 was the first game that claimed to have done away with edges. I havnt played it for years but I do remember being very impressed with the feature. There should be a few interviews where carmack talks at length about it if you do a google.

QuakeIII will always have a place in my heart. :cool:
 
It's a good question

In current game engines, all 3D models are made of polygons which in their most basic form are just triangles, defined with 3 vertices and connected to form the edges of the polygon. You can only create an approximation of a round object, and the more vertices you use the closer your approximation becomes to the real object.

That said, real world objects are made up of atoms which tend to pack together in a crystaline form, so if you analyze and real world object close enough it's not actually "perfectly" rounded but just rounded enough that it appears perfectly round to our sences. for example if you look at the head of a pin closely it's actually quite rounded, but you wouldn't say that if I was forcing the pin into your arm.

I expect that we'll reach a "round enough to fool us" point, but for the average game thats a long way off. With the smooth shading we have today we can take a fairly low poly model and if the shadows are smoothed across multiple surfaces, we can make that model appear quite rounded, only when we see a silhouette of that model do we really notice it's not perfectly round. For example if you make a straight metal pole with 6-10 faces and you smooth it, if you look at it side on it looks pretty damn good, but if you look at it length ways you can tell easily that it's not a perfectly round cylnder at all.

Displays will also have to improve, theres little point in having a thin metal pole with 1000 faces if most of them faces get merged together into just one pixel on your screen.
 
I made a quick example.

Here's four spheres, with the polycounts listed above, 6400, 1600, 400 and 100. The second row of images is a closeup of these spheres, and the last row of images is 4 different bumpmaps applied to a 400 polygon sphere. You don't need a million polygons to fool the eye.

polysvy6.jpg
 
I'm about 99% sure that Quake 3 was the first game that claimed to have done away with edges.
I think what you have in mind is a technique used for 3D models advertised as "curved surfaces". My understanding of it is that the model is stored as a piecewise mathematical function representing a curved surface. But you need to convert it to a polygonal model before it can be rendered, so you sample a finite number of points on the surface to build the model (for the record, this is almost certainly how they built the models in .kkrieger, that 96kb shooter). IIRC, in Q3A there was a detail setting controlling the number of samples, and though I don't think it went high enough to completely do away with edges, you may well be able to do it now that the engine's open source.

By the way, I'm pretty sure there was a curved surfaces option in the original Unreal (positive it was in a few later UE1 games), so I don't think Q3A was the first.
 
You're right about that, you can model using curved surfaces. It's a completely different task then working with polygons, and there's a lot of limitations but also advantages. And yes, they need to be converted to polygons at rendertime. However, you have the ability to adjust tesselation options to change the number of divisions or polycount. At the same time though, you can smooth any polygon mesh, so it's not that different. The main reason I modeled using surfaces in the past was for their ability to deform for expressions and movements. As well, when you're moving control vertices, they adjust the look of the output curves which create your surface. The surface doesn't connect the control vertices, but creates a smooth path between then. In polygons the surface is just going from one vertex to the next.
 
Back
Top