Open Question: Prim/Object Mirroring
|
Jeffrey Gomez
Cubed™
Join date: 11 Jun 2004
Posts: 3,522
|
03-08-2005 11:42
"Prim Copy" and "Prim Mirror" have both been reinstated within my prim mirror and my new permissions script. This is posted both as a warning and as a notice to those wishing to use both feature sets. Since the former has been discussed, here is the latter.
/15/e2/40302/1.html#post433664
This new script set may be used on your own No Modify objects to add scripted modify options without the risk of anyone copying your stuff. Not only does this put the problem asserted in my first script to bed, but it also kills off the general problem that some content creators have been having.
Feedback would be appreciated on this. Please spread the permissions script to as many people as you can.--- In response to the concerns brought up in this, and other, threads, I will be releasing a Universal Permissions Suite for use with No Modify objects. Expect to see this within a day or two in beta form - I just need to write documentation. The features included in my current (working) prototype: - "Import" a Prim into the set via a handy Copy feature (This does not copy contents!)
- Use invisible prims in the set to allow users to "Add" Extra Prims with Copy!
- The ability to uniformly scale the entire object with a script (yay!)
- By Face and By Prim Support for Nearly Everything llSetPrimitiveParams allows (color, texture, position, rotation, scale, shininess, bumpmap, alpha, material, etc)
- Intuitive Dialog System using Contextual Listeners and Link Messages (no passive listens!)
- The ability to "tailor" the Permissions by removing options directly from the feature list quickly and easily
- Fully-featured Undo Queue (up to five entries; still a little buggy)
- Easily Remove the Scripts when Done with just a few clicksEssentially, I have built limited modify functionality into No Modify, so builders with valid concerns that their objects can get copied will have a final recourse in preventing that, while preserving the ability for users to tailor the objects to their liking. --- Original Text: /15/9a/38165/1.htmlHi folks. Just have a question to throw out here, because there's been some concern over it. I've developed a system that'll mirror any prim, as well as its position based on a reference point. So, if you have a right hand (or wing) for example, this can be used to make the left. However, there's been some concern over it beyond just debugging (which I feel is mostly done now). So, here are a couple questions on whether or not I'll release it. 1) Would you use this to mirror your builds? (I expect a resounding "yes" 2) Are you concerned that this might be used to "copy" existing objects with Modify permissions? If so, specify why. 3) Would you feel better if I released a version that does not copy textures in any form? One of my versions does so in a rudimentary (non-mirrored) format. 4) Do you feel that a check of llGetOwner to llGetCreator in an open-source code set would be sufficient deterent from copying builds (as most people do not edit code)? 5) If not, would you feel better if this were released as a black box than open source for the world to use?
_____________________
---
|
Zuzi Martinez
goth dachshund
Join date: 4 Sep 2004
Posts: 1,860
|
03-08-2005 12:26
1) yeah if it's totally exact. i'm really picky about joints and such. 2) not really. 3) doesn't matter. textures are easy to mirror and i always build first then texture anyways. 4) umm.... huh? 5) doesn't matter. bottomline if it mirrors my stuff i'll be happy 
_____________________
Zuzi Martinez: if Jeska was Canadian would she be from Jeskatchewan? that question keeps me up at nite. Jeska Linden: That is by far the weirdest question I've ever seen.
|
Eggy Lippmann
Wiktator
Join date: 1 May 2003
Posts: 7,939
|
03-08-2005 12:35
Send me one of those! Is it flexible? I would prefer if it took, say, a scale from -1.0 to 1.0, where 1.0 would be an exact copy of the object, -1.0 an exact, but mirrored copy of the object... this "negative scaling" tool exists in other 3D modeling apps. Bonus points if you can take a vector, so we can specify along which axis we want to mirror stuff.
|
Jeffrey Gomez
Cubed™
Join date: 11 Jun 2004
Posts: 3,522
|
03-08-2005 14:07
From: Eggy Lippmann Send me one of those! Is it flexible? I would prefer if it took, say, a scale from -1.0 to 1.0, where 1.0 would be an exact copy of the object, -1.0 an exact, but mirrored copy of the object... this "negative scaling" tool exists in other 3D modeling apps. Bonus points if you can take a vector, so we can specify along which axis we want to mirror stuff. I made two objects that run the script itself (Starax gave me a "Magic Mirror" - so I used that as one of them). Not only does it mirror along X, Y, and Z - but it also allows you to flip the mirror around to heart's content and mirror based on its rotation as well. So it takes a vector, a rotation, and the mirror reference position and rotation. In my experience with it, it is *very* exact (due to the nature of llGetPos), BUT there may still be bugs with it. If I don't hear of any later from my test group, I may release it. As for 1.0 to -1.0, not sure what you mean, Eggy (and this is coming from a 3D model nut). It mirrors in a true, inverted sense if that's what you're asking (so you get an exact mirror image on the other side). And Zuzi, my question with llGetCreator vs. llGetOwner was: Would it be okay to release if the script only works out of the box on stuff you (the owner) created? 
_____________________
---
|
Cross Lament
Loose-brained Vixen
Join date: 20 Mar 2004
Posts: 1,115
|
03-08-2005 14:29
OMG, I so want a copy of this. I was trying to code one before, but the math scared me away. Scary math!  Answers: 1. Yes!!  2. Not really, no. 3. No opinion either way, like Zuzi I build, then texture.  4. Knowing its there, someone would edit it. 5. I wanna see how it was done. 
_____________________
- Making everyone's day just a little more surreal -
Teeple Linden: "OK, where did the tentacled thing go while I was playing with my face?"
|
Racer Plisskin
Rezerator
Join date: 2 Jan 2005
Posts: 147
|
03-08-2005 14:52
Just curious, have you tried to mirror any tortured prims yet? I know there were some shapes that were thought to be impossible to mirror by hand...
Might be an intersting experiment to see what pops out.
Racer P.
|
Zuzi Martinez
goth dachshund
Join date: 4 Sep 2004
Posts: 1,860
|
03-08-2005 14:55
From: someone And Zuzi, my question with llGetCreator vs. llGetOwner was: Would it be okay to release if the script only works out of the box on stuff you (the owner) created? 4) sure that's fine. hell i don't care if it only works on things i own that i created on tuesdays this would be hugely useful. only tortured prim that's supposed to be impossible to mirror that i know of is a spiral torus but they're easy to mirror. check my replies to this post.
_____________________
Zuzi Martinez: if Jeska was Canadian would she be from Jeskatchewan? that question keeps me up at nite. Jeska Linden: That is by far the weirdest question I've ever seen.
|
Tiger Crossing
The Prim Maker
Join date: 18 Aug 2003
Posts: 1,560
|
03-08-2005 15:07
With my own Mirrorator, which has been evolving for well over a year now, I found that there are some heavily-contorted prims that can't be perfectly mirrored due to how they are rendered by SL. You can get close, but they aren't perfect. You can't even do it by hand.
And until we get something like llGetLinkPrimitiveParams, it is still a rather cubersome task.
My interface was a single sheet of glass that you set somewhere around the object. The mirrored duplicate appears on the other side.
_____________________
~ Tiger Crossing ~ (Nonsanity)
|
Jeffrey Gomez
Cubed™
Join date: 11 Jun 2004
Posts: 3,522
|
03-08-2005 15:10
From: Tiger Crossing With my own Mirrorator, which has been evolving for well over a year now, I found that there are some heavily-contorted prims that can't be perfectly mirrored due to how they are rendered by SL. You can get close, but they aren't perfect. You can't even do it by hand. This mirrors prims themselves perfectly, but I think what you're referring to are the "jaggies" that appear when you contort a prim the wrong way. And yeah, this won't mirror those perfectly - but it's the same position/rotation on the other side and is, for practical purposes, a mirror. I'd been wondering who it was that had the mirror script someone else mentioned. Good to know it was you.  Also, correct - I added zero prim torture support. Prim torture is a useful bug, not a feature. Forgot to mention that.
_____________________
---
|
Strife Onizuka
Moonchild
Join date: 3 Mar 2004
Posts: 5,887
|
03-08-2005 15:19
It's actualy impossible to add full torture support.
My object cloner (which i need to rebuild the comms on) doesn't support torture either.
_____________________
Truth is a river that is always splitting up into arms that reunite. Islanded between the arms, the inhabitants argue for a lifetime as to which is the main river. - Cyril Connolly
Without the political will to find common ground, the continual friction of tactic and counter tactic, only creates suspicion and hatred and vengeance, and perpetuates the cycle of violence. - James Nachtwey
|
Eggy Lippmann
Wiktator
Join date: 1 May 2003
Posts: 7,939
|
03-08-2005 16:29
From: Jeffrey Gomez As for 1.0 to -1.0, not sure what you mean, Eggy (and this is coming from a 3D model nut). It mirrors in a true, inverted sense if that's what you're asking (so you get an exact mirror image on the other side).
It seems that in some 3D modeling apps mirroring is implemented as negative scaling, so scaling by -100% gives you the same object, but mirrored, -50% would be the same mirrored object but squashed to half, and come to think of it, you could even scale it by -200% and get a stretched mirror twice in size. I vaguely remember learning something like this in Computer Graphics class, ages ago, and also, someone recently asked me whether or not SL supported negative scaling. I mentioned it because we can only resize multiple prims uniformly, instead of stretching them all simultaneously along an axis.
|
Zuzi Martinez
goth dachshund
Join date: 4 Sep 2004
Posts: 1,860
|
03-08-2005 16:33
so what exactly is prim torture? i thought it was just alot of cutting and twisting and such but you're all saying you don't support prim torture so it can't be something that simple or else the mirrorers would be kinda useless.
_____________________
Zuzi Martinez: if Jeska was Canadian would she be from Jeskatchewan? that question keeps me up at nite. Jeska Linden: That is by far the weirdest question I've ever seen.
|
Jeffrey Gomez
Cubed™
Join date: 11 Jun 2004
Posts: 3,522
|
03-08-2005 16:38
I can add that if you want, Eggy. And I'll let Strife answer the "what is prim torture," as he knows far better than I.
_____________________
---
|
Eggy Lippmann
Wiktator
Join date: 1 May 2003
Posts: 7,939
|
03-08-2005 16:58
Prim torture is forcing prims to do things they weren't meant to. It mostly involved using llSetPrimitiveParams in creative ways... finding bugs that let you set out-of-range twist parameters, or using, say, advanced cut on a cube. You shouldn't rely on funky stuff. LL might fix it... and then your prims will be deleted and give you "Bad Geometry" errors.
|
Strangeweather Bomazi
has no clever catchphrase
Join date: 29 Jan 2005
Posts: 116
|
03-08-2005 17:09
So Jeff, basically you can set all the parameters that are valid for a given prim type -- i.e. the ones that show up in the edit dialog for that prim type -- but not set any other parameters, such as dimple for a cube. Do I have that right? Very cool tool. 
_____________________
Strangeweather Designs - classic casual home furnishings Now open in Mochastyle, Mocha (13, 115)
|
Zuzi Martinez
goth dachshund
Join date: 4 Sep 2004
Posts: 1,860
|
03-08-2005 18:04
hmmmm about the only torturey thing i do is set cubes to be spheres then dimple them and switch back to cubes and i do that alot. does your thing support that Jeff? (please please please)
_____________________
Zuzi Martinez: if Jeska was Canadian would she be from Jeskatchewan? that question keeps me up at nite. Jeska Linden: That is by far the weirdest question I've ever seen.
|
Jeffrey Gomez
Cubed™
Join date: 11 Jun 2004
Posts: 3,522
|
03-08-2005 18:10
I'll check to see what that does later, Zuzi. If it ends up being prim torture... no. And it sounds like it.
_____________________
---
|
Zuzi Martinez
goth dachshund
Join date: 4 Sep 2004
Posts: 1,860
|
03-08-2005 19:33
_____________________
Zuzi Martinez: if Jeska was Canadian would she be from Jeskatchewan? that question keeps me up at nite. Jeska Linden: That is by far the weirdest question I've ever seen.
|
Jeffrey Gomez
Cubed™
Join date: 11 Jun 2004
Posts: 3,522
|
03-08-2005 20:18
Yeah. I checked for you, Zuzi. It's outside the scope of my script, because the script itself would require knowledge of what's been done to the prim beforehand (I tested using llGetPrimitiveParams - dimple doesn't display). Sorry! And Eggy, I did add the functionality you asked. However, it reacts... strangely, given the nature of prims themselves. Basically, all I added was a scaling value that'll function on an arbitrary axis... what comes out of that, well... isn't my fault. 
_____________________
---
|
Zuzi Martinez
goth dachshund
Join date: 4 Sep 2004
Posts: 1,860
|
03-08-2005 20:58
*cries* so basically if i used it on some prims and some had been dimpled like that it would mirror them right but i'd have to dimple the ones by hand? i can live with that. unless you put in a step where it changes every prim to a sphere and checks for dimple then changes it back. 
_____________________
Zuzi Martinez: if Jeska was Canadian would she be from Jeskatchewan? that question keeps me up at nite. Jeska Linden: That is by far the weirdest question I've ever seen.
|
Jeffrey Gomez
Cubed™
Join date: 11 Jun 2004
Posts: 3,522
|
03-08-2005 21:36
One problem with that, Zuzi. To change an object to a sphere with llSetPrimitiveParams... well, you have to set everything. See the problem? If you don't have it upfront, you can't set it.Perhaps it's time to rally around the Lindens for some new constants. 
_____________________
---
|
Zuzi Martinez
goth dachshund
Join date: 4 Sep 2004
Posts: 1,860
|
03-08-2005 21:40
or have them put this feature in officially like people have said since the first week i joined. naaaaaaaah 
_____________________
Zuzi Martinez: if Jeska was Canadian would she be from Jeskatchewan? that question keeps me up at nite. Jeska Linden: That is by far the weirdest question I've ever seen.
|
Kyrah Abattoir
cruelty delight
Join date: 4 Jun 2004
Posts: 2,786
|
03-08-2005 21:46
well i dont wanna spit any thing on you Jeff because you are a good friend of me but i wanna ask to ppl this:
Now shall i sell all the attachments i do in nomod?
it take time to do some elaborated primwork honestly, even if this mirror is damn usefull (i love it)
it is able of perfectly mimic any standard object
its just 30 seconds of drag and drop
_____________________
 tired of XStreetSL? try those! apez http://tinyurl.com/yfm9d5b metalife http://tinyurl.com/yzm3yvw metaverse exchange http://tinyurl.com/yzh7j4a slapt http://tinyurl.com/yfqah9u
|
Strife Onizuka
Moonchild
Join date: 3 Mar 2004
Posts: 5,887
|
03-09-2005 07:22
Prim Torture Scriptwhile it isn't the most staight forward way of doing it, it was darn fun to write. It was written so that if a new shape was introduced with no new attributes, it could be added without having to touch the core of the script. The default prim it makes is impossible to make now without prim torture. The client build tools in SL have been heavily restricted to keep prim torture from happening, (i think LL got sick of fixing the client crashes from prim torture, if i had to guess i would say with prim torture i've crashed my client in probably 30 unique ways over the last year). Prim torture can be setting attributes to prims that are impossible (for example i have some box's with advanced cut of 2.54 -> 0.0) or it can just be applying attributes to prims that they normaly don't have. Like taper on a sphere. Or torii that look like spheres. The restrictions on the build tools for scripts are *totaly* different. Think of the client build tools rules as mere suggestions for how to use the script build tools.
_____________________
Truth is a river that is always splitting up into arms that reunite. Islanded between the arms, the inhabitants argue for a lifetime as to which is the main river. - Cyril Connolly
Without the political will to find common ground, the continual friction of tactic and counter tactic, only creates suspicion and hatred and vengeance, and perpetuates the cycle of violence. - James Nachtwey
|
Francis Chung
This sentence no verb.
Join date: 22 Sep 2003
Posts: 918
|
03-09-2005 22:12
Neat stuff  I think this script would be far too useful not to release it in some way shape or form. (Open/closed/for profit/etc) Myself, when I build symmetrical objects, I build in a more constrained fashion to allow easy mirroring. I think the idea you mentioned of restricting it to creator/owner is acceptable. There was a thread started by Don Linden (I think) a while back discussing restricting llGetPrimParams using heuristics with llGetCreator. While not a perfect solution, I think it'd eliminate most illigitimate copies without interfering much with honest people. There are already prim duplication scripts out there. If you want to be extremely conservative with your distribution, you could give your script to only people who already have a prim duplicator. In that manner, you'd be guaranteed that you're not adding to anyone's ablity to produce nefarious prim clones. PS. Good to know we have a backup Xylor in case we ever break ours 
_____________________
-- ~If you lived here, you would be home by now~
|