Enable user made shaders materials and post processing in glsl / hlsl or even an integrated shader Graph
tracked
Araryn Resident
Enable users to create and import on SL custom made shaders. Their computation cost could be evaluted and reflected in an li cost. Like VR Chat an option to disable user made shaders or maybe block some user's shaders could be added just like it already exist with derrender and block tools.
Allowing post processing shaders would greatly improve the look of SL. See this proposition (https://feedback.secondlife.com/feature-requests/p/suggestion-to-add-overlay-based-shaders) It's a bit clumsy but it does show a need for more rendering customisation. SL being used by a lot of peoples to take screen shots of their avatars most using post processing from other sources like Reshade heavily. There is also this new viewer https://github.com/ApertureViewer/Aperture-Viewer/releases/tag/1.0.0 addressing this issue of giving post processing controls.
Why ?
-It would improve performance. Creators wouldn't have to rely on "hacks" to make certain effects like the so called cell shade and others. Adding details using Height map / bump maps without making the meshes more complex. Endless possibilties. And a better, more varied and interesting looking SL will always be a good thing on top of the perfomance gains from using less textures and meshes required to obtain the same effects.
-It would reduce the amount of texture usage and thus cache size. If someone is able make a single master material for decors using classic video game industry standard techniques like World Aligned textures, Triplanar textures and whole lot of others techniques. Then just a single material could be used for an entire set of entities. (I don't even know if SL uses batching but that could also help batching. Easily batching more assets together before rendering them for quite a huge boost of performances in the rendering pipeline.)
-It could be an extention of the already existing PBR material system. The current shader used could be the default lit one. And users could create their own with custom variables for parameters and textures that will be used. Just like we can see on Unity or Unreal. Maybe having a fallback lit shader in case it's disabled for any reasons listed here.
-It would be quite an advanced new tool for many users. But it would really bring SL to more modern standards. If you can spare the dev time of an integrated shader graph like seen in game engines it would be even better. Allowing less experienced users to make their own shaders this way and also have more control over what is possible to limit any abuse and broken shaders that would tank perfomances / cause issues.
-It could be tied to LSL scripting using a similar synthax as seen in Unity. Something like
llSetMaterialFloatValue(llGetMaterial(link_index,face_index),"Transparency",1.0); And perhaps output a boolean to know if it failed or not.
-It would actually probably indirectly answer a lot of other suggested features in one go. Like better water with waves. As well as open up other avenues for improving SL capabilities. Like tying shader params to LSL interpolated over time functions or being used in the particle system (that could use improvements as well) with maybe updating particle's variables over time for more stunning effects. It would allow to create better looking effects for a fraction of the cost than current methods uses. For exemple particle leashes could finally look continuous.
-It creates a new market. As we all know at the end of the day money is what drives the world. So why pass the opportunity to make some by have a whole new kind of products to be sold ? Shaders effects and post processing ones could easily become a new thing people make exchange and sell on SL.
-It could be part of Experiences. If people accept a land's Experience maybe it could allow for Experience Post Processing to be added.
The download cost of few line of code from a shader is very low. Even if all items on screen used a custom one. The only real cost is user sided and should be limited if proper system are in place. Maybe have some kind of rendering cost calculator like seen in engines like Unreal canceling the upload and use of costly shaders. Maybe tie this to some of the rendering settings. Culling any shaders over a certain complexity.
This would also probably give PBR a better image than it currently has in a lot of SL communities. If PBR was not only looking better but giving a new way of people to express their creativity through shaders. It would probably redeem a lot of the bad press it has.
The only downsides are of course development time and costs mainly. As well as making the system able to limit abuse and be enjoyable by most users is also a big difficulty to tackle. But imho I think it would be worth it.
You'll excuse the few typos, bad grammar and what not. I am not a native english speaker. Tho I am a game dev programmer with an interest in engine programing so at least there is a glimpse of knowledge behind my words if it matters.
Log In
SL Feedback
tracked
SL Feedback
Hello, and thank you for your detailed feature request regarding enabling user-made shaders, materials, and post-processing in Second Life. Your insights and suggestions are incredibly valuable, especially given your background in game development and engine programming. This feature has been brought up in the past, and we are merging your comments to help prioritize it. We have no estimate when it may be implemented, but please keep an eye on future updates. We appreciate your input and hope you continue to share your ideas to help improve Second Life. Thank you!