Cloaking Device (Unrendered Prims)
|
|
Rihanna Laasonen
Registered User
Join date: 22 Nov 2006
Posts: 287
|
03-14-2008 18:56
Okay, so at work today I was planning the builds I'd do if I could magically have my own virtual world a la Second Life and trying to figure out how to make a mage's tower that was truly invisible to trespassers -- not just cloaked by a screen that would be obvious as a screen, but truly invisible from the outside while still usable on the inside. I don't have the technical knowledge to have any real insight into this, but something occurred to me today.
We have this thing called occlusion culling. Supposedly, it prevents things that would be outside your natural range of vision (on the other side of a wall, for instance) from rendering. It doesn't work very well -- inevitably, when I first log in or teleport somewhere new, the prims 60 m away rez before the walls right next to me that are supposed to occlude them. But supposedly it does something useful.
And the disappearing-skirt bug tells us that it is possible to have items that do not render, not just "haven't rezzed yet" but truly do not render at all, while still fully existing in every other fashion.
So if that's the case, shouldn't there be some way, some how to create a cloaking-screen prim that truly does not render, while simultaneously occluding everything behind it? I wouldn't have a clue how to go about doing it, but is there some technical reason why it couldn't be done? Have I completely misunderstood what occlusion culling is supposed to do?
(Was going to put this in the technical forum, but that seems to be just a users-having-technical-problems forum. Oh well.)
|
|
Dana Hickman
Leather & Laceā¢
Join date: 10 Oct 2006
Posts: 1,515
|
03-14-2008 19:50
Occlusion in SL flat out sucks, but like you I'm assuming the way they have it implemented here has some benefit. Other game engines that use precompiled environment data, like the Unreal engine, have exceptionally effective occlusion. You can use occlusion zones, which are like prims or flat planes with an occlusion property, to prevent rendering of whats behind them until they actually come into view. These are hidden outside of world space, or inside objects so you cant see them directly, but they are really good at keeping hte FPS high in such a high detailed environment. The computational cost of these things CAN be rather high if not used right, so it's a tradeoff between level load time (environment rez time), and FPS once you're in. I would assume that true per-object occlusion would be a real monster in a live environment like SL.
I'm not sure if you could get the true invisible effect you're looking for in SL right now. You would need 100% transparent walls with a texture or prim property that occludes all prim objects behind it. Sandwich a thin invisiprim layer to it to occlude any avatars behind it, and it would be close... You would still be able to tell somethings there though because it would also hide any buildings, objects, or AVs on the other side of the hidden building too. Like the invisiprim effect... Also I'm fairly sure that local lights and particles could be seen from inside. *shrugs*
The skirt bug suggests it's possible, like you say, just not sure if that behaviour can or would be harnessed by LL for us to use.
|
|
Winter Phoenix
Voyager of Experiences
Join date: 15 Nov 2004
Posts: 683
|
Intriguing concept. Lets hear more.
03-14-2008 20:05
Waiting for more rocket scientists to insert their own two cents worth.
_____________________
~GIVEN FREE REIGN THE SYSTEM WILL TELL YOU, WHAT TO DO, WHEN AND HOW TO DO IT, WHAT YOU CAN READ, VIEW, OR LISTEN TO, WHAT YOU CAN SAY, WHAT YOU CAN DO WITH YOUR OWN BODY, AND SUCK ALL YOUR MONEY OUT OF YOUR POCKET WHILE IT DOES THIS! QUESTION AUTHORITY!~ W.P
|
|
Bree Giffen
♥♣♦♠ Furrtune Hunter ♠♦♣♥
Join date: 22 Jun 2006
Posts: 2,715
|
03-14-2008 20:06
I think occlusion is a client-side effect and only if your video card supports it. Not everyone would be affected. I don't know of any way to do what you're thinking and I've never seen it done before. I guess if it's truly invisible I would never see it.
|
|
Bec Sadofsky
Yup it's Iowa
Join date: 8 Jan 2008
Posts: 535
|
03-15-2008 09:17
Dont know if this would help but in class we made a clear well square and put a 4 leaf clover on one side. When you looked at the other side it was just clear, didnt even see the first 4 leaf clover.
So thinking on that train of thought. if you took your walls and made them totally clear on all sides, then did a texture on just the inside that should work shouldnt it?
Bec
|
|
Annabelle Babii
Unholier than thou
Join date: 2 Jun 2007
Posts: 1,797
|
03-15-2008 10:18
From: Bec Sadofsky Dont know if this would help but in class we made a clear well square and put a 4 leaf clover on one side. When you looked at the other side it was just clear, didnt even see the first 4 leaf clover.
So thinking on that train of thought. if you took your walls and made them totally clear on all sides, then did a texture on just the inside that should work shouldnt it?
Bec No, because you would see the part of the interior wall that faces you. It's a neat effect for aquariums, but not useful for invisibility.
|
|
Bec Sadofsky
Yup it's Iowa
Join date: 8 Jan 2008
Posts: 535
|
03-15-2008 11:18
Yes just got home and figured that out.
Bec
|
|
Marie Price
Dances alone.. Sometimes
Join date: 23 Feb 2008
Posts: 16
|
03-15-2008 12:29
Don't know if this is any help to you, came across it in a thread here awhile back.
Marie.
NOTECARD: INVISIBILITY PRIM PUBLIC v1.1b by Beatfox Xevious last updated Mar. 22, 2006 -------------------------------------------------------------------------------- This script is free for anyone to copy and edit as they please. You can credit me if you really feel like it, but you don't have to by any means. I'm providing this because I occasionally hear of requests for such an item, and I know there's people out there who would charge exorbitant L$ for something that really isn't that hard to make (if you know how).
How It Works
SL has a few special system textures that are only accessible by UUID key and that possess properties which no other textures do. Namely, a prim using one of these textures is capable of rendering whatever avatar textures and textures containing alpha channels are inside or behind it completely invisible. Normal textures that do not contain alpha channels will remain untouched. This is useful for hiding part or all of an avatar while keeping non-alpha attachments visible. Great for creating digitigrade legs, skeletons, Rayman -- the sky's the limit!
Note that water and trees are alpha textures, and as such will be hidden by invisibility prims. Also, the sky behind such a prim may appear just a tad discolored. As of this writing, shiny/bumpy objects render correctly when behind invisiprims that use this script (this was not always the case).
How to Use
Simply place the "Invisibility Prim Public" script in whatever prims you want to make into invisiprims. It may take up to a minute for the invisibility effect to activate. Any copies you make of the prims will also contain the script automatically.
About the Refresh Script -- CHANGED IN v1.1
The invisibility textures can be a little quirky, and frequently they will make more than just avatars and alpha textures invisible. Something to do with the texture loading order -- I don't fully understand it myself. Anyway, the refresh script fixes that by automatically alternating between 2 different invisibility textures every 30 seconds. It's synchronized to the SL clock so that all copies of this prim (Invisibility Prim Public v1.1, NOT v1.0) will refresh at the same time. It's a good idea to leave the script unmodified, since if there are any other invisiprims in the current render-area that use the same invisibility textures but do not have the default refresh timing, the refresh may not work properly.
Have fun!
-Beatfox ============================== SCRIPT:
// Invisibility Prim Public v1.1b // by Beatfox Xevious // last updated Mar. 22, 2006
init() { llSetPrimitiveParams([PRIM_BUMP_SHINY, ALL_SIDES, PRIM_SHINY_NONE, PRIM_BUMP_BRIGHT]); llOffsetTexture(0.468, 0.0, ALL_SIDES); llScaleTexture(0.0, 0.0, ALL_SIDES); llSetAlpha(1.0, ALL_SIDES); }
refresh() { llSetTexture("38b86f85-2575-52a9-a531-23108d8da837", ALL_SIDES); llSleep(30); llSetTexture("e97cf410-8e61-7005-ec06-629eba4cd1fb", ALL_SIDES); }
default { state_entry() { init(); llSetTimerEvent(5); } on_rez(integer start_param) { init(); }
timer() { if ((integer)llGetWallclock() % 60 < 10) { refresh(); } } }
|
|
SuezanneC Baskerville
Forums Rock!
Join date: 22 Dec 2003
Posts: 14,229
|
03-15-2008 13:39
I have read that the timer and refresh related part of that script is no longer relevant due to code changes. Supposedly one just needs to set appropriate texture.
Anyone that needs an invisibility prim of the sort described above sort should have no trouble getting one from me, mentors, NCI, tons of freebie places, etc.
_____________________
-
So long to these forums, the vBulletin forums that used to be at forums.secondlife.com. I will miss them.
I can be found on the web by searching for "SuezanneC Baskerville", or go to
http://www.google.com/profiles/suezanne
-
http://lindenlab.tribe.net/ created on 11/19/03.
Members: Ben, Catherine, Colin, Cory, Dan, Doug, Jim, Philip, Phoenix, Richard, Robin, and Ryan
-
|
|
Bree Giffen
♥♣♦♠ Furrtune Hunter ♠♦♣♥
Join date: 22 Jun 2006
Posts: 2,715
|
03-19-2008 00:32
Sorry about dredging this up. It's not that old a thread  anyways. But I was playing with windlight and it seems that a large enough invisprim makes everything invisible including non-alpha prims. I made a 10x10x10 invisprim and was moving it about and found that my avatar and all the prims were made invisible including the avatar's title. Smaller invisiprims like those used with attachments and shoes still do not hide other prims. You might be able to make that invisible tower if these features stay in windlight and it becomes the main client.
|