Sculpted Prims: FAQ

From Second Life Wiki
Revision as of 21:36, 21 June 2007 by Wavez Sands (talk | contribs)
Jump to navigation Jump to search

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.


Q. Why use textures (images) to encode shapes?
  • An image is just an array of numeric triples, which is what you need for a sculpty, so why not? Also, using image formats to encode shapes comes in very handy because there are many existing tools for handling them. 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?

One way is to create a 3D model in an external 3D software package, and then export a Sculpt Map for uploading to Second Life.

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. There is also import/export for Wings3D. See Wings 3D, too.

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.

A second way is to calculate the texture directly using a programming language and the mathematics of the shape. For examples, see Rokuro or nand Nerd's | Sculpt Texture Generator.


Q. How do I create a Sculpted Prim from a texture?
  • First create a regular prim (any type). Then edit it, and in the object tab change the prim type to sculpted. You'll then be able to select the sculpt texture on that tab. The "Texture" tab will allow you to change the surface texture.


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)?


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?


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"?


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.


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. After making a Sculpt Texture (Sculpt Map), it seems to be 'inside out', when applied on a prim. What can I do to fix that?
  • This means the 'U' of the UV map needs to be reversed. Open the Sculpt Texture in any image editor and 'flip' it horizontally.


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?


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.

Users are discovering various ways to create UV-maps to aid in the creation of image textures.


Q. What happens if I use a normal texture instead of a sculpt map as the sculpt texture?
  • The result is affectionately called "vertex vomit" — ... and no, it's not pretty.


Q. What will be the associated LSL functions and PrimitiveParams arguments?
llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_SCULPT, "uuid", PRIM_SCULPT_TYPE_SPHERE]);

The following parameter combinations will be supported in a future version of the viewer:

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.

If you stand or sit on one, you might sink in, or you might levitate. 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 main grid as of release 1.16.0 made on 23 May, 2007.

See also

External Links