There is no way to pull a texture out of a full perm object is there?
|
Piggie Paule
Registered User
Join date: 22 Jul 2008
Posts: 675
|
02-17-2009 05:35
I'm sure there isn't but it's always good to ask  Simple Example: You have a cube made by someone and it has a wood texture on 5 or it's 6 faces. you can edit the cube, make any size, cut holes, copy it etc etc...... But there's no way you can get at those textures that are on/in the cube and put the texture onto the face that's blank? As you would need the actual texture and there's no way of getting a texture embedded in the cube you have.... Is there? I know 1 way around it that kinda works, but it's a fudge.
|
Rolig Loon
Not as dumb as I look
Join date: 22 Mar 2007
Posts: 2,482
|
02-17-2009 06:45
That's a good way to find yourself on the hit list of the person who created the texture. That "fudge" is called "theft."
|
Piggie Paule
Registered User
Join date: 22 Jul 2008
Posts: 675
|
02-17-2009 06:52
Well, it's not a high tech fudge, it's a very low tech fudge !!!! Example, say I have a house with a door and I want to put "Rolig's Room" on the door as a sign. Best way would be to photoshop the sign onto the door texture and upload it onto the door. Job done, but I don't have the original texture. My (very low tech) fudge would be zoom in and capture the screen, then edit it abotu a bit and use it back in world. Very low tech, and depending on in game lighting it won't be right. but better than nothing. In MY example and the sole and only reason I'd like it, it many people don't texture all faces in a build and when you make changes (full perm) you get bright lines showing at seam joints as it's bright pine wood texture on the join and I'd like to put the oriiginal texture onto this missing face to minimise the prim seam flicker. At the moment I'm just making the light pine wood a dark brown colour and it just about works. but would be nicer if I have to original texture to put on the missing face. that's my only need. 
|
Piggie Paule
Registered User
Join date: 22 Jul 2008
Posts: 675
|
02-17-2009 07:09
I should perhaps of said that I don't "Want" the texture in question at all. I just want to add this texture onto the 1 missing face of the cube that is currently bright default pine
|
Briana Dawson
Attach to Mouth
Join date: 23 Sep 2003
Posts: 5,855
|
02-17-2009 07:22
From: Piggie Paule I should perhaps of said that I don't "Want" the texture in question at all. I just want to add this texture onto the 1 missing face of the cube that is currently bright default pine can't do one without the other.
|
Rolig Loon
Not as dumb as I look
Join date: 22 Mar 2007
Posts: 2,482
|
02-17-2009 07:43
The builder was sold the texture with permission to use it as an integral part of the building, NOT as a separate texture. When you buy the building, you are buying it as a whole. You do not have permission to use the textures separately for any purpose. I know this can be a real pain, but the obvious "fudge" you suggest is the open door to theft. Don't do it.
|
Briana Dawson
Attach to Mouth
Join date: 23 Sep 2003
Posts: 5,855
|
02-17-2009 07:54
If i did prefabs, i would include the textures No Trans, so you could mod out the build how you wanted, or expanded on it.
Jesus, people toss that THEFT word around all the time and so liberally.
It is quite quickly losing its force.
|
Ephraim Kappler
Reprobate
Join date: 9 Jul 2007
Posts: 1,946
|
This is one for Scripting Tips, I suppose ...
02-17-2009 07:54
From: Piggie Paule I should perhaps of said that I don't "Want" the texture in question at all. I just want to add this texture onto the 1 missing face of the cube that is currently bright default pine There is nothing at all wrong with altering the textures on a full perms object so long as the new texture applied to the object also has sufficient permissions. This is basic stuff from the LSL Wiki, Piggie, but I suppose the example will save you a lot of trouble if scripting isn't your thing. Use llGetTexture which gives the UIDD of the texture on the each face of the prim. This is a basic script to drop into the object: default { state_entry() { integer i = 0; integer max = llGetNumberOfSides(); while(i < max) { llSay(0,"Side " + (string)i + " texture is: " + (string)llGetTexture(i)); ++i; } } } The object will whisper the UIDD of each texture for each of its faces and the result will look something like this: Full Perms Object: Side 0 texture is: 4a552738-3132-c206-3f3d-2158aebc5e78 Full Perms Object: Side 1 texture is: 00000000-0000-0000-0000-000000000000 Full Perms Object: Side 2 texture is: 3648decc-f687-461c-9a36-a35a221fe21f Full Perms Object: Side 3 texture is: 3648decc-f687-461c-9a36-a35a221fe21f Full Perms Object: Side 4 texture is: 3648decc-f687-461c-9a36-a35a221fe21f Full Perms Object: Side 5 texture is: 3648decc-f687-461c-9a36-a35a221fe21f The UIDD of a no copy/no modify texture will register as a series of zeroes, of course, which is useless. The texture on Side 1 is no modify/no copy, so to replace that with the texture from side 2, use llSetTexture to apply that UIDD to it. The basic script to drop into the object would look like this. default { state_entry() { string texture = llGetInventoryName(INVENTORY_TEXTURE, 0); llSetTexture("3648decc-f687-461c-9a36-a35a221fe21f", 1); } } Where "3648decc-f687-461c-9a36-a35a221fe21f" is the UIDD of the texture from Side 2 and 1 is number of the face to apply it.
|
Lear Cale
wordy bugger
Join date: 22 Aug 2007
Posts: 3,569
|
02-17-2009 12:59
From: Ephraim Kappler There is nothing at all wrong with altering the textures on a full perms object so long as the new texture applied to the object also has sufficient permissions. This is basic stuff from the LSL Wiki, Piggie, but I suppose the example will save you a lot of trouble if scripting isn't your thing. Use llGetTexture which gives the UIDD of the texture on the each face of the prim. This is a basic script to drop into the object: default { state_entry() { integer i = 0; integer max = llGetNumberOfSides(); while(i < max) { llSay(0,"Side " + (string)i + " texture is: " + (string)llGetTexture(i)); ++i; } } } The object will whisper the UIDD of each texture for each of its faces and the result will look something like this: Full Perms Object: Side 0 texture is: 4a552738-3132-c206-3f3d-2158aebc5e78 Full Perms Object: Side 1 texture is: 00000000-0000-0000-0000-000000000000 Full Perms Object: Side 2 texture is: 3648decc-f687-461c-9a36-a35a221fe21f Full Perms Object: Side 3 texture is: 3648decc-f687-461c-9a36-a35a221fe21f Full Perms Object: Side 4 texture is: 3648decc-f687-461c-9a36-a35a221fe21f Full Perms Object: Side 5 texture is: 3648decc-f687-461c-9a36-a35a221fe21f The UIDD of a no copy/no modify texture will register as a series of zeroes, of course, which is useless. The texture on Side 1 is no modify/no copy, so to replace that with the texture from side 2, use llSetTexture to apply that UIDD to it. The basic script to drop into the object would look like this. default { state_entry() { string texture = llGetInventoryName(INVENTORY_TEXTURE, 0); llSetTexture("3648decc-f687-461c-9a36-a35a221fe21f", 1); } } Where "3648decc-f687-461c-9a36-a35a221fe21f" is the UIDD of the texture from Side 2 and 1 is number of the face to apply it. This script works only if the owner happens to have the texture with copy/xfer permissions Tin inventory. You'll get all zeros as the key for any texture where you don't have a copy in inventory with sufficient permissions.
|
Day Oh
Registered User
Join date: 3 Feb 2007
Posts: 1,257
|
02-17-2009 14:47
llGetTexture doesn't search the owner's inventory for a full-perm item pointing to the texture ID
|
Malia Writer
Unemployed in paradise
Join date: 20 Aug 2007
Posts: 2,026
|
02-17-2009 16:00
From: Piggie Paule In MY example and the sole and only reason I'd like it, it many people don't texture all faces in a build and when you make changes (full perm) you get bright lines showing at seam joints as it's bright pine wood texture on the join and I'd like to put the oriiginal texture onto this missing face to minimise the prim seam flicker. You can take a 100% transparent texture and apply it to those faces, that will eliminate the edge flicker. I am assuming you are talking about, for example, the ends of a wall prim. Will drop you the texture in world.
|
Ephraim Kappler
Reprobate
Join date: 9 Jul 2007
Posts: 1,946
|
02-17-2009 19:01
From: Lear Cale This script works only if the owner happens to have the texture with copy/xfer permissions Tin inventory. You'll get all zeros as the key for any texture where you don't have a copy in inventory with sufficient permissions. You will find that the script works regardless of whether or not the texture is actually in the owner's inventory, Lear. So long as he or she has modify/copy rights on the object and, I assume, the texture has appropriate rights: I have used the method to complete the texturing on many items just as Piggie would like to do for exactly the reason that I did not actually have a copy of the texture in my inventory. From: Day Oh llGetTexture doesn't search the owner's inventory for a full-perm item pointing to the texture ID As I explained in my reply to Lear's comment, searching Inventory has nothing to do with the process I described for Piggie. llGetTexture will read off the UIDDs of all textures on the faces of the object and llSetTexture can be used to replace one texture with another or a texture from another entirely different object, provided you have the UIDD, of course. From: Malia Writer You can take a 100% transparent texture and apply it to those faces, that will eliminate the edge flicker. I am assuming you are talking about, for example, the ends of a wall prim. Will drop you the texture in world. A very bad idea, Malia, I am afraid: I tried this on my walls way back in my newbie building days and spent an entire weekend wondering why my place seemed to be turning inside out like one of those weirdly detailed optical illusions by Escher. The alpha channels in transparent faces clash, even when those surfaces are not visible to the naked eye, because the graphics card is constantly trying to calculate the visual implications of one against another. On balance, I would prefer to live with the annoyance of a hair crack on the wall than have an ersatz acid trip while my viewer tries to keep track of what is and what isn't there.
|
Malia Writer
Unemployed in paradise
Join date: 20 Aug 2007
Posts: 2,026
|
02-17-2009 21:17
Interesting, Ephraim. I had done exactly that with a copy/mod house I and never saw the alpha problem, although I lived in that house for quite some time. Maybe some graphics cards have a harder time than others... In any case, I'm very sorry to have provided misinformation. 
|
Ephraim Kappler
Reprobate
Join date: 9 Jul 2007
Posts: 1,946
|
02-17-2009 22:32
From: Malia Writer Interesting, Ephraim. I had done exactly that with a copy/mod house I and never saw the alpha problem, although I lived in that house for quite some time. Maybe some graphics cards have a harder time than others... In any case, I'm very sorry to have provided misinformation.  Maybe it's a question of quantity, Malia: I put the alpha texture into the ends of every wall in my place. Unfortunately the effect wasn't immediately noticeable until I finished, which was when my bad trip began. Perhaps it is possible to get away with a one-off instance here and there but I have tried various combinations and it never works. It's a shame because so many possibilities with alpha channels are no-go for building within SL. Another issue I have noted is that glow from one object will show through any other object that has even a trace of alpha somewhere in its textures. My understanding is that it isn't a problem related to the graphics card but more to do with the Lindens' handling of OpenGL, the system used by SL and quite a few other games programs to render 3D graphics. However, I am not an expert on the issue by any stretch.
|
Piggie Paule
Registered User
Join date: 22 Jul 2008
Posts: 675
|
02-17-2009 23:18
From: Ephraim Kappler There is nothing at all wrong with altering the textures on a full perms object so long as the new texture applied to the object also has sufficient permissions. This is basic stuff from the LSL Wiki, Piggie, but I suppose the example will save you a lot of trouble if scripting isn't your thing. Use llGetTexture which gives the UIDD of the texture on the each face of the prim. This is a basic script to drop into the object: default { state_entry() { integer i = 0; integer max = llGetNumberOfSides(); while(i < max) { llSay(0,"Side " + (string)i + " texture is: " + (string)llGetTexture(i)); ++i; } } } The object will whisper the UIDD of each texture for each of its faces and the result will look something like this: Full Perms Object: Side 0 texture is: 4a552738-3132-c206-3f3d-2158aebc5e78 Full Perms Object: Side 1 texture is: 00000000-0000-0000-0000-000000000000 Full Perms Object: Side 2 texture is: 3648decc-f687-461c-9a36-a35a221fe21f Full Perms Object: Side 3 texture is: 3648decc-f687-461c-9a36-a35a221fe21f Full Perms Object: Side 4 texture is: 3648decc-f687-461c-9a36-a35a221fe21f Full Perms Object: Side 5 texture is: 3648decc-f687-461c-9a36-a35a221fe21f The UIDD of a no copy/no modify texture will register as a series of zeroes, of course, which is useless. The texture on Side 1 is no modify/no copy, so to replace that with the texture from side 2, use llSetTexture to apply that UIDD to it. The basic script to drop into the object would look like this. default { state_entry() { string texture = llGetInventoryName(INVENTORY_TEXTURE, 0); llSetTexture("3648decc-f687-461c-9a36-a35a221fe21f", 1); } } Where "3648decc-f687-461c-9a36-a35a221fe21f" is the UIDD of the texture from Side 2 and 1 is number of the face to apply it. Many thanks for this. I tried it, in a basic cube I made from scratch, and got all sorts of different numbers back  I tried it on on of the blocks from my house and just got back zero's on everything. Even though I can do any change/mod I like to the actual block itself, I assume this means the texture held within the item can't be accessed. It's not a GIANT problem as I can just color the pine to be some similiar colour. If I was desperate I could also contact the author, explain and ask for 1 plain block with the texture all round. I guess they would be happy as I've already almost got that, it's just 1 side face that has the texture missing. Again, thanks for the help, I'm sure that code will come in vry handy at a later date 
|
Ephraim Kappler
Reprobate
Join date: 9 Jul 2007
Posts: 1,946
|
02-17-2009 23:25
You're welcome, Piggie. You will undoubtedly find the scripts useful in the future - many creators leave the options open on textures.
|
madddyyy Schnook
SLGuides Virtual Worlds
Join date: 2 Jan 2006
Posts: 207
|
02-18-2009 09:04
i though LL had stopeped the uuids from being exposed server side. due the the uuid texture ripping and reapplying to prims. meaing no more buying textures. so they blocked em from gettexture.
|
Nika Talaj
now you see her ...
Join date: 2 Jan 2007
Posts: 5,449
|
02-18-2009 09:54
From: LSL portal llGetTexture writeup If the host object does not have full permissions and the texture is not in the prim's inventory, the returned value is NULL_KEY. .
|
Ephraim Kappler
Reprobate
Join date: 9 Jul 2007
Posts: 1,946
|
02-18-2009 10:30
From: madddyyy Schnook i though LL had stopeped the uuids from being exposed server side. due the the uuid texture ripping and reapplying to prims. meaing no more buying textures. so they blocked em from gettexture. I pulled the trick outlined above on a full perms ship that I wanted to tweak because I had made it a good deal larger. The textures weren't in the object inventory unless actually being *on* the piece means that they were in its inventory. A few minor inconsistencies in the build showed when I had enlarged it to something more like actual size so I felt the need to rearrange a few parts and textures. I used llGetTexture because I didn't have the textures in my inventory, deduced which texture I wanted to rearrange from the whispered result and applied it to the appropriate surface using llSetTexture. Bingo. Presumably the textures were full perms because I have tried the same trick on various items since, being a stickler for completion, and of course I get the zeroes if the required texture is no mod. I guess the zeroes thing is what you're talking about Madddyyy: the UIDD is still returned if the texture permissions have been allowed by the creator. I have also set HUD-controlled particle scripts using the UIDD with llSetTexture and the emitters still work with llResetScript and CHANGED_OWNER without having the actual texture stored in the object inventory. Mind you, I could easily be talking through my hat because the scripting centres in my brain are only marginally better developed than those of a red squirrel.
|
Argent Stonecutter
Emergency Mustelid
Join date: 20 Sep 2005
Posts: 20,263
|
02-18-2009 10:50
From: Rolig Loon The builder was sold the texture with permission to use it as an integral part of the building, NOT as a separate texture. When you buy the building, you are buying it as a whole. You do not have permission to use the textures separately for any purpose. I know this can be a real pain, but the obvious "fudge" you suggest is the open door to theft. Don't do it. Don't be silly. So long as the person who does it has the ethics of a rutabaga and doesn't walk through the "open door" and start distributing the texture, it's no more "theft" than taking lecture notes or time-shifting a TV show... even though there's nothing technically stopping you from photocopying your notes and selling them to the lazy bastards in the back who spend all semester cruising porn on wifi and come down to beg you in the week before finals week to let them see your notes, and no you don't do that, not even when they offer you hundreds of dollars, AND drugs, AND the phone number of that cute TA in Economics 201, and... well... no, be strong. Photocopying lecture notes is the open door to theft!
|
Gordon Wendt
404 - User not found
Join date: 10 May 2006
Posts: 1,024
|
02-18-2009 10:55
From: Argent Stonecutter Don't be silly. So long as the person who does it has the ethics of a rutabaga and doesn't walk through the "open door" and start distributing the texture, it's no more "theft" than taking lecture notes or time-shifting a TV show... even though there's nothing technically stopping you from photocopying your notes and selling them to the lazy bastards in the back who spend all semester cruising porn on wifi and come down to beg you in the week before finals week to let them see your notes, and no you don't do that, not even when they offer you hundreds of dollars, AND drugs, AND the phone number of that cute TA in Economics 201, and... well... no, be strong. Photocopying lecture notes is the open door to theft! Gordon Wendt's brain explodesWith logic like that you'd be in a she-in for a job at the MPAA, RIAA or whatever the European equivalent who's name I can't remember at the moment is. You're humming a tune that you heard someone else singing that they heard from listening to a CD, you must be stealing music!!!!! 
_____________________
Twitter: http://www.twitter.com/GWendt Plurk: http://www.plurk.com/GordonWendt GW Designs: XStreetSL
|
Argent Stonecutter
Emergency Mustelid
Join date: 20 Sep 2005
Posts: 20,263
|
02-18-2009 10:58
From: Gordon Wendt Gordon Wendt's brain explodes There's no greater kudos for a sarcastic post than to see exploded brains all over the forums. Thank you, thank you, thank you...
|
Gordon Wendt
404 - User not found
Join date: 10 May 2006
Posts: 1,024
|
02-18-2009 11:10
From: madddyyy Schnook i though LL had stopeped the uuids from being exposed server side. due the the uuid texture ripping and reapplying to prims. meaing no more buying textures. so they blocked em from gettexture. No, they've just keep tightening the controls n them. I have a product that is a "hackable" billboard where someone sends a texture UUID to the billboard and the billboard displays that texture. One of the many proposed "fixes" would have broken this and many other products by adding permissions on the usage of the UUID for any texture rather than just controlling who has access to the UUID. To my knowledge that proposal has never been implemented and my billboard still works but who knows for how long.
_____________________
Twitter: http://www.twitter.com/GWendt Plurk: http://www.plurk.com/GordonWendt GW Designs: XStreetSL
|
Rolig Loon
Not as dumb as I look
Join date: 22 Mar 2007
Posts: 2,482
|
02-18-2009 12:02
From: Argent Stonecutter Don't be silly. So long as the person who does it has the ethics of a rutabaga and doesn't walk through the "open door" and start distributing the texture, it's no more "theft" than taking lecture notes or time-shifting a TV show... even though there's nothing technically stopping you from photocopying your notes and selling them to the lazy bastards in the back who spend all semester cruising porn on wifi and come down to beg you in the week before finals week to let them see your notes, and no you don't do that, not even when they offer you hundreds of dollars, AND drugs, AND the phone number of that cute TA in Economics 201, and... well... no, be strong. Photocopying lecture notes is the open door to theft! Ok, OK .... I know I marched right into a minefield. I was feeling pissy and I used a bad word. I just get really ticked at times. It's very easy for an innocuous process like this to be used for purposes that cause more harm than good. The lazy guy that copies your class notes or looks over your shoulder in a test DOES go on to be your idiot congressman, the neighbor who takes out a subprime loan DOES screw your own property value, and guns DO kill people. I know there's no point in making rules to outlaw all those things, but I don't feel right personally about making them easier for the jerks of the world. <sigh> I guess I'm just getting too old for this and have seen too many roads paved with good intentions. Sorry about the rant. /me , chastened, goes back and sits in the corner.
|
Lear Cale
wordy bugger
Join date: 22 Aug 2007
Posts: 3,569
|
02-19-2009 06:50
From: Gordon Wendt No, they've just keep tightening the controls n them. I have a product that is a "hackable" billboard where someone sends a texture UUID to the billboard and the billboard displays that texture. One of the many proposed "fixes" would have broken this and many other products by adding permissions on the usage of the UUID for any texture rather than just controlling who has access to the UUID. To my knowledge that proposal has never been implemented and my billboard still works but who knows for how long. They did turn off the hot key combination that would give you all the keys for all textures on a prim when you clicked it. This was a good fix as it broke no content and made it significantly more difficult to get textures you don't have rights to.
|