To enhance the immersion in Second Life I propose the rendering of real mirror reflections on flat prim surfaces. I created a patch that does this, however it's in a very early stage, currently only able to render mirrors in forward rendering mode, not in deferred rendering. I am not nearly as good with 3d graphics as I would like to be, and I only know very little about the render pipeline, so this patch is probably not the best quality. But I am sure it can be enhanced with the right knowledge behind it.
There are still a few issues:
- sometimes mirrors disappear after being occluded
- particles showing the wrong orientation in the mirror (same error with LL water reflections)
- alpha sorting is backwards in the mirror axis (same error with LL water reflections)
These need to be addressed, maybe by someone who has more knowledge than I have, or I maybe I can fix them myself. I will keep on trying to improve this patch and I would be glad if I could get some help to make this a reality for all Second Life users.
Since I can't change the server end, I had to "hack" a little to make mirrors appear on chosen surfaces only. The final implementation probably should include a "mirror" percentage spinner that is saved server side, and the viewer renders the mirror with the selected reflectiveness on top of that face.
The patch applies cleanly to viewer-release.
How to create a mirror with this patch:
- check out viewer-release from Linden Lab's bitbucket
- apply the patch attached to this Jira
- compile the viewer
- obtain the mirror texture I made (just send me an IM) or change the mirror texture UUID in the settings to one you want to use
- apply the texture to any flat prim face
- make the face transparent to make the mirror come up, higher transparency means more reflectiveness