Talk:Sculpted prim
Of the ways of incorporating mesh into SL this is by far the most sane. Mind posting some example textures? Frame based llSetTextureAnim would be cool too. -- Strife Onizuka 12:04, 27 April 2007 (PDT)
- [1]
- Woot ^_^ thx. -- Strife Onizuka 14:45, 27 April 2007 (PDT)
- /me adds additional Woot! ;-P --AlisonW 15:42, 27 April 2007 (PDT)
- The textures for the shapes shown in the demo are posted in Torley's flikr stream. [2] I haven't got Maya but I'm making a few basic architectural elements in 3ds Max, I can post them here if anyone wants to convert and play with them. Elle Pollack 17:10, 27 April 2007 (PDT)
Elle, I tried importing/exporting your models for you, these are the results: http://www.flickr.com/photos/8019908@N02/ THey look a bit strange to me and with no way of testing them, who knows? But the exporter seems to work .....
haven't tried it - but i believe the personal edition puts gaudy maya watermarks on images - which would definitely cause sculpties grief... but this isn't a typical rendering, so perhaps not. worth an experiment. --Qarl Linden 09:58, 28 April 2007 (PDT)
Hi, I just tried it and and it does unfortunately watermark the resulting image with the free edition. (P.S. Even so, still, WOOOT!!! :)) --Logan Bauer
This is unlikely to happen because of SL's potential commercial applications, Buuuuut..... Epic Software apparently has a standing deal where their export plugin for Unreal Tourniment 2k3 mods works in Maya PLE without the normal restructions (this may be holdover from before Autodesk bought them). Might it be possible for Linden Lab to look into a similar deal? Elle Pollack 14:58, 28 April 2007 (PDT)
Strife's Observations
I've been examining the video posted on the blog. I took screen shots of the textures shown in the texture picker, giving the advantage of being able to see the rendered texture and compare it to real prims and their sizes.
- I'm a little fuzzy on this part. It's on or the other
A)The values are centered so if you want a small dot you have to use an image that 127 or 128 grey.B)The values are related to the base sphere. - The default shape is a sphere half the prim size.
- I think the bounding box is the size of the base sphere, meaning the mesh can be 3 times larger then it's bounding box.
Strife - the answer is A - point position is relative to the origin - scaled by the prim size. --Qarl Linden 19:49, 27 April 2007 (PDT)
- Ah good thats what I thought but was getting confused by some of the images i was looking at. If this is the case it shouldn't be too hard to build a modeling tool in C#. -- Strife Onizuka 08:06, 28 April 2007 (PDT)
So the form is defined by the vectors from the origin and assumes a closed shape. What about a non-closed surface? We don't have prims which are Planes, but there's been arguably little need. Now such a primitive would allow more highly-detailed models which don't require closed forms (e.g. sheetmetal shapes for vehicles). Any plans on adding such a Prim to the library? -- Csven Concord 09:12, 28 April 2007 (PDT)
yes, rev 2 will include "plane-like", "cylinder-like" and "torus-like" shapes, to compliment the "sphere-like" shape. (basically, all permutations of open/closed on the ends.) --Qarl Linden 09:39, 28 April 2007 (PDT)
- Once these are implemented, presumably it would be possible to adapt an export script to slice a large/detailed model into smaller chunks that could be pieced together in-world? --AJ DaSilva 10:56, 29 April 2007 (PDT)
LSL functionality?
Was wondering if there are plans to put in an LSL function to allow swapping out of the sculpt texture. This would be a nice scripted way to morph the shape through a script. This would be very useful for AV attachments (hair, tails, wings, etc.) to cut down on prim usage as the script could just morph the shape of a single prim. Or perhaps it could be applied to the AV itself (Can you say werewolf transition)? A more advanced version would make it shift between the old and new textures more smoothly rather than a sudden shift (or have an argument to specificy a 'hard' or 'smooth' morph).
I definitely like the idea of sculpted prims. However--
1) LL should embrace open source/cross-platform solutions. Embracing Maya first (as one of the most expensive platforms) seems out of place.
2) Sculpting tools like Silo and Modo should be considered. Ideally a utility program that can convert a specified .obj file (an almost ubiquitous 3D file format) to the textures for a "sculpted prim" would be ideal. This would allow content creators to use their tool of choice and then process the .obj of their sculpture into the appropriate "normal" maps for SL.
3) Guidance on linking of sculpted prims to create large sculptures than a single prim should be considered. (From reading the technical information about texture size, I get the sense we're looking at some level of subdivision of a single cube --perhaps 8x8x8 that is then deformed by the maps.)
-As I understand it, they did maya first because that's what Qarl knows how to do. He learned the think while working on the 2nd and 3rd Matrix movies. Elle Pollack 18:17, 27 April 2007 (PDT)
right you are, Elle. --Qarl Linden 19:51, 27 April 2007 (PDT)
What avenues have been considered for this morphing mentioned on the sculpted prims page? Some kind of interpolation between one texture and another? Or will it be akin to texture animation as we have it now? If it is interpolation between separate textures, will there finally be a llPrecacheTexture(...) added so you don't get a "blurry" object to transition to? ^.^; --Feynt Mistral 21:31, 28 April 2007 (PDT)
PRIM_TYPE_SCULPTED
How about a PRIM_TYPE_SCULPTED paramater for the ll(Get|Set|SetLink)PrimitiveParams functions?
Syntax for Set: [PRIM_TYPE_SCULPTED, key sculp_texture]
-- Strife Onizuka
that is exactly what we've done. --Qarl Linden 19:51, 27 April 2007 (PDT)
You mentioned above different base shapes, so i take it you will be using a PrimitiveParams format like...
[PRIM_TYPE_SCULPTED, integer style, key sculp_texture]
or will you have a different PRIM_TYPE_* flag for each style? Strife Onizuka 14:11, 28 April 2007 (PDT)
Sculpt Texture
As a graphic artist, I'd like to do thing manually on Photoshop for finer details when need to do quick minor changes.
Can you tell what each color and greyscale value by pixels actually do to each mech points? --Vincent Nacon 21:00, 27 April 2007 (PDT)
The images are three colors (RGB) much like normal maps. Each pixel defines an X/Y/Z (coded with R, G, and B channels) offset from the origin (center of the prim). I doubt you would have much luck touching up something like this in Photoshop, you might look at something like ZBrush when we get an exporter for it. Eddy Stryker 21:17, 27 April 2007 (PDT)
That I did understand, but I really want to go into great depth of understanding it. I like facing challenge when I can't use 3D Max, Lightwave, or even Maya. ;)
(I don't even like Zbrush O-o, those are more for bumpmapping and texture skin.) --Vincent Nacon 22:21, 27 April 2007 (PDT)
Zbrush is for way more than texturing - I make all my mesh morphs with it and it's what I originally bought it for. Only when I started playing SL heavily did I start using it more for texturing :D Actually, this is really a lot like how the pixols in Zbrush work, I sometimes start with a Zsphere and just start sculpting with my tablet. Can't wait to get a Zbrush export - I'm drooling to get my hands on this feature. I'm starting right now on making zsphere stuff in the anticipation of making them into prims :D --Hypatia Callisto 07:48, 28 April 2007 (PDT)
I'ld like to make my in-world tool compatible with this type of prim, is there a sculpt texture UUID available on the main grid ? - the default one would be perfect.--Simil Miles 23:33, 27 April 2007 (PDT)
Torley has been putting textures online somewhere... not sure where... --Qarl Linden 09:41, 28 April 2007 (PDT)
- On her flikr stream. See the link I did way at the top of this page. Elle Pollack 10:19, 28 April 2007 (PDT)
-- I'ld need the UUID of an in world texture...--Simil Miles 13:24, 28 April 2007 (PDT)
---They won't be "system textures" at this point, and I don't know if they will be...we'll see what happens on Preview I guess? Elle Pollack 15:14, 28 April 2007 (PDT)
- -- I'm afraid that default sculpted prims won't render or will render as sphere if they don't have a default sculpt texture.--Simil Miles 19:10, 28 April 2007 (PDT)
Will we be able to preview rendered sculpted prims ? (Don't want to waste L$10 on every fix)--Simil Miles 06:20, 28 April 2007 (PDT)
yes, the texture upload preview has a "sculpted prim" mode. --Qarl Linden 09:41, 28 April 2007 (PDT)
I understand the basic idea, and I understand NURBS very well, but I'm having a hard time putting the pieces together... If this is NURBS-like, can you control the finer points of the shape with a knot vector? Also, can you give a brief desciption of how the texture is actually encoded? In other words, is there a defult way that the sculpt texture is mapped to the prim surface, or is that tweakable with the UV settings?
3D Programs for the Rich and...the not so Rich.
(Merging related questions under this header. Elle Pollack 13:14, 28 April 2007 (PDT))
- I know of three perfectly free modellers that run on many platforms: Blender, Google's SketchUp, and the open source Wings3D which I use with X-Plane. It would help the "pennyless" content makers tremendously to have exporters for these.
- I'm not sure if Sketchup has the functionality required for this sort of thing. It can do plugins (Python, IIRC) , but it doesn't have much in the line of map rendering and export of non-native formats except maybe for .jpg renders is tied to having the paid "Pro" version. There might be importers for skp files into other programs. Might. Elle Pollack 12:05, 28 April 2007 (PDT)
In considering programs to offer export support for, is there any chance of offering support for Caligari Truespace [4]? It is priced much more in reach for the average users than 3d Studio Max/Maya, and is not as esoteric as Blender. Cristiano Midnight 21:12, 27 April 2007 (PDT)
- these exporters are really easy to create - basically if your program has a normal-map generator (most do) it's a simple mod to make a sculpt exporter. so i challenge YOU Cristiano to make the truespace exporter. :) --Qarl Linden 09:43, 28 April 2007 (PDT)
-- if i understand the issue right, the main obstacle at the moment would be: the displacement map is "baked" into texture which is created based on UV map associated with low resolution prim. In case of SL sculpt prims, this low res UV map is "hard coded" property of the sculpt prim as it's rezzed in SL rather than anything user would create themselves, and so the displacement map generator has to be given this exact prim with this exact UV map to use it as baking reference or Bad Things(tm) happen. Is there any chance such reference "sculpt prim" with its UV map could be provided for download, perhaps in .obj format for easy use?
- Gonna post tech specs for that sort of thing any time soon? Won't help me much since I'm not a coder, but... Elle Pollack 13:14, 28 April 2007 (PDT)
- Eddy Stryker says he made an exporter for Blender.
-- Linkage?
If NURBS are going to be the recommended methood of making SL objects...for about the price of a Photoshop suite ($995 for the full licence, $195 for students) there's Rhino 3D, which is made with NURBS in mind. I don't know much else about it at this point but it supports plugins and has a trial version (full functionality for 25 saves). http://www.rhino3d.com Elle Pollack 13:14, 28 April 2007 (PDT)
- One of the programmers responsible for Rhino is working on a tool called Moment of Inspiration. Functional beta is available online. Not sure how long it'll be useful, but it does export to .3ds, .obj, .iges, .stl, and OpenNURBs (aka Rhino3D format).
- In addition, there are other NURBs-capable modelers available. Art of Illusion is an open source, Java-based hybrid modeler iirc. Ayam is another NURBs modeler that some people might prefer. -- Csven Concord 17:40, 28 Apr 2007 (PDT)
Why not provide (for example) a 3DS to texture converter instead of a conversion plugin? Most programs I've seen will save and load 3DS format, so this would be just the same as writing an exporter plugin. Yumi Murakami
"Annoying" Questions
- Distance from prim center is no more than 5m? (10m from side to side.) --Vincent Nacon
yes. --Qarl Linden 09:52, 28 April 2007 (PDT)
- No hollow and holes or even cuts? --Vincent Nacon
see my comment above about the future "torus-like" topology. rev2. --Qarl Linden 09:52, 28 April 2007 (PDT)
- No Custom UV mapping for the (image, not model)texture itself? (unless given from plugins) --Vincent Nacon
well - depends on what you mean. you can still use the texture scale/rotate/offset controls to position the textures. but no - the sculpt texture itself defines the texture space, if you know what i mean. --Qarl Linden 09:52, 28 April 2007 (PDT)
-- I'm wondering about this too...I think it boils down to if you have UV map data in a model and you export it into the (what are we officialy calling them, sculpt maps?), is the UV mapping preserved? Elle Pollack 11:50, 28 April 2007 (PDT)
- Mass?
similar to physics - the sculpties are approximated on the server as a flattened sphere. so whatever mass that produces is what the sculpties will have. (again - we're considering how to put sculpties into the physics engine - we've done tests and they work well - there's just the unpleasant need to have sims load textures.) --Qarl Linden 09:52, 28 April 2007 (PDT)
- Setting to place prim's center-point offset? (doors that rotate at one side instead of from the center) --Vincent Nacon
ah - interesting. perhaps, yes. in the meantime - your exporter can be modified to produce a door which isn't centered. or sheesh - this kind of thing might be possible by photoshopping the sculpt texture... hm. --Qarl Linden 09:52, 28 April 2007 (PDT)
re: Photoshopping sculpt textures... this is just mental theory, but I'd think the following procedures would apply:
- To scale along a given axis, keeping the positive/negative end of that axis fixed:
- Levels, increase shadow/decrease hilight value of desired channel, respectively.
- To shift the entire model along a given axis:
- Increase or decrease brightness of the desired channel. (Note, values that get "clipped" to pure black or pure white will cause the associated verts to "squish" against the side of the bounding box.)
- To mirror-flip the model on a given axis:
- Invert the desired channel (transposing the verts on the + side to the - side, and vice versa) AND mirror-flip the image horizontally or vertically. (Skipping the second step would end up with a model mirrored and turned inside-out, because the vertex order of the polys would be reversed, similar to a 180 twist on a prim sphere)
- To scale along a given axis, keeping the positive/negative end of that axis fixed:
--Deanna Trollop 23:36, 28 April 2007 (PDT)
* Allows flexiable? (I doubt it anyway) this was answered in the faq, flexiprims will be implemented, just not in the first release.Charismo Abismo 08:04, 28 April 2007 (PDT)
yes, we're thinking about how to do the flexible version. currently - flexible objects have a 1-dimensional spine that drives their motion - i'd like to make the sculpties a 2d spring system (if possible.) also - we have this unused alpha channel, which would be perfect for adding flexi information (how stiff/springing is this section of the object, etc.) --Qarl Linden 09:52, 28 April 2007 (PDT) I came aware that TGA takes more memories than JPG2000 format, should it support both anyway if not using Alpha Channel for flexi? --Vincent Nacon 17:21, 28 April 2007 (PDT)
- What are the polygon faces limit? Does it even resist texture going more than the limit, say a 1024 texture? (yes, going over 10,000 faces would be insane, I'd think?) --Vincent Nacon 17:14, 28 April 2007 (PDT)
- In case of a "fool" using an real texture that wasn't made for sculpted prim, how would it react? Anyway of prevention of using non-sculpted image? I could even image an bizarre result that could lead viewer client-side crash upon rendering. --Vincent Nacon 17:21, 28 April 2007 (PDT)
- What's the word on JPEG compression artifacts skewing the vert positions? --Deanna Trollop 23:07, 28 April 2007 (PDT)
: Also: what is the absolute biggest size a sculpted prim can reach ? 10 m ? 30 m ? 5 or 15 m from the origin ? Anwsered: 10m from side to side, 5m from center.
Test Fodder for the Maya Plugin
In the wild, under Creative Commons: http://www.themindstream.net/slmodels/ - 3 objects (one in 3 parts) with possibly more to come I'm still in a technical "out of SL indfinately because of computer issues" mode, so if any of these make it as far as Preview, I want screenshots! If there's an issue with any of the models that prevents their working, IM me through SL with details. (I still get and can respond to those). Elle Pollack 23:58, 27 April 2007 (PDT)
ah nice. i didn't look closely - but remember you REALLY want to use single NURBS surfaces for your models - otherwise the conversion process can be painful. --Qarl Linden 09:56, 28 April 2007 (PDT)
Elle, I tried importing/exporting your models for you, these are the results: http://www.flickr.com/photos/8019908@N02/ THey look a bit strange to me and with no way of testing them, who knows? But the exporter seems to work ..... NOt sure about the black areas, they look scary!
I shall have to learn myself some NURBS than...s'what I get for being a novice game modeler. I did try to follow the guidelines for polygon objects mentioned in the FAQ. However they'll still be usefull for testing, the process of figuring out what works and what doesn't. Elle Pollack 10:23, 28 April 2007 (PDT)
- NURBs are quite a bit different than poly's. I'd started a tutorial to show Industrial Designers on the Core77 forum how to make single-surface models using Maya/Alias Studio. It's actually relatively rare but I prefer them bc they import into CAD cleanly. Not sure I still have it and the associated images, but if I do I'll post them. -- Csven Concord 17:50, 28 Apr 2007 (PDT)
- That big black area you should probably photoshop gray otherwise you will have pollygons in on of the corners. What would be better would be to crop off the black areas and resize the image up (it won't effect the rendering except to give you better detail). Strife Onizuka 20:18, 28 April 2007 (PDT)
MEL Broken?
has anybody got the script up and running? I am having trouble with it. pasted it but I am getting syntax errors all the way:
// Error: if (size($parents)†!= 0) // // Error: Syntax error //
Have no idea what to do. This is definitely a revolution.
Ok, I have it, the cross has to go. I'm not sure how that works in this Wiki or any Wiki for that matter but it would be good to be able to edit the MEL. Managed to generate one of those colour depth maps (or whatever they are called) this is looking fantastic! :-)
hmmm... didn't see that plus-sign in the wiki page - perhaps your cut/paste had a problem? (line break, etc?) --Qarl Linden 09:57, 28 April 2007 (PDT)
Error in the mel - or not?
I got this error when executing the mel script:
exporting sculpt map for nurbsCylinder1 into file simple_column.bmp // Error: Object list must contain a surface and a texture //
Um.. a texture? Surface I have, but nothin' said nothin' about having to texture map it first...
Maya 7 Unlimited full version / Mac 1.67 Ghz PowerBook G4, blah blah
Oh well... At US$7000 for Autodesk Maya I don't think I am going to be using this feature any time soon, unless of course someone is willing to pay L$2000000 for a mushroom.
- People keep refering to US$7000 version of Maya. That is the "Unlimited", most expensive version. Last I checked, the low-end but very capable version was still US$2000. Expensive but quite a bit less than the number people are throwing around. -- Csven Concord 17:44 28 Apr 2007 (PDT)
- I don't know the specific way of doing it in Maya but try applying a basic default UVW Map: Box maps, face maps and sometimes cylinder maps are probably the best general purpose ones. Planar maps, maybe, but they can also be applied within SL. In general, you should test maps out with a basic texture like a checkerboard to check the repeats and avoid nasty stretching and deformations. Elle Pollack 14:48, 28 April 2007 (PDT)
Tutorials
I know there are probably tons of tutorials out there on how to do the basic process of what's needed for sculpted prims (3D app user wise). But if someone would want to find a really good one, or write one specificly for SL that would be most handy to pass around to people once this goes into Beta then live.
I say this now because it's best to be prepared than to be scrambling for it later on. :)
Oz Spade 14:14, 28 April 2007 (PDT)
This might get you started [5] Eddy Stryker 22:10, 28 April 2007 (PDT)
The Future: beyond the first release
Qarl, you already mentioned a rev 2 with more features. Are you going to keep working on this project after the initial release, or doing something else and hoping you get back to it a later time? Just asking, because projects have been abandoned before after a hopeful start. Frans Charming 00:23, 29 April 2007 (PDT)
Another question, however implausible, would this technique be applicable to avatars? I can't imagine how many furries would love to replace the human avatar with a custom mesh (myself included). Of course the first major obstacle to that would be figuring a way to map vertices to animations currently used by SL. --Feynt Mistral 01:04, 29 April 2007 (PDT)
Flexible
There are a few ways of doing flexible (the interface i mean).
- The simplest would be to have a smooth movement from one side of the sculpt texture to the other. But that increases the complexity of making the sculpt prim and would look strange for highly complex shapes.
- The next way that came to mind would be to add a fourth channel to the image that was the amount of flexibility that part should experience.
- The last way is conceptually the simplest and would probably be the way you would generate the map used in the previous suggestion. Provide the user access to two vectors, a position and direction vector. Anything behind the point described by the position and direction would be static.
- You could add a plane anchored at the point that would be perpendicular to the direction, the distance above the plane would be the amount of flexibility.
- Or you could just do the distance from the point to that part of the mesh.
- A zero direction vector would mean the entire object was to be flexible.
- A quaternion could be used instead of the direction vector (a zero magnitude quaternion could fill the same roll as a zero vector).
I think the best way would be to use the second method and release a tool that generated the distance map based on the third method (and then added it to the mesh). The advantage of having a prebaked distance map would be to remove the need for the client to do that calculation (the amount of time required to do the extra image decoding might negate this). -- Strife Onizuka 08:04, 29 April 2007 (PDT)