My Sims games spend a lot of time reticulating splines.I looked up both words. I still don’t understand. Can someone explain?
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.
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.
Here we go. From http://www.eeggs.com/items/333.html:
Hope this helps.
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
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.
Yeah ultrafilter, that helped!
[sub]…make me feel real stupid.[/sub]
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.
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.
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.
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
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.
There’s a highly mathematical page that explains a bit
about NURBS here:
http://www.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
What’s a spline?
(from The Jargon File)
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.
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.
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.
It’s a reference to Sim City 2000. It said that when you created a new landscape.
Mmmm… reticulated splines. They’re better fresh, but they’re out of season now.
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.
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 ~