Sculpted Prims: FAQ
Revision as of 21:59, 19 May 2007 by Dedric Mauriac (talk | contribs) (described links better than just "here")
Sculpted Prims: Frequently Asked Questions
- Q. What is a Sculpted Prim?
- A Sculpted Prim is a prim whose shape is determined by a texture. These textures are called Sculpt Textures. You can use sculpted prims to create more complex, organic shapes that are not currently possible with Second Life's prim system.
- Q. What is a Sculpt Texture?
- A Sculpt Texture or Sculpt Map is a standard RGB texture where the R (red), G (green) and B (blue) channels are mapped onto X, Y, and Z space. Sculpt Textures are similar to so-called "normal maps", but instead of encoding surface normals we encode surface positions.
- They are also similar to displacement maps, but instead of a single scalar distance we have three values — one each for the X, Y, and Z coordinates. Sculpt Textures are also very similar to parametric (e.g. NURBS) surfaces. See Sculpted Prims: Under the Hood for details.
- Q. Why use textures (images) to encode shapes?
- Using images to encode shapes comes in very handy because there are many existing tools for handling images. Image compression, streaming, progressive loading, and animation are all well-explored problems. For example, we could create a Quicktime stream which fades from one sculpt texture (sculpt map) to another. When attached to a sculpted prim, the prim would "morph" from one shape to the other. Another example: it would be easy to have a flash animation generate a sculpted prim — when a resident touches a spot on its surface, the shape could wiggle and ripple appropriately. This is the direction we are headed.
- Q. Where can I go to obtain or share Sculpt Maps and Textures?
- Q. How can I make a Sculpt Texture?
- The easiest way is to create a model in an external 3D software package and export a Sculpt Map for uploading. Members of the SL community have written several tutorials for Blender, an open-source 3D modeling platform. Qarl Linden has written an exporter for the Maya modeling program (code available here, installation instructions below). Exporters for 3D Studio Max and ZBrush will be available soon. Linden Lab has plans to provide a sculpt editor within the Second Life viewer. Check the Sculpted Prims: 3D Software Guide wiki page for more the latest developments; there's an ongoing discussion Sculpted Prims:Talk page.
- Q. How do i use the Maya exporter?
- Go to this page and copy the contents of the script. Paste it into your Maya script editor and save it. (Optionally, drag it into a button on your tool bar.) When you run the exporter script, it will pop up a dialog box with exporting options. Select which shapes you wish to export and press the "Export" button. The ideal candidate for export is a NURBS surface with no more than 16 isoparms per direction. You may also export polygon meshes — but you must first ensure that the poly-mesh has a perfect UV space (it must cover the entire surface and the space must have no holes).
- Q. Can Polygon Models be exported as Sculpt Textures (Sculpt Maps)?
- Yes, with care and with some restrictions. See the Sculpted Prims Talk page for details.
- Q. Can my 3D program do NURBS models?
- NURBS used to be the feature that separated professional-quality 3D modeling software from the rest, but the gap is narrowing. 3D Studio Max, Maya and Blender offer both NURBS and polygon modeling. Many other "free"/low cost programs like Google Sketchup, Milkshape, Wings3D and gMax do not. Rhino3d is a commercial program (though considerably cheaper than 3D Studio Max or Maya) that specializes in NURBS modeling. See the Sculpted Prims: 3D Software Guide page for an in-depth discussion of applicable 3D modeling software.
- Q. How detailed can a Sculpted Prim be?
- The current implementation samples the Sculpt Texture (or Sculpt Map) by different amounts depending on the "Level of Detail" or LOD. Prims which are close to the viewer camera have a 32 by 32 grid of vertices, which drops to 16 by 16 as the prim moves away from camera.
- Q. How big should my Sculpt Textures/Sculpt Maps be?
- The recommended size is 64 by 64 pixels. More data is really unnecessary — lower resolutions can result in bad sampling when the Level of Detail (LOD) changes.
- Q. Are there any size or distance restrictions on Sculpted Prims?
- Sculpted Prims use the same position, rotation, and size parameters that a normal prim has. For example, this means that the maximum distance from the center of a sculpted prim is 5m as prims can be no more than 10m from side to side.
- Q. Can "huge prims" be used to make "huge sculpties"?
- Yes, have a look at this snapshot.
- Q. The demonstration video shows a lot of smooth shapes. Can I use Sculpted Prims to make sharp corners and angles? What if I want to create more complex shapes?
- One issue here is the 8 bit precision on images, and the other issue is the jpeg compression applied to the data (all textures are converted into jpeg2000 format). The name "sculpted prim" was chosen to convey the idea of "approximate" shapes — but as you can see from the plate in the image above, "approximate" is pretty close to "exact". Furthermore, it wouldn't be hard to support 16bit images and higher precision/lossless compression in Second Life — but let's first see whether we need it.
With respect to sharp corners and angles, sculpted prims are quite similar to NURBS surfaces: A sculpted prim can have a more defined edge by dedicating more control points (vertices) to that area. At maximum resolution, a 32x32 pixel Sculpt Map would describe up to 1024 vertices (with each pixel representing a single vertex). The recommended sculpt map resolution is 64x64 pixels but in practice the highest level of detail for sculpted prims in Second Life is a grid of 32x32 vertices (larger images are downsampled), and the lower level of detail uses 16x16 vertices. If you need more vertices, split your model up into multiple prims. For reference, a torus-shaped prim in SL has about 1000 vertices.
- One issue here is the 8 bit precision on images, and the other issue is the jpeg compression applied to the data (all textures are converted into jpeg2000 format). The name "sculpted prim" was chosen to convey the idea of "approximate" shapes — but as you can see from the plate in the image above, "approximate" is pretty close to "exact". Furthermore, it wouldn't be hard to support 16bit images and higher precision/lossless compression in Second Life — but let's first see whether we need it.
- Q. With image pixels defining the position of the prim's vertices, will jpeg compression artifacts not skew the vertex positions?
- You're right, jpeg compression may lead to undesirable behavior in this area. LL is taking a wait and see position here — once people have built many sculpted prims and if there's a need, compression levels may be tweaked and support for 16bit textures might be added as well.
- Q. Can I make flexi sculpted prims?
- Not at present but it is planned for a future revision.
- Q. Can I make Sculpt Textures (Sculpt Maps) in Photoshop or other paint programs?
- Not easily, but with a technical understanding of sculpt textures it is possible to manipulate them. Check out the ongoing talk page discussions:
- Q. Can I preview Sculpt Maps in the Texture Upload window?
- Yes, the texture upload preview has a "sculpted prim" mode.
- Q. Can I texture a Sculpted Prim just like a regular one?
- Yes. Each sculpted prim has one texture face. The texture space of a sculpted prim is defined by the sculpt texture.
- Q. What about the UV mapping of the Sculpted Prim's single texture?
- You can use the texture scale/rotate/offset controls to position the texture on the sculpted prim. In terms of UV mapping, the sculpt map defines the texture space — the sculpted prim will have the same UV space as the object in your modeling program.
- Q. What happens if I use a normal texture instead of a sculpt map as the sculpt texture?
- The result is affectionally called "vertex vomit" — ... and no, it's not pretty.
- Q. What will be the associated LSL functions and PrimitiveParams arguments?
- Sculpted prims can be defined via LSL using llSetPrimitiveParams():
- llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_SCULPT, "uuid", PRIM_SCULPT_TYPE_SPHERE);
- llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_SCULPT, "uuid", PRIM_SCULPT_TYPE_TORUS);
- llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_SCULPT, "uuid", PRIM_SCULPT_TYPE_PLANE);
- llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_SCULPT, "uuid", PRIM_SCULPT_TYPE_CYLINDER);
- Q. How do sculpted prims work in the physics engine?
- At present, sculpted prims are approximated by a lopsided sphere that is roughly the same size as the sculpted prim. In the future, a more exact representation to the physics engine may be provided, thereby offering more realistic movement/collisions for sculpted prims.
- Q. This sounds like it might take some extra processing power — will there be limits or can I have 15,000 sculpted prims per sim?
- At a maximum of approximately 1000 vertices, sculpted prims have about the same "rendering weight" as a hollow torus prim. So no, they aren't more "expensive" to render, and you'll be able to fill your sim if you like.
- Q. Is this technology available in the viewer now? If so.. how can I play with this feature? I can't find it!
- Sculpted prims are available on the preview grid now.
- Q. When will Sculpted Prims be available on the Main Grid, using the Standard Viewer?
- We sincerely hope to have sculpted prims on the main grid within the next two months — but ultimately this will depend on the number of bugs we find and other external factors. The tentative release date is Wednesday, May 23rd.
See also
- Sculpted Prims
- Sculpted Prims Explained
- Sculpted Prims: 3D Software Guide
- Sculpted Prims: Textures
- Sharing Sculpt Maps and textures
- Sculpted Prims Creators Guide
External Links
- Sculpted Prims Announcement on the SL blog