prims vs. polys
|
|
Strauss Ulderport
Registered User
Join date: 3 Dec 2007
Posts: 326
|
01-02-2008 13:15
In other gaming clients I have run that uses custom content, such as neverwinter nights 1 and 2, the limits of said client are measured in polys.
Here on SL it seems a 'prim' is some kind of rough equivalent. (Why they just don't measure items and avatars in polys like every other developer is perplexing but another topic for another time). Has it ever been defined how many polygons make up a prim?
This is simply a case of my own curiosity more then anything else. I simply like to know the hows/whys of a client.
Thanks for any info.
_____________________
Strauss Ulderport -------------------- Owner of NightHallows Lair Industrial, Goth, Darkwave & Techno music venue www.nighthallowslair.net
|
|
2k Suisei
Registered User
Join date: 9 Nov 2006
Posts: 2,150
|
01-02-2008 13:27
I think you're right, it probably would've been a good idea to set the restiction on polys used rather than prims. After all, 100 tori are much more demanding than 100 cubes.
and who wants to live next door to a person with a house made from 250 twisted torus prims?. Or imagine if Homer Simpson with all his frigging doughnuts came to SL!. I tell you, he'd not be welcome in my neighborhood!.
You can count the polys yourself if you enable wireframe mode (Ctrl - Shift - R)
|
|
Meade Paravane
Hedgehog
Join date: 21 Nov 2006
Posts: 4,845
|
01-02-2008 13:39
They're probably measuring based on the server-side impact, not the client-side impact. Stored assets, stuff rezzed in-world and stuff sent to clients are all prims, not polygons..
_____________________
Tired of shouting clubs and lucky chairs? Vote for llParcelSay!!! - Go here: http://jira.secondlife.com/browse/SVC-1224- If you see "if you were logged in.." on the left, click it and log in - Click the "Vote for it" link on the left
|
|
Strauss Ulderport
Registered User
Join date: 3 Dec 2007
Posts: 326
|
01-02-2008 13:40
From: 2k Suisei I think you're right, it probably would've been a good idea to set the restiction on polys used rather than prims. After all, 100 tori are much more demanding than 100 cubes. and who wants to live next door to a person with a house made from 250 twisted torus prims?. Or imagine if Homer Simpson with all his frigging doughnuts came to SL!. I tell you, he'd not be welcome in my neighborhood!. You can count the polys yourself if you enable wireframe mode (Ctrl - Shift - R) Since a certain number of polys = a prim its not just a matter of changing the name as you imply. If 1 poly = 1 prim then your comment would have merit. My question is what is this variable x. Thanks for letting me know about the wireframe mode but that still does not answer the question.
_____________________
Strauss Ulderport -------------------- Owner of NightHallows Lair Industrial, Goth, Darkwave & Techno music venue www.nighthallowslair.net
|
|
Strauss Ulderport
Registered User
Join date: 3 Dec 2007
Posts: 326
|
01-02-2008 13:41
From: Meade Paravane They're probably measuring based on the server-side impact, not the client-side impact. Stored assets, stuff rezzed in-world and stuff sent to clients are all prims, not polygons.. so you are saying the resouce size that equals a prim varies? Thats a scary thought if true... o_O
_____________________
Strauss Ulderport -------------------- Owner of NightHallows Lair Industrial, Goth, Darkwave & Techno music venue www.nighthallowslair.net
|
|
Meade Paravane
Hedgehog
Join date: 21 Nov 2006
Posts: 4,845
|
01-02-2008 13:53
From: Strauss Ulderport so you are saying the resouce size that equals a prim varies? Er.. Nope, I don't think so. If it did, they might 'charge' more for a torus then they do for a cube.. edit: totally mis-read the OP.. Ignore me.. 
_____________________
Tired of shouting clubs and lucky chairs? Vote for llParcelSay!!! - Go here: http://jira.secondlife.com/browse/SVC-1224- If you see "if you were logged in.." on the left, click it and log in - Click the "Vote for it" link on the left
|
|
Desmond Shang
Guvnah of Caledon
Join date: 14 Mar 2005
Posts: 5,250
|
01-02-2008 13:53
Yes, it's defined - you can get a sense of what costs what, polywise, from wireframe mode yourself fairly easily. There are only a few basic shapes, + sculpties. The reason things aren't defined as you might think, may be best explained in terms of practical consumer education and average use. Just try telling a first time user what a prim is. Abstraction to polys is yet another level down. Second Life succeeds because it's the good 'general case' where regular people can develop things, however inefficiently. I've seen maybe... 1 in 1000 examples of professional digital content design, and that's including successful business types. VERY few know how to optimise properly for the platform we have here, and worst of all, that optimisation target changes with regularity (serverside hardware, local client software, region software version, minimum client hardware &c &c). Many think they do however. One of the signs you are in a place where someone really has a clue, is that a place loads remarkably fast when it seems it has absolutely chance of being able to do that, considering what's available there. PixelDolls is a good example, or was... I think they last optimised over a year ago now. Your average SL user stands little chance of doing what Nephaline and Neil have done, so... using 'prims' is generally enough understanding to get most people through the day. In any case, people tend to load down a region to 'unacceptable lag plus a little bit' no matter what you tell them, or how much understanding they do or don't have.
_____________________
 Steampunk Victorian, Well-Mannered Caledon!
|
|
Snowman Jiminy
Registered User
Join date: 23 Dec 2007
Posts: 424
|
01-02-2008 13:55
From: Strauss Ulderport so you are saying the resouce size that equals a prim varies? Thats a scary thought if true... o_O Have you ever seen a slow rezzing cylinder or sphere? They start off with angles, then eventually become smooth as the polygons increase and the curves are redrawn.
|
|
Desmond Shang
Guvnah of Caledon
Join date: 14 Mar 2005
Posts: 5,250
|
01-02-2008 13:57
...and yes, a torus has a whopping poly impact, compared to a prim cube. This all pales, compared to other factors though. Stand in a region and when someone tp's in with a draw distance of 64m, watch the time dilation spike. Then watch someone do the same, only with RenderFarClip set to 2048. Actually, when they arrive, go eat dinner and then come back. Sometime after the coffee settles, you'll appreciate that prims with various polycounts are a factor in performance, but as a factor it's completely engulfed by other things that can 'happen to you' out there.
_____________________
 Steampunk Victorian, Well-Mannered Caledon!
|
|
Lindal Kidd
Dances With Noobs
Join date: 26 Jun 2007
Posts: 8,371
|
01-02-2008 13:58
From: Desmond Shang ... VERY few know how to optimise properly for the platform we have here, and worst of all, that optimisation target changes with regularity (serverside hardware, local client software, region software version, minimum client hardware &c &c). Many think they do however. One of the signs you are in a place where someone really has a clue, is that a place loads remarkably fast when it seems it has absolutely chance of being able to do that, considering what's available there. PixelDolls is a good example, or was... I think they last optimised over a year ago now. Desmond, that's intriguing, but not entirely helpful. Now I want to know how to optimize properly, and be one of those "one in a thousand". Can you recommend classes, textbooks, mentors??? Relevant posts in the builders' forums, maybe?
_____________________
It's still My World and My Imagination! So there. Lindal Kidd
|
|
2k Suisei
Registered User
Join date: 9 Nov 2006
Posts: 2,150
|
01-02-2008 13:58
From: Strauss Ulderport Since a certain number of polys = a prim its not just a matter of changing the name as you imply. If 1 poly = 1 prim then your comment would have merit. My question is what is this variable x. Thanks for letting me know about the wireframe mode but that still does not answer the question. I'm not really sure what you've just said. But as far as I'm aware nobody has created a list showing how many polys make up each prim. The number of polys depends on whether the prim is hollow and whether it's been cut etc. Here's my rough list: Hollow Torus=OMG LOADS FFS! Torus=Lots!! Sphere=Quite a lot Cube=Not so many
|
|
Ordinal Malaprop
really very ordinary
Join date: 9 Sep 2005
Posts: 4,607
|
01-02-2008 14:02
To be frank I imagine the Linden reaction to a proposal that things be counted by polys rather than prims - or rather, some sort of average poly usage, since different factors affect how many polygons are actually displayed, as noted above - would be along the lines of "Ecccchhh! Let's not open that particular worm-can, how about that." Prims appear to be easily counted, and can you imagine the social reaction to a change?
_____________________
http://ordinalmalaprop.com/forum/ - visit Ordinal's Scripting Colloquium for scripting discussion with actual working BBCode!
http://ordinalmalaprop.com/engine/ - An Engine Fit For My Proceeding, my Aethernet Journal
http://www.flickr.com/groups/slgriefbuild/ - Second Life Griefbuild Digest, pictures of horrible ad griefing and land spam, and the naming of names
|
|
Ceera Murakami
Texture Artist / Builder
Join date: 9 Sep 2005
Posts: 7,750
|
01-02-2008 14:02
From: Strauss Ulderport Since a certain number of polys = a prim its not just a matter of changing the name as you imply. If 1 poly = 1 prim then your comment would have merit. My question is what is this variable x. Thanks for letting me know about the wireframe mode but that still does not answer the question. There is no single answer for X, even for a single prim type. The problem is, it depends on the shape of the prim and what you've done to it. A 0.5 x 0.5 x 0.5 cube prim is 12 polys. Each of the six faces is divided into two triangular polygons. Cut that prim to 0.250 start with the Path Cut option, and now it is many more polys, as the two exposed cut faces now require two polys each, and I think the ends now need to be subdivided into more polys. Hollow that cut prim, and it takes even more. Twist it? LOTS more polys! And that is with the most basic prim shape. Predicting poly count on a heavily prim-tortured torus is best left to a math genius.
_____________________
Sorry, LL won't let me tell you where I sell my textures and where I offer my services as a sim builder. Ask me in-world.
|
|
Irene LeShelle
Disruptive Resident
Join date: 7 Jan 2007
Posts: 115
|
01-02-2008 14:05
From: Strauss Ulderport so you are saying the resouce size that equals a prim varies? Thats a scary thought if true... o_O Not really The rendering of the objects (prims) are done by the client. Not all client computers have the same graphics power and capabilities. Each user can select the level of detail they want in the rendering. You know about the "mesh detail" on the "graphics" tab in the Preferences menu. Here you can set the desired level of details for things like objects, flexiprims, avatars etc. A sphere prim can be rendered using, say maybe 50 polygons on a low details setting and maybe 250 polygons on a high details setting (the numbers 50 and 250 are just a wild guess). This is up to the client to decide. And since the objects (prims) in a sim/region are stored on the server (the server containing the sim/region), information about every object has to be transmitted from the server to every client which has an avatar present in the region. Prims only require a relative low amount of storage for each prim. Such as type, position, size, rotation, texture and other parametic values for the prim. On the other hand, if the object was defined as polygons, a huge number of polygons would have to be stored for each object. This huge number of polygon information would then have to be transmitted to the client for rendering. Then if there are 20 avatars present in the region, the same huge amount of information would have to be transmitted to all 20 clients. Some of the prims are complicated structures, like the standard Linden plants. They only occupy 1 prim each and to transmit info to a client basically only requires things like "Linden plant type 1", position x,y,z, rotation x,y,x and maybe a few other things. Just imagine the amount of polygons that would need to be transmitted to describe a standard Linden plant.
|
|
Ollj Oh
Registered User
Join date: 28 Aug 2007
Posts: 522
|
01-02-2008 14:26
For the SL server data transmission time counts more than the clients render time. For less traffic you have .jpg and parameters setting a set of shapes. For faster render time you have downsampling.
A prim seems to have 32x33 verticles max. For a Torus thats 32x33x2 triangles, Cylinder and Sphere have 32x33x2-32 and Planes 32x33x2-32-33.
But you only see that many (~2080 polygons) if the prim is not path cut a lot AND close up AND high detail settings AND if the prim is twisted or round or hollow or a flex prim or a scupted prim. Othersise you see only hundreds of polygons per pim.
SL has a wireframe mode, its funny useless.
|
|
Desmond Shang
Guvnah of Caledon
Join date: 14 Mar 2005
Posts: 5,250
|
01-02-2008 14:29
From: Lindal Kidd Desmond, that's intriguing, but not entirely helpful. Now I want to know how to optimize properly, and be one of those "one in a thousand". Can you recommend classes, textbooks, mentors??? Relevant posts in the builders' forums, maybe? One of the best, most open sources has been (if I recall correctly Neil and Nephaline's blog, explaining what they did to take care of PixelDolls back in the day). Another great resource (and do NOT punish her with questions!!!) is Hypatia Callisto especially in regard to how to properly create a sculptie in terms of quick loading, good LOD, clean design and so forth. Aminom Marvin is another expert in this field, take one look at how clean and sharp his designs are. It's no accident, and it's a LOT more than just some vertex manipulation. I don't think either have tutorials, but it's a must-read if they ever do. Scripting - poke around Ordinal's shop and scripting forum. There is such a thing as beginning (bad) scripting, midrange quality scripting, and soaking the last bleeding scrap of goodness out of an instruction cycle. Ordinal and Barney Boomslang - they don't always push it that hard, but there's the gateway to scripting performance. There are others of course - I can think of a lot of top, top, top scripters - Dominic Webb, Davan Camus, others. But they aren't as transparent as Ordinal with teaching and examples, or as into the Creative Commons licencing as Barney is. Textures - I hardly know where to begin. If you aren't baking textures, mapping and offsetting them and reducing your overall texture count that way - well, there's the #1 error in SL. SL *likes* big textures! A 1024x1024 pixel texture is evil, we commonly hear... but that texture can be 16 times more efficient in terms of asset server hits, compared to loading the equivalent in 256x256 textures. Same thing visually, 1/16th the asset server abuse. If you slap 3 512x512 textures on one prim, odds are, you have a lot of learning to do. Informed building - this may be an 'obvious' one, but - Aimee Weber. It's absolutely no accident she's done so well, and her book on the basics (with Kim) is exactly what SL needs - a way to take a horrific builder and make them into a reasonable one, without bending their brain inside out. You can't teach the basics well without deep, deep, deep understanding of the advanced. Aimee's kind of the Anshe Chung of content creation - in fact, content creation is so tightly coupled with business (seriously!) one would do well to study what she's done historically, and how. Artistry. The big, big, big, Big one. You can be technically gifted, but basically it comes down to *expressing yourself in the medium* - period. Persephone Gallindo. Words fail. Pop into the Caledon Gaiety theatre sometime (east side of Caledon Penzance) - the balance of light, form, informed historic design, a sense of space, the generated vibe - it's not even funny, everyone I've seen go in there - a dozen master builders have declared that theatre the best build in SL on the spot. Like Woody Allen, she makes a variety of 'seeming mistakes' in the art form - she's not a builder's builder; the place isn't highly optimised; it's not even finished with the scripting touches it needs (doors, lighting &c). But the expression of art within the media is astounding. She's Broadway, not Bits, and you are likely to *never* get a tutorial out of her. You would need a lifetime of historic understanding, a knowledge of history, art, and an inspired sense of what people see, through their own eyes. Think I'm kidding? Check it out. A few others are very introverted - I dread bringing up their names in case they would deeply not appreciate it, but kick around Seacliff and Hyasynth Tiramisu's sim, and you'll see some amazing leads there. ...so, I fail yet again, to help. These people don't really write tutorials. For that... prolly your best leads are Torley, and Vlad Bjornson. Vlad's another amazing artist in his own right, like Aimee with deep understanding, but keeping it simple so people don't fall off the deep end trying to follow along. *hangs out as Ordinal AR's Desmond for namin' names...* 
_____________________
 Steampunk Victorian, Well-Mannered Caledon!
|
|
Oryx Tempel
Registered User
Join date: 8 Nov 2006
Posts: 7,663
|
01-02-2008 14:49
From: Lindal Kidd Desmond, that's intriguing, but not entirely helpful. Now I want to know how to optimize properly, and be one of those "one in a thousand". Can you recommend classes, textbooks, mentors??? Relevant posts in the builders' forums, maybe? I'm with Lindal on this. How/where do we learn? [Edit: Whoops, Desmond beat me to it. LOL!]
|
|
Graphicguru Gustav
Accepts head scritchings!
Join date: 5 Oct 2007
Posts: 775
|
Unless I am way off base here
01-02-2008 15:09
So... for 3D content that is uploaded into SL we may want to call the subdivisions 'NURBS' and not Polygons...so prims are made up of nurbs. Unless I am way off base here. I use a 3D application (Animation Master) that final models from it are polygonal (triangles) in nature that needs to be converted to nurbs. Once they are converted and uploaded they literally 'blob' and become useless...So I am in the process of purchasing Maya (ouch what a costly program!) Where native models are nurb in nature. So if anyone knows of a freeware program for creating true 'nurb' sculpties that will work just as well in SL it would be greatly appreciated
_____________________
I am officialy lurking the forums, trying real hard to not be noticed... Junk & stuff I do... http://tinyurl.com/3549gg
|
|
Void Singer
Int vSelf = Sing(void);
Join date: 24 Sep 2005
Posts: 6,973
|
01-02-2008 17:54
two fold problem any given prim rezzed stretched and resized has a set number of polys...
BUT given that same prim, as Ceera stated above if you add cuts, and hollows that count goes up...
I think what's being looked for here is a comparitive analysis, and while I don't know offhand I seem to remember some min/max details being posted at one time in the building forum.
as a general rule, the more complex the shape, the more polys, so loading in tons of sculpties and twisted torii should be avoided... best to make shapes as simple as possible while keeping a desired level of realism.
_____________________
| | . "Cat-Like Typing Detected" | . This post may contain errors in logic, spelling, and | . grammar known to the SL populace to cause confusion | | - Please Use PHP tags when posting scripts/code, Thanks. | - Can't See PHP or URL Tags Correctly? Check Out This Link... | - 
|
|
Sweet Primrose
Selectively Vacuous
Join date: 30 Nov 2006
Posts: 375
|
01-02-2008 18:35
"who wants to live next door to a person with a house made from 250 twisted torus prims" The average prim hair count is pretty close to that now. 
|
|
Qie Niangao
Coin-operated
Join date: 24 May 2006
Posts: 7,138
|
01-02-2008 19:14
But isn't the server-to-client download of prim parameters, well, prim parameters? Now, yeah, a torus has more type-specific parameters than a sphere (11 versus 5), but for downloading purposes, it hardly matters if it's hollow or twisted or tapered--same number of parameters, right? (I'm omitting sculpties here, which have just 2 type-specific parameters, but one of them is a wolf in sheep's clothing.) AFAIK the pain of complex prims is in the client rendering, and (for non-phantom objects) collision calculations. For rendering, polys are extremely relevant, but ease of rendering would be a strangely artificial thing with which to limit sim capacity. I don't know what collision algorithms are used; I have plenty of evidence that they're flawed, but whatever they are, they must be more complex for the more complex prim shapes... so that should have an impact on physics, whenever an approaching avatar threatens to bonk into a prim. I'm not sure if polycount would be a good proxy for this particular complexity or not. (Avatar count surely is, though.  )
|
|
Janice Betsen
Registered User
Join date: 29 Aug 2007
Posts: 95
|
01-02-2008 21:44
A prim is an equation; actually a system of equations that describe the whole, the hollow the limits of rotation, etc. A polygon is a matrix. As any math geek can tell you, a matrix is really just a system of equations. Therefore, the Order as far as the server is concerend is 1 prim = 1 polly.
How many polygons make a prim is handeled client side by the graphics card and can very depending on prim type, prim size and camera distance. As a rule, the bigger it is on your screen, the more polygons it takes.
Yes, many games are concerned with poly count. To make the best look with the fewest prims is the goal. Second Life, however, is all about user creation. Giving the users prims and the ability to manipulate them make building not only easier but possible for the vast majority of players.
|
|
Crystal Falcon
Registered Silly User
Join date: 9 Aug 2006
Posts: 631
|
01-03-2008 12:21
As others have pointed out, to SL, prims are not a bunch of polygons at all, but rather 2D extruded shapes, and they are drawn by the viewer with a different number of polygons depending on many factors, the most significant of which apparently is lighting!  Now I see why megaprims don't like being lit at all... from  From: Andrew Linden All SL primitives are an extruded profile (square, circle, triangle, semi-circle) with profile transforms (cut, hollow, cut) along some path (line, circle), with transforms along that path (scale, twist, skew, adv cut) .... from  From: Karsten Rutledge While working on a project this afternoon, I switched to wireframe mode and noticed that at about 20m out from a standard cube (no twists, no hollows, no shears, just a basic cube) that the triangle count was 2 per face. As I zoomed closer, it went from 2 to 8 triangles, and then from 8 to 18 triangles as I got closer. Why? from  From: Runitai Linden Lighting.
Light values are calculated per vertex. For better lighting, you need more vertices. Suppose a cube 10m to a side has a light with a range of 4m placed near the center of one of its faces. ... Ever wonder why we don't have other types of lighting? Runitai explains in the rest of that post how laggy it would be...  So I guess the answer is that polygons are kind of irrelevant since only your graphics card knows about them? (We know the sim's physics engine has it's own representation of prim shapes, has anyone heard how that is calculated?)
|