Porky Gorky Posted February 28, 2013 Share Posted February 28, 2013 Does anyone technically minded think LL will ever introduce reflective surfaces into SL? What are the technical limitations to them introducing this? I have been seeing reflective surfaces in video games for over a decade now. I want them here too.I know all the tricks for creating artificial reflections in SL, but they are all sub par compared to the real (simulated) thing imo. 1 Link to comment Share on other sites More sharing options...
Innula Zenovka Posted February 28, 2013 Share Posted February 28, 2013 This was briefly possible, I think, with the Official Viewer ages ago, back with 1.16: Niran has had some encouraging results more recently with his viewer, though, using some experimental code by Tofu Linden: 2 Link to comment Share on other sites More sharing options...
Motor Loon Posted February 28, 2013 Share Posted February 28, 2013 Highly unlikely, when we've asked about stuff like that the answer is usually that it'd require too many resources from the viewer. Link to comment Share on other sites More sharing options...
Rolig Loon Posted February 28, 2013 Share Posted February 28, 2013 Specifically, the resources that yoiu'd need would involve real-time ray tracing, which would put a heavy load on graphics cards. Most people would see a horrendous hit in FPS. Look at the hit people already take when they go to Ultra and enable all the shadows and lighting options, which are simple by comparison. Online games can get away with that sort of thing because they are dealing with static images. SL's images are updated every time you blink. Link to comment Share on other sites More sharing options...
Jenni Darkwatch Posted March 1, 2013 Share Posted March 1, 2013 Nah you don't necessarily need raytracing, at least not for simple reflections. Programmatically there have been cheats to allow that kind of thing as far back as software-3D games. You're right though, it would dramatically drop FPS. Considering how many people use SL still without deferred/shadows, I'd imagine for most it would bring SL to a crawl. Link to comment Share on other sites More sharing options...
Tateru Nino Posted March 1, 2013 Share Posted March 1, 2013 At some point a few years ago, I was given a replacement shader that file made all textures that were flagged 'shiny' into reflecting mirrors. It was quite cool (although, yes, it worked the card very hard). Just doing that was not a good option, mind - since not all 'shiny' flagged surfaces are intended to be reflective.and the workload on the viewer of making all shiny surfaces into mirror surfaces can really bog the GPU down in some locations. Nevertheless, it can be done - but it requires a new texture flag, for all faces and all objects. Even one lousy flag actually represents a huge increase in asset storage. Link to comment Share on other sites More sharing options...
leliel Mirihi Posted March 1, 2013 Share Posted March 1, 2013 Tateru Nino wrote: At some point a few years ago, I was given a replacement shader that file made all textures that were flagged 'shiny' into reflecting mirrors. It was quite cool (although, yes, it worked the card very hard). For that small of a change it more than likely was just using a single environment cube map for all reflective surface, which is really not much more than what the current shinny code does. For true reflections you need to render the scene from the point of view of each reflective surface, the same as you do with lights casting shadows, except you have to do a fully textured render instead of just depth like with shadow maps. So imagine how much of a load shadows puts on your computer, then multiply that by 5-20 and you'll get an idea of how much reflections cost. There's your answer for why we don't have reflections. If you're wondering how games can get away with it the answer is no user made content, complete control over where the player can look / move the camera. We don't have that kind of control in sl so we'll never be able to use the same optimizations that games use. 1 Link to comment Share on other sites More sharing options...
Jenni Darkwatch Posted March 1, 2013 Share Posted March 1, 2013 In game engines the impact is typically also minimized by agressively limiting the reflection range. I.e. only reflect things that are relatively close to the mirror, and only if the mirror itself is not too far away from the viewer. I just watched the vid about Tofu Lindens code - it seems to me that it uses a somawhat similar approach, aggressively blurring objects that are too far from the mirrored surface. Granted though, it would be a great way to radically slow down viewers Personally I think it would be a good idea to add this to the viewer for all shiny surfaces, similiar to light&shadow at deferred rendering: Turned off by default, let users turn it on if they like it. In other words: More stuff for people who can handle it without impacting people who can't handle it. Or at least minimally impact people. 1 Link to comment Share on other sites More sharing options...
leliel Mirihi Posted March 1, 2013 Share Posted March 1, 2013 Jenni Darkwatch wrote: In game engines the impact is typically also minimized by agressively limiting the reflection range. I.e. only reflect things that are relatively close to the mirror, and only if the mirror itself is not too far away from the viewer. I just watched the vid about Tofu Lindens code - it seems to me that it uses a somawhat similar approach, aggressively blurring objects that are too far from the mirrored surface. Granted though, it would be a great way to radically slow down viewers That would help a lot, however it's still ignoring the elephant in the room known as user made content. A lot of people like to just hand wave it away or pretend it doesn't exist but it's here, and it's the defining feature of SL, everything has to be designed around the assumption that poorly informed hobbyist are going to be using it. There is a large contingent of people in SL that don't know, and don't want to know. They will just make everything reflective then blame LL for the horrible performance. Personally I think it would be a good idea to add this to the viewer for all shiny surfaces, similiar to light&shadow at deferred rendering: Turned off by default, let users turn it on if they like it. In other words: More stuff for people who can handle it without impacting people who can't handle it. Or at least minimally impact people. I don't think turning shinny into reflections is a good idea. A lot of the time shinny is used for specular highlights (technically the same as reflections but whatever), making a change like that would break a lot of content, for various definitions for break. I think a better route would be to leave the old shinny as it is and move forwards with spec maps in the materials system and possibly reflections in the future. Link to comment Share on other sites More sharing options...
Helium Loon Posted March 1, 2013 Share Posted March 1, 2013 It wouldn't require ray-tracing. Nor would it create a huge hit (unless there were a LOT of reflective objects. For each object in the scene graph, if it is reflective, do a sub-render of a environment map. Such a render does require some extra computation, especially when resolution of the environment map is large. But a simple 256x256 sub-render is pretty quick, even with a 360 view angle (fisheye). Then apply it via any number of 'reflection' shaders that have been worked out. Now, yes, this is going to make a hit on the frame rates. There are ways to reduce it. Base the environment map resolution (i.e., the sub-render size) on the distance to the object and it's bounding box size. Objects that are only rendering to a few pixels on screen would be skipped entirely, while large and/or close objects would get larger resolution sub-renders. Now, yes, you could easily see frame-rates being reduce by 50%-95% depending on the scene complexity, how many reflective objects there are in view, and so forth. If it normally takes your GPU 20ms to render the frame (i.e., 50fps), a single moderately sized reflective surface could drop that 20%. 5 or 6 such objects in view could easily drop your render rates into low single digits. There are further ways to optimize it, only re-rendering the environment map when objects in the view frustrum move, every X frames, etc. By doing these kinds of things, though the coding is more involved, it can significantly increase the effective render speed. If you only render those sub-renders every 10 frames, while the reflections will 'lag' or 'stutter' a bit as far as seeing movement in them, it decreases the load consideably. It IS doable, it's just a LOT of work for only a small benefit. Though it would make the render MUCH more realistic. Next thing you know, we'll be asking for refractions and caustics too! Link to comment Share on other sites More sharing options...
Jenni Darkwatch Posted March 1, 2013 Share Posted March 1, 2013 Oh! SHADERS!!! Now we're talking. ~g~ Anyway. I see Ieliel's point of user-generated content and do agree with it. What I don't think is that user-generated, un-optimized content (that we already have with many, many horribly done rigged meshes) should be a showstopper for increasing the graphical appeal of SL over time. If SL still looked the same as it did when I first had a look some 5+ years ago I'm sure I'd long have given up on it. On the other hand, it does still need to run on fairly old hardware. 1 Link to comment Share on other sites More sharing options...
Lucis Raynier Posted March 1, 2013 Share Posted March 1, 2013 Why mirrors are not sold in the Marketplace? Link to comment Share on other sites More sharing options...
Rolig Loon Posted March 1, 2013 Share Posted March 1, 2013 Because, as everyone in this thread has explained in different ways, you can't make a mirror in SL with current technology, and it is unlikely that you will be able to for quite a while. 1 Link to comment Share on other sites More sharing options...
Lucis Raynier Posted March 1, 2013 Share Posted March 1, 2013 Thanks for answer! Clearly, we need more powerful computers)) Link to comment Share on other sites More sharing options...
Lucis Raynier Posted March 1, 2013 Share Posted March 1, 2013 About the mirrors in SL http://community.secondlife.com/t5/qanda/questionpage/blog-id/sla_shopping/article-id/5163 Link to comment Share on other sites More sharing options...
Rolig Loon Posted March 1, 2013 Share Posted March 1, 2013 Lucis Raynier wrote: About the mirrors in SL http://community.secondlife.com/t5/qanda/questionpage/blog-id/sla_shopping/article-id/5163 Yup, and i yiou read the comments here, you can probably see what Martin meant in that other thread about griefers causing big-time problems if we could make mirrors. If you think lag is bad today, imagine what it would be like if a griefer loaded down your sim with a mess of mirrors. 1 Link to comment Share on other sites More sharing options...
Lucis Raynier Posted March 2, 2013 Share Posted March 2, 2013 All would be stuck)) Link to comment Share on other sites More sharing options...
Porky Gorky Posted March 4, 2013 Author Share Posted March 4, 2013 Thanks to all who commented, I am now much better informed. Link to comment Share on other sites More sharing options...
Recommended Posts
Please take a moment to consider if this thread is worth bumping.
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now