View previous topic :: View next topic |
Author |
Topic : "Curved Surfaces? BAH!" |
Freddio Administrator
Member # Joined: 29 Dec 1999 Posts: 2078 Location: Australia
|
Posted: Mon Dec 18, 2000 10:18 pm |
|
 |
I though Quake 3 was meant to have curved surfaces?
I screenshot I took just then
|
|
Back to top |
|
faustgfx member
Member # Joined: 15 Mar 2000 Posts: 4833 Location: unfortunately, very near you.
|
Posted: Mon Dec 18, 2000 10:21 pm |
|
 |
try taking a screenshot of a actual curve, not a polygon curve.
plus if id had any brain, they'd still keep the actual output of the spline very low. and it still has to be put out as something, such as polygons.. which i hope isn't the case here.
------------------
sky high with a heartache of stone you never see me 'cos i'm always alone
[email protected] /
icq#35983387 |
|
Back to top |
|
Ragnarok member
Member # Joined: 12 Nov 2000 Posts: 1085 Location: Navarra, Spain
|
Posted: Mon Dec 18, 2000 10:37 pm |
|
 |
It depends of your configuration. I don't remember exactly, but I think it was something about polygons complexity. Depending of how you have it you will see a "perfect" curve or that. It's mean to be faster if you don't have a good machine. |
|
Back to top |
|
[Shizo] member
Member # Joined: 22 Oct 1999 Posts: 3938
|
Posted: Mon Dec 18, 2000 10:41 pm |
|
 |
HEhehehEH! Well dud i'm sorry to tell you but this depends a whole lot on the hardware you use! I really forget, but somewhere i've seen a comparison of two vid cards showing same curved surface in Q3 with same settings - huge difference.
Also you might wanna check YOUR geometrical settings? I think it's something like "curved surfaces complexity" but i dont have Q3 so.. hehe
[edit] go away you damn person above! i posted this first hehe
------------------
Nothing really matters to me
[This message has been edited by [Shizo] (edited December 18, 2000).] |
|
Back to top |
|
faustgfx member
Member # Joined: 15 Mar 2000 Posts: 4833 Location: unfortunately, very near you.
|
Posted: Mon Dec 18, 2000 10:42 pm |
|
 |
sounds pretty right. i have never seen even a slightest hint of what we see in freddio's screenshot.
in the curve surfaces, that is.
but i have a kick ass 3d card too, and you don't, nyah:)
------------------
sky high with a heartache of stone you never see me 'cos i'm always alone
[email protected] /
icq#35983387 |
|
Back to top |
|
Freddio Administrator
Member # Joined: 29 Dec 1999 Posts: 2078 Location: Australia
|
Posted: Mon Dec 18, 2000 11:24 pm |
|
 |
well My Geforce 2 isnt that bad a card...
I dont actually think thats a brezier (not sure if that the right word?) curve
I have every setting maxd.... @ 1024x768x32 |
|
Back to top |
|
Freddio Administrator
Member # Joined: 29 Dec 1999 Posts: 2078 Location: Australia
|
Posted: Mon Dec 18, 2000 11:31 pm |
|
 |
hmmm
Looks curved... but up close..
see?
please explain.. |
|
Back to top |
|
faustgfx member
Member # Joined: 15 Mar 2000 Posts: 4833 Location: unfortunately, very near you.
|
Posted: Tue Dec 19, 2000 12:16 am |
|
 |
already did.
------------------
sky high with a heartache of stone you never see me 'cos i'm always alone
[email protected] /
icq#35983387 |
|
Back to top |
|
Freddio Administrator
Member # Joined: 29 Dec 1999 Posts: 2078 Location: Australia
|
Posted: Tue Dec 19, 2000 12:49 am |
|
 |
Sorry what I meant to say is that...
please explain why John Carmack says there are curved surfaces in quake 3.. when they clearly arent?
I mean they look very curved but when I Look carefully you can see the staright edges of polygons?
so Faust your saying that they arent curved too?
then they aren't curved.... hmpf..!!
the two shots above ... the second one is close up of the first.. |
|
Back to top |
|
Freddio Administrator
Member # Joined: 29 Dec 1999 Posts: 2078 Location: Australia
|
Posted: Tue Dec 19, 2000 1:32 am |
|
 |
I found this command
r_lodCurveError 10000 (default 250)
now check the shot
I thought it would play like shit but I saw no frame rate drop what so ever very cool
now all i gotta do is put my fsaa
[This message has been edited by Freddio (edited December 19, 2000).] |
|
Back to top |
|
[Shizo] member
Member # Joined: 22 Oct 1999 Posts: 3938
|
Posted: Tue Dec 19, 2000 3:37 am |
|
 |
Freddio: chill the hell out! heHEhSHHAHAHAH!
Of course Carmack says he programmed curved surfaces in Q3 code, and its one of the best features in Q3 (along with sweet res textures hehe). What you mean "there clearly aren't"? You ever seen how those surfaces look in MAP EDITOR? They consist of good old low-poly edges or NONE AT ALL. For example Claws (or teeth) were mostly programmed in, and in game they're rendered curved. Besides if he wanted to make the detail of the curve any more detailed (just for you) he'd have to double or quadrupal the amout of polys rendered and we dont want that eheheh. No we dont!
if builf an arc:
.____.
/....\
the game would render it:
..._
./...\
(.....)
Weeeeeeeee....
------------------
Nothing really matters to me |
|
Back to top |
|
shahar2k member
Member # Joined: 01 Jun 2000 Posts: 867 Location: Oak Park CA USA
|
Posted: Tue Dec 19, 2000 3:49 am |
|
 |
uhm...
here goes:
it's IMOSSIBLE to render curved surfaces such as pure splines (or in Q3's case bazier curves) unless you translate them to something the accelerator can understand. which is where APPROXIMATION comes in
the game takes the parametric curved surface, and during load time, it calculates your system's abilities, and the geometry settings, and approximates the curve using renderable polygons, hence straight lines. however, the deal with curved surfaces is not that they aren't perfectly curved, it's that they are parametric, and don't have to be built of tons of brushes
3D engines are really easy to understand once you learn the basic methods things can be rendered as.
although there's much I don't know. |
|
Back to top |
|
Freddio Administrator
Member # Joined: 29 Dec 1999 Posts: 2078 Location: Australia
|
Posted: Tue Dec 19, 2000 4:48 am |
|
 |
didnt you guys read my last post
I increased the poly count dramatically and experienced no performance hit
aah ok... so back to my point they arent curved
cramack such a gfx geek  |
|
Back to top |
|
Freddio Administrator
Member # Joined: 29 Dec 1999 Posts: 2078 Location: Australia
|
Posted: Tue Dec 19, 2000 4:50 am |
|
 |
man I can't belive i used 4 smilies in that last post.
I orta eas of them a bit...
im addicted to em.. |
|
Back to top |
|
Chronic Beauty junior member
Member # Joined: 26 Nov 2000 Posts: 33 Location: Glasgow Scotland.
|
Posted: Tue Dec 19, 2000 7:25 am |
|
 |
Curved surfaces will always be impossible on tv or a monitor. |
|
Back to top |
|
faustgfx member
Member # Joined: 15 Mar 2000 Posts: 4833 Location: unfortunately, very near you.
|
Posted: Tue Dec 19, 2000 8:05 am |
|
 |
not on code/model data level.
------------------
sky high with a heartache of stone you never see me 'cos i'm always alone
[email protected] /
icq#35983387 |
|
Back to top |
|
balistic member
Member # Joined: 01 Jun 2000 Posts: 2599 Location: Reno, NV, USA
|
Posted: Tue Dec 19, 2000 8:43 am |
|
 |
Nearly all modern renderers subdivide to polygons at some point. In Quake 3, you can set the smoothness of curves via a console command. Setting the subdivisions lower can increase your frame rate, but you risk losing enemies inside walls.
------------------
"What we're hearing, techno, is the process of trying to create something of the future." - J.M.
Brian "balistic" Prince
3D Artist
Eggington Productions
www.bprince.com |
|
Back to top |
|
Freddio Administrator
Member # Joined: 29 Dec 1999 Posts: 2078 Location: Australia
|
Posted: Tue Dec 19, 2000 3:42 pm |
|
 |
I increased mine 10x
very curvy
but my timedemo results show that I experienced no drop in frame rate...
du to my card be able to cope with humungas poly counts.. |
|
Back to top |
|
Ben Barker member
Member # Joined: 15 Sep 2000 Posts: 568 Location: Cincinnati, Ohier
|
Posted: Fri Dec 29, 2000 11:27 pm |
|
 |
I got news for you people who think "polygon curves", or the curves in Q3 aren't real curves:
Computers MUST deal with finite points in space. That means coordinates, and that means vertices and polygons.
The Quake 3 engine has the ability to subdivide surfaces along a mathematical curve (bezier being the particular algorithm it uses) but to process them, render them, and translate them in 3D space they MUST have polygons with vertices set along that curve. Even the bezier splines that define the curves have vertices that the engine interpolates between. This is the only way to do it, with polygons. It's a solved problem and the solution can't get any better.
This is not just Quake 3, this is almost every 3D program ever created, and I won't get into voxels since they are so far off.
Make a NURBS object in 3D Studio, then render it with force wireframe, and it's rendered with polygons generated from the curves.
The big deal with Q3 is, it automatically generates the curve detail based on user settings, the curves can be concave (unlike other solid objects in the Quake engine), and they have a dynamic level of detail.
The closest you can come to a curve on a computer is by making the curve steps smaller than the pixels on the final image. Crank your r_subdivisions all the way down and that's as close as you can come. There aren't any "magical" curves that don't use polygons.
Freddio: That setting deals with the level of detail, or how much polygon loss the curves take when you get farther away. The command to jack up the divisions is r_subdivisions, and the lower settings mean more polygons.
[This message has been edited by Ben Barker (edited December 29, 2000).] |
|
Back to top |
|
faustgfx member
Member # Joined: 15 Mar 2000 Posts: 4833 Location: unfortunately, very near you.
|
|
Back to top |
|
-- Transcendent -- member
Member # Joined: 12 Nov 2000 Posts: 251 Location: Somewhere, Sometime, Somehow
|
Posted: Sat Dec 30, 2000 12:37 am |
|
 |
quote: Originally posted by Ben Barker:
[B]I got news for you people who think "polygon curves", or the curves in Q3 aren't real curves:
Computers MUST deal with finite points in space. That means coordinates, and that means vertices and polygons.
The Quake 3 engine has the ability to subdivide surfaces along a mathematical curve (bezier being the particular algorithm it uses) but to process them, render them, and translate them in 3D space they MUST have polygons with vertices set along that curve. Even the bezier splines that define the curves have vertices that the engine interpolates between. This is the only way to do it, with polygons. It's a solved problem and the solution can't get any better.
Wrong.
Ever heard of a vector curve ? Apply it in X,Y and Z, and you have a true "curved" surface. Did you know that Renderman can render beizers as beizers ? It's a whole new technology - I don't expect to see it in quake, but it exists.
The thing I can't understand is why quake boasts of "curves" when it is simply a result of rendering an increased polygon count ... but who cares ... The scene breaks up, curves or not, up close anyway. Secondly, what's the use of the spline-subdivision algorithm when the curve could be easily done in a 3d program ?
Just hype, I'm guessing. |
|
Back to top |
|
Giant Hamster member
Member # Joined: 22 Oct 1999 Posts: 1782
|
Posted: Sat Dec 30, 2000 3:32 am |
|
 |
Transcendent: yeah, vectors can be curved. but they are only mathematical. so you cant look at a vector. it has to be rendered out in a format that is viewable. polygons.
so its still polys.
------------------
-JameZ the Giant Hamster-
The Hamster Alliance
AIM: Gianthmstr
Multimedia Producer/designer/all of the above.,overall guru :)...and music music music! weee!! |
|
Back to top |
|
Ben Barker member
Member # Joined: 15 Sep 2000 Posts: 568 Location: Cincinnati, Ohier
|
Posted: Sat Dec 30, 2000 11:18 am |
|
 |
Thank you.
I know WTF I'm talking about here. I know the Quake engine inside and out.
There ARE other methods, but they aren't going to appear in games for a long time, if ever. So why even consider them? All of the other methods consist of keeping track of one point for every pixel. Essentially, no different from vertices, except there are no polygons to render.
When you render a curve in 3D, to the computer it is still several vertices in space, with perhaps tangent weights, and other intsructions to interpolate between the points. The line is still 2D. But slap a texture on it, and try to render it real time, with a clipping hull, and polygons are your ONLY solution.
So don't call me wrong until you know what you are talking about.
The reason Quake 3 boasts curves is because the level of approximation is completely dynamic, and the curves are concave. |
|
Back to top |
|
shahar2k member
Member # Joined: 01 Jun 2000 Posts: 867 Location: Oak Park CA USA
|
Posted: Sat Dec 30, 2000 3:54 pm |
|
 |
so basically the closest you can get to a curved surface using a pixel based display is to dynamically subdivide the curves so that no matter how far away from them you are each polygon section in the curve takes no more than one pixel in screenspace.
3D glossary for the artist, for all you people who'd like to know 3D games a bit better but don't want to learn to program.
http://www.mondomed.com/mlabs/glossary.html
I'd allso reccomend gaining some general knowlege of Open GL if any of you want to do art for the gaming industry, heh it helps, especially when talking to a programmer
Ben Barker, I've seen curved surfaces rendered using a non polygon engine (not voxel either), I can't remember when, but the program used completely parametric 3D curves, and competely real time, however the entire program consists of an Island terrain, and was software rendered.... I believe it was on flipcode.com some time ago... not sure though.
------------------
Maybe I'm paranoid... maybe it's you! |
|
Back to top |
|
Ben Barker member
Member # Joined: 15 Sep 2000 Posts: 568 Location: Cincinnati, Ohier
|
Posted: Sat Dec 30, 2000 5:11 pm |
|
 |
I think I know what you are talking about. While the landscape was completely parametric, it used dynamically generated polygons. I think it was called the Escape engine, or something like that.
2.5D voxel landscapes have been around in games for a while (like that one old helicopter game, I can't remember the name). They don't use polygons, however, the resolution is so low they look like shit IMO, and the only reason to really use them is the novelty of saying you didn't use polygons.
You can render parametric curves real time no problem. But problems arise when you try to do clipping, and size changes based on camera distance.
Check this out:
Here is a bezier spline rendered in 3D studio, real time, without polygons or voxels. It does have segments, though, even though I cranked them really high.
Notice how the line is the same thickness when I get far away as it is when I get close. That's because it doesn't really exist in 3D space like a polygon does, so it's rendered with a hack. But the hack doesn't take into account z depth. Just like particles were hacked in Q1 and Q2.
You CAN render the spline though.
And this time it does get smaller the farther away you get.
And you can even get really close:
No polygons, right? Well, put on force wireframe, and you can see that in fact polygons are generated at render time:
The same goes for NURBS. And in games it makes no sense really to use anything but polygons. 2.5D voxels maybe, and real voxel are out of the question unless you are doing really simple stuff. That's why the only voxel implementations you see today are for landscapes. They are really easy to do with voxels and displacement mapping.
There ARE ways to hack it, but they break down in the game environment, when you need z-depth, frustrum culling, collision detection, shit like that. Polygons are, therefore, really the only way to go.
[This message has been edited by Ben Barker (edited December 30, 2000).] |
|
Back to top |
|
shahar2k member
Member # Joined: 01 Jun 2000 Posts: 867 Location: Oak Park CA USA
|
Posted: Sat Dec 30, 2000 8:55 pm |
|
 |
actually I rather like the meathod Deta force 3: land warrior uses (I know many people don't) where they emulate voxels using triangle strips (I think)
I've seen it used better in tech demos, but I guess with game logic, physics and so on they had to cut back on the terrain graphics. thing is, I think that's the way to do terrain, once they optimise it enough.
but you'r right in practice, and with today's hardware, both real voxels, and the extruded voxels (comanche style) aren't very usefull, they just look chunky, plus, you piss off people like me who payed $400 for a 3D card, and nearly the same amount for the rest of their computer, because your 3D card can't do anything with boxels (as they should be called ) |
|
Back to top |
|
shahar2k member
Member # Joined: 01 Jun 2000 Posts: 867 Location: Oak Park CA USA
|
Posted: Sat Dec 30, 2000 8:58 pm |
|
 |
one question though, while were talking about 3D techniques, how exactly does the Q3 engine do colisions on the curved surfaces?
------------------
Maybe I'm paranoid... maybe it's you! |
|
Back to top |
|
Ben Barker member
Member # Joined: 15 Sep 2000 Posts: 568 Location: Cincinnati, Ohier
|
Posted: Sat Dec 30, 2000 9:45 pm |
|
 |
The Q3 engine generates a 'clipping hull' during compile time. Unlike the rendered curves, the clipping hull doesn't dynamically change. So if you jack the curve detail all of the way down (r_subdivisions 9999) people can actually disappear into curves.
I think when the clipping hull is generated, curves are treated as regular brushes with the faces inverted when it comes to clipping. They have a medium number of subdivisions. At least, that is how they are displayed in the map editor.
So an arch would be treated like a half cylinder, with wedge shaped brushes filling in the corners. Just think of the bounding box of the curve, and "invert" the volume.
Curves don't affect vis, or the portal division of the map at all.
It's funny, back when I made maps, you could do this trick where you renamed some files, and preserved the clipping hull of an old map while you walked around in a new version. So you and your weapons would be clipped by invisible walls, and you could walk right through others.
The problem with real voxel is that they are such a waste. If you have a cube of voxels, the majority are on the inside the volume and can't even be seen. You could do really cool stuff though, like having a "miner" class in TF that could tunnel anywhere. And artists wouldn't have to make crappy tiling textures. They could just paint the walls of the environment.
Speed will always be an issue, and polygons will always be faster than voxels. It will be years before you could pull of a voxel engine capable of those Q3 screenshots above. And by that time, you will be able to push millions of polygons and have huge textures. You will have curve segments smaller than a pixel, plus full screen antialiasing so you wouldn't notice anyway.
[This message has been edited by Ben Barker (edited December 30, 2000).] |
|
Back to top |
|
shahar2k member
Member # Joined: 01 Jun 2000 Posts: 867 Location: Oak Park CA USA
|
Posted: Sat Dec 30, 2000 11:04 pm |
|
 |
well, I was thinking of one interesting use for voxels (real) in a situation like the game "Worms" where you can dig dynamically through the ground, I mean with polys you'd probably either have to go with a Geomod system like volition's red storm, and ramp the polys up or you could try out for a metaballs like solution... but that's just voxels in disguise
maybe you could use voxels for charecters only? (you'd probably have to create fully segmented parts) and do full wound simulations... heh you'd have to actually create the internal organs when doing the charecters...
I guess that's why they use voxels for MRIs and CAT scans ...
heh I remember I used to do Quake 1 maps, and if you moved a brush at a speed of 1000, it would move instantly no matter how much you slowed the game down (host_framerate) I used to do maze maps that would change their layout instantly every few seconds.... then again my maps were never real fun to play, I never really released them...
------------------
Maybe I'm paranoid... maybe it's you! |
|
Back to top |
|
Ben Barker member
Member # Joined: 15 Sep 2000 Posts: 568 Location: Cincinnati, Ohier
|
Posted: Sat Dec 30, 2000 11:09 pm |
|
 |
Yeah, that would be awesome. Redstorm's deformable geometry is sort of cool, but it would be a million times better with voxels.
A good use for metaballs would be volumetric explosions that roll around corners, crawl across the ceiling, and down narrow pipes realistically.
Man, in 10 years games are just going to be awesome. |
|
Back to top |
|
|