PDA

View Full Version : What are splines and why should the be reticulated?


Biggirl
09-26-2001, 09:38 PM
My Sims games spend a lot of time reticulating splines.I looked up both words. I still don't understand. Can someone explain?

Qwertyasdfg
09-26-2001, 09:40 PM
Thats just Will Wright's (the creator of the Sims series) sense of humor. He wanted something that sounded fancy, but didnt mean anything. I think he was sucessful.

ultrafilter
09-27-2001, 10:27 AM
It might be a graphics thing--I'm pretty sure that both terms are used in the field of computer graphics. I'll ask one of my friends who does that kind of stuff.

ultrafilter
09-27-2001, 10:35 AM
Here we go. From http://eeggs.com/items/333.html:Reticulating Splines: Constructing network based functions that are defined by divisible intervals while approximating said network and composing it of pieces of simple functions defined on subintervals and joined at their endpoints with a suitable degree of smoothness.
-- Will Wright (from http://simz.gamenation.com/)Hope this helps.

ModernRonin2
09-27-2001, 02:21 PM
I took a graduate level computer graphics programming class in College, I think I can boil it down a little bit...

A spline is a smooth curve. Generally it means a smoothly curvy line. This is important in computer graphics right now because computer have a hard time dealing with smooth curves and most graphics programs would rather represent everything as if it were tiled with little flat tiles (polygons). But the human eye finds smooth surfaces much more realistic looking. Thus it's better to use splines whenever possible. But you have to have a fast computer and reasonably smart software, or it'll take forever to draw the picture on the screen. (Ever used a raytracing program?)

As for "reticulating", it seems to have something to do with the process of constructing or connecting several things together so as to form another. Or maybe the process of decomposing a complex thing into smaller simpler ones that, when added together, equal the original complex thing.

So my best guess (provided this isn't just a joke on Will Wright's part) is that somewhere in the deep guts of the Sims program, it wants to draw splines. But it has to cut big splines up into little pieces in order to process them efficiently enough. And all the little splines have to match up so that if you string them together they look just like the original big one did.

For example, imagine you have a really jagged line that jumps up and down a lot. You want to copy this line. But you don't want to copy it pixel by pixel, because that would be slow as heck. What you can do, maybe, if you're smart enough, is to cut it up into pieces. If you choose the cutting points intelligently enough, you can probably represent this jaggy line by several shorter straight ones, joined end to end. Then you compute and store the mathematical formulas for these smaller lines. When
you want the computer to draw the jaggy line again, you
just tell it, "draw this series of small, straight lines, joined end to end."

Now think of the same thing, except with a wildly curvy line instead of a jagged one. That's "reticulating a spline". Do it for more than one spline, and you're "reticulating splines."

So, I guess the best restatement is: "pre-processing curved surfaces so as to be able to draw them onto the screen in a fast and efficient manner."


-Ben

Biggirl
09-27-2001, 02:30 PM
Splines are curvy lines. Reticulating splines now makes some sort of fuzzy sense to me. I actually thought it could be a nonsense phrase but not too funny considering how long it takes my computer to do it.

Biggirl
09-27-2001, 02:33 PM
Yeah ultrafilter, that helped!

...make me feel real stupid.

waterj2
09-27-2001, 02:44 PM
And while we've got the spline experts here, could someone fill me in as to the meaning of non-uniform rational b-splines? IIRC, that's what NURBS (3D Studio Max uses NURBS curves as an improvement on bezier curves) is an acronym for.

But you have to have a fast computer and reasonably smart software, or it'll take forever to draw the picture on the screen. (Ever used a raytracing program?)
I've played around a bit with 3D Studio Max on my Pentium 200MHz running Windows NT. Rendering stuff (especially raytraced stuff) involved finding something else to do for a while. But I did make some nice preliminary designs for the skyscraper I want to build.

ultrafilter
09-27-2001, 03:12 PM
Originally posted by Biggirl
Yeah ultrafilter, that helped!

...make me feel real stupid.

Sorry...I was more showing that it's not just a nonsense phrase. If it makes you feel better, I also have no idea what that means.

ModernRonin2
09-27-2001, 03:19 PM
If I'm remember right, "b-spline" is short for "Bezier Spline". These are a slightly more mathematically complex (and therefor slightly slower to draw) kind of spline whose shape is determined by 4 control points. (A regular spline is determined by 3.) The practical upshot of this is that you can control not only the endpoints of the spline, but you can also control the slope of the tangent line at the endpoints. This is really handy when stringing multiple splines together - you can make sure the slope of two adjacent spline segments match up at the point where they meet. So, the point where the two splines meet will always be smooth and continuous, it'll never have a sharp corner or point. This makes it a lot easier to string splines together to make complex curves that form a smooth whole. So that's the "b-spline" part of "Non-uniform, rational, b-splines".

As for non-uniform and rational, I would suspect they also talk about obscure mathematical properties of NURBS that are helpful in making realistic looking curved surfaces. Also, seems to me that NURBS are usually 3-D, as opposed to 2-d curves. So I guess I would say that they're "Bezier spline patches" - that is, little squares that can have smooth 3-D curves in them.

I don't know a lot about CG, so I'm not entirely sure what NURBS are used for, but my suspicion is that anytime you want to create a curved 3-D surface out of smaller curved 3-D patches, and that is reasonably fast to render, and still looks realistic, you're going to end up using NURBS of some sort.

In short, it's all part of the same game: tricks to get the computer to draw realistic-looking curved surfaces onto a computer screen fast enough to fool the human eye and brain into perceiving it as if it were real.

In an ideal world we'd have essentially limitless computer power, and we'd just ray-trace everything. But computers these days aren't nearly fast enough to do that, so we have to resort to "good enough" solutions like splines and NURBS and etc...


-Ben

Biggirl
09-27-2001, 03:34 PM
Originally posted by ultrafilter

Sorry...I was more showing that it's not just a nonsense phrase. If it makes you feel better, I also have no idea what that means.

Yes, that actually does make me feel better. I got to ". . .and composing it of pieces of simple functions defined on subintervals. . ." and blew a reading comperhension gasket in my brain.

ModernRonin2
09-27-2001, 03:38 PM
There's a highly mathematical page that explains a bit
about NURBS here:

http://cl.cam.ac.uk/Teaching/2000/AGraphHCI/SMEG/node5.html

Some of this might make a little bit of sense if you're really, really lucky. You might recognize X, Y and Z as the 3-D coordinates of a point. But what the hell is this "W" thing? And they keep talking about "transformations." Etc, etc.

I understand it a bit more, having coded up programs to implement equations similiar to these. Suffice it to say that computer graphics involves a LOT of math, and the methematical tricks that get used off to get everything running fast enough to be tolerable are truly awe-inspiring. If you ever wonder why computer geeks worship John Carmack, the guy who wrote the graphics engines for Doom and Quake, look at this page and realize that Carmack eats stuff like this for breakfast - and then comes back for seconds. And when he's done, THEN goes and makes a kick-ass video game out of it.


-Ben

douglips
09-27-2001, 03:48 PM
What's a spline? (http://tuxedo.org/~esr/jargon/html/entry/What's-a-spline.html)
(from The Jargon File (http://tuxedo.org/~esr/jargon/html/index.html))

waterj2
09-27-2001, 03:52 PM
Some of this might make a little bit of sense if you're really, really lucky. You might recognize X, Y and Z as the 3-D coordinates of a point. But what the hell is this "W" thing? And they keep talking about "transformations." Etc, etc.
Actually, I took a class in the mathematics of computer vision, and covered a bit of projective geometry, which is what that is. The w is there to allow you to represent infinity. The point (x, y, z) becomes (x, y, z, 1) unless you want to talk about infinity (the vanishing point). I can't really remember much anymore, and didn't do well in the class to begin with.

Great, now you've caused flashbacks to proofs involving bizarre matrix math and stuff.

Flymaster
09-27-2001, 03:59 PM
The important thing here, however, is that the Sims (along with SimCity2000) is doing none of this, but rather just puts the words on the screen because Will Wright liked the phrase.

Punoqllads
09-27-2001, 04:29 PM
First, The Sims does not use 3D graphics, instead merely splatting sprites onto the screen. Any splines used would, at most, be for creating paths for objects to move along inside the world. I'm guessing Qwertyasdfg has the right answer.

Second, B-splines are not Bezier splines. Bezier splines pass through the endpoints of the spline, whereas B-splines do not. On the other hand, B-splines have some nice properties for matching up the surface properties for adjoining curves, while Bezier splines are trickier to get two adjoining curves to smoothly match up. Looking in preview, I see ModernRonin2 has linked to a page that more fully explains NURBS, albeit with more jargon.

A "transformation" is a mathematical way to take information from one frame of reference, and place it into a different frame of reference.

The "W" dimension, as waterj2 notes, is for projective geometry. A point in "eye space" (an object's coordinates that have been transformed into the viewer's frame of reference) with coordinates (X, Y, Z, W), gets transformed into the "screen space" coordinates (X/W, Y/W, Z/W), where (X/W, Y/W) is the location on the screen the point would appear, and Z/W is how far from the viewer the point is.

ElwoodCuse
09-29-2001, 05:38 PM
It's a reference to Sim City 2000. It said that when you created a new landscape.

labradorian
09-30-2001, 06:05 PM
Mmmm... reticulated splines. They're better fresh, but they're out of season now.

Chronos
09-30-2001, 10:32 PM
Incidentally, if my dad's to be trusted, the original meaning of "spline" was a "straightedge" that could be bent and curved, to be used for drawing a smooth (albeit not particularly mathematical) curve through points on a drawing. He does actually have such a device, so it may well be true.

Triskadecamus
09-30-2001, 11:07 PM
Chronos,

Trust your dad.

However, tell him that before they were drawing instruments, they were thin pieces of wood, used to join curving pieces being glued together, or otherwise joined in such a manner that a guide or bracing piece was needed.

In the late 1800's draftsmen began using splines to rule curves between two points, and the fact that curves made with a uniformly springy little drafting spline also met the mathematical definition of spline, specifically a curve between any two points having a continuous first and second derivative. I personally think the math guys borrowed the term from the draftsmen, who had taken it from the cabinetmakers, a century before. Now the computer guys are using it again, for a related, but subtly different meaning.

Tris
----------------------
"Cabbage: A familiar kitchen-garden vegetable about as large and wise as a man's head." ~ Ambrose Bierce ~

dqa
09-30-2001, 11:27 PM
From Merriam-Webster (http://m-w.com)
Spline
Etymology: origin unknown
Date: 1756
1 : a thin wood or metal strip used in building construction
2 : a key that is fixed to one of two connected mechanical parts and fits into a keyway in the other; also : a keyway for such a key
3 : a function that is defined on an interval, is used to approximate a given function, and is composed of pieces of simple functions defined on subintervals and joined at their endpoints with a suitable degree of smoothness

Achernar
10-01-2001, 01:56 AM
Sim City 2000 maps are based on a 256256 grid of squares, each with its own elevation. Granted, the possible elevations are discrete, rather than continuous, but there is a certain smoothness to the map if you look at the medium-scale structure. I always assumed they drew a smaller network, say 1616, of random elevations, and connected them with a smoothing function in both dimensions. While this process may not technically be reticulation of splines, it's kind of close. It does sound darn cool when that voice says "reticulating splines".

I agree that when The Sims says it, it's simply a reference to SC2K, even though The Sims landscapes are based on similar grids.

Best Topics: rocky drinking eggs nordstrom doc martens mr kobayashi serengeti sunglasses review glory hole wisconsin mediacom message boards butter on pancakes diopters magnification cute opossum loose pussy jokes what's my motivation understand your rights car chime zzzquil ingredients fictional spiders fire temp sewing machine leg transitions glasses reviews increase symbol average basement temperature roman toe harlequin movies vodka freezers define papi draino in toilet guy de lombard craigs personal pretzels and mustard showering after sunburn signature pick 5 cocktail etymology endearment words foul ole ron regrowing toenail duracell ultra platinum agm battery reviews daytime population of manhattan can i put gas in a milk jug how to harden clay egr valve ford escape 2002 bob crane sex films door ding repair cost cost to replace circuit breaker got kicked out of college the ____ argues that since an infinite causal chain is impossible, god must be an uncaused cause. les schwab credit card payment sarah palin pornstar lookalike shower curtain or liner walgreens pharmacy return policy poop stuck in hair countertenor singers in pop music pumped a lot of tane down in new orleans how to put transmission fluid in a 2003 ford explorer where to buy propylene glycol usp remove warning labels and let he is risen or he has risen axe me a question at what temperature does beer freeze in a car living things that don't need water gasoline or propane generator batman quiet or papa spank heart of the palm how to win at ring toss is sun tea dangerous rotten tomatoes city of god can bleach whiten your teeth the incal fifth element songs with only one word stove top french fries