Search Unity

  1. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice
  2. Unity is excited to announce that we will be collaborating with TheXPlace for a summer game jam from June 13 - June 19. Learn more.
    Dismiss Notice

Showcase Mirrors and reflections for VR

Discussion in 'VR' started by Tom-Goethals, Jan 30, 2022.

  1. Tom-Goethals

    Tom-Goethals

    Joined:
    Mar 6, 2015
    Posts:
    102
    Hi,

    I've spent the better part of my holidays and free time creating and optimising a set of shaders and scripts to get Mirrors and other reflective surfaces working in VR. Optimised in a way that it runs smoothly on Oculus Quest 2.

    There's no limit to the amount of surfaces that can reflect each other and no limit to the amount of recursions either. However with the limited rendering budget on mobile hardware 2 recursions on 2 simultaneously visible reflective surfaces is about as far as you can get. But on PC you can really go nuts.

    The shader is created using Shadergraph and supports Refraction.

    It's URP Multiview (singlepass) compatible and I'll be releasing it to the Asset Store soon.

    Here's a quick teaser.
     
  2. Tom-Goethals

    Tom-Goethals

    Joined:
    Mar 6, 2015
    Posts:
    102
    Some more rough content, testing everything
     
    Eclectus and glenneroo like this.
  3. glenneroo

    glenneroo

    Joined:
    Oct 27, 2016
    Posts:
    232
    This look absolutely amazing! I would love to use this in my upcoming project.

    When do you plan to put it on the store? I read somewhere that there is currently an approval queue for submitting new packages which is ~60-90 days.
     
  4. kenamis

    kenamis

    Joined:
    Feb 5, 2015
    Posts:
    387
    It's only singlepass compatible, not actually rendering the reflected view in singlepass, correct?
     
  5. Tom-Goethals

    Tom-Goethals

    Joined:
    Mar 6, 2015
    Posts:
    102
    Sadly you're correct, in URP, the moment you set a camera to use a targetTexture it does not render to a double wide texture anymore. Therefor i'm stuck rendering the view again for the right eye. I'm keeping an eye out for any changes in this behaviour, the moment we can render double wide in renderTextures I'm updating the asset.
     
    kenamis likes this.
  6. TomGoethals

    TomGoethals

    Joined:
    Jan 29, 2022
    Posts:
    50
    Last edited: Feb 11, 2022
    BjoUnity3d, Eclectus and glenneroo like this.
  7. mabulous

    mabulous

    Joined:
    Jan 4, 2013
    Posts:
    198
    Looks cool! Does that consistently hit 72fps on Quest 2?
     
  8. TomGoethals

    TomGoethals

    Joined:
    Jan 29, 2022
    Posts:
    50
    For sure, will try to find the time to release an APK to sideQuest. Not that it means much.. but all video in the teaser was recorded straight of device.
    (That's why the screen is cut in half most of the shots)
     
    fuzzy3d and glenneroo like this.
  9. mabulous

    mabulous

    Joined:
    Jan 4, 2013
    Posts:
    198
    The video looks more like 30ish fps though
     
  10. TomGoethals

    TomGoethals

    Joined:
    Jan 29, 2022
    Posts:
    50
    Video recording straight from Quest is actually always only 24 fps that's why i said it does not mean anything besides the fact that is was running on quest during recording. :)
    upload_2022-2-11_16-30-23.png

    The demo, light baked and occlusion culled gets a smooth 72 fps on Quest 2.

    But be assured this is a heavy effect! The demo is made like most level designs to limit the amount of mirrors you can see at anytime.
     
    Eclectus, glenneroo and mabulous like this.
  11. TomGoethals

    TomGoethals

    Joined:
    Jan 29, 2022
    Posts:
    50
    Making a few new materials as an update to the asset.

    I've been trying to get Unity to render to a renderTexture as a doublewide texture containing both eyes.
    (as the main camera does in multiview/singlepass rendering) but so far no luck.

    Also have an idea to cut texture memory usage in half or more especially for deep recuring mirrors. Currently making a prototype to test this idea.
    upload_2022-2-23_22-42-38.png
    upload_2022-2-23_22-43-40.png
     
    mabulous likes this.
  12. TomGoethals

    TomGoethals

    Joined:
    Jan 29, 2022
    Posts:
    50
    Small tutorial like movie with bad sound showing a quick elevator model with 3 mirrors.


    upload_2022-3-21_23-30-43.png
     
    laurentlavigne and glenneroo like this.
  13. jingato

    jingato

    Joined:
    Jun 23, 2010
    Posts:
    299
    Hey, this looks great. Did you ever since the double wide rendering issue? If not, does that mean the performance is basically cut in half because you have to render it twice?

    I am using a different package right and it looks great in the editor, but when I run it on the device I get the reflections doubled, like it’s rendering both eyes and the reflections seem to move all over the place. That said, I’ve been looking for a replacement package that would suit my needs.

    all I need it for is a planar reflection on a arcade basketball machine. Would this work for that or is it more just for mirrors?
     
  14. TomGoethals

    TomGoethals

    Joined:
    Jan 29, 2022
    Posts:
    50
    Hi Jingato,

    I did not (yet) convert it to double wide rendering, it's on my list to re-investigate.
    (Have not read anything in the changelogs about a fix for renderTextures to support it so don't get your hopes up)
    However it won't be made twice as fast if it works. Double wide rendering is not free either, but i imagine it would help a lot.

    But still, you can do some crazy stuff on Quest2 with good practises. Check out the APK I made if you have Quest2, the link is on the bottom of the description page.
    https://assetstore.unity.com/packag...effects/mirrors-and-reflections-for-vr-212493

    Reflections on an almost completely transparent glass plane (like your basketball machine) would work perfectly with the asset. You can add small refractions and smudges from dirty fingers or some spilled beer on top :) [EDIT: added a quick test video to showcase a transparant dirty glass surface and a quick WIP for the upcoming portals asset]

    I'm currently working on VR Portals. Not just rendering them correctly but support for popular rigs and everything, it's shaping up to become something cool!

     

    Attached Files:

    Last edited: Aug 18, 2022
    Eclectus and Ben_at_Work like this.
  15. jingato

    jingato

    Joined:
    Jun 23, 2010
    Posts:
    299
    Well then, SOLD! That looks very impressive. I guess that makes sense though because you are still rendering the same amount of pixels in the end That upcoming portals package looks freaking sweet too. Reminds me of Rick and Morty :)

    I'm leaving for vacation in the morning, but I'll be looking to pick up the reflection package when I return.

    Thanks for the quick response.
     
    TomGoethals likes this.
  16. jingato

    jingato

    Joined:
    Jun 23, 2010
    Posts:
    299
    Hey, so I went ahead and picked up the package and figured I'd give it a shot before taking off tomorrow and I am having quite a difficult time getting it to work. I can't seem to get the effect I am looking for. I've played around with the shaders / materials and it seems as I increase specular value, the mirror effect increases, but the more I increase it the less I am able to see the texture. I can't get it to a similar state like I had it in the previous package I was using which shows both the texture and the reflections pretty well. I've attached 2 screenshots to show you what I mean. If I increase the specular to the point where I have the same amount of reflections, I basically can no longer see the texture.

    Is it possible to get an effect similar to this?

    Also, I am trying to set the skybox material on the skybox script of the camera gameobject, but it keeps getting reverted back to nothing seemingly randomly. Is there a way to make that stick?

    It seems this package may be more geared towards actual mirrors that general reflections? Or am I missing something? Perhaps I misunderstood.

    Thanks for all the assistance :)
     

    Attached Files:

  17. TomGoethals

    TomGoethals

    Joined:
    Jan 29, 2022
    Posts:
    50
    Hi Jingato!

    Thanks for supporting the asset! Your screens look good! Can't wait to try and play that game.
    It's certainly possible to make it look like that.

    Make sure you've baked your lighting before playing around with the spec values. Also, have a look at the documentation about textures. (EDIT: It seems I missed the part about inverting the specular map in the alpha channel in the docs, will update!)
    [EDIT2: Added a dedicated page in the documentation about converting a pbr texture found here https://docs.google.com/document/d/1mED5MoYx9XgSbKIRe5Wz_zBv9itWDnEae0U8t1RoOCE/edit?usp=sharing page 16]

    Basically, the alpha channel of your floor texture controls how much reflection is coming through. (that way you don't need an extra texture lookup for your specular) The easiest way i know of is opening your texture in photoshop and adding the specular map in the alpha channel, just use the psd as the texture for fast iteration.
    (!! You have to invert the specular texture of a PBR specular map for it to look correct)

    upload_2022-8-19_12-36-14.png
    upload_2022-8-19_12-32-55.png
     
    Last edited: Aug 19, 2022
    Eclectus likes this.
  18. jingato

    jingato

    Joined:
    Jun 23, 2010
    Posts:
    299
    Excellent. I’ll give that a read and try it out in the next few days. Do you have any idea about the skybox material getting reset constantly?
     
  19. TomGoethals

    TomGoethals

    Joined:
    Jan 29, 2022
    Posts:
    50
    No idea, I just add a skybox material to the lighting settings and I'm seeing that one in the headset, never actually added it to the camera directly. Are there any advantages to doing that? I don't think I'm replacing it but will have a look this weekend to be sure.

    Enjoy your vacation!
     
  20. jingato

    jingato

    Joined:
    Jun 23, 2010
    Posts:
    299
    Thanks for having a look. I will check again as well as I will have some down time this weekend. Basically, I have my main skybox, but I need the camera that is rendering the reflections to clear to a different material setup using a cube map, like a sky map. This material is a cube map of the interior building whereas the main skybox is the outside world. I am doing this so I don’t need to render any of the static environment when rendering the reflections, just the game table. When I setup the mirror system it created a camera object and on that object is a skybox script, which I assumed you made. Maybe not though. Either way, when I set my material to it, the reflections clear to my inside room cube map material, but it keeps getting reset to nothing. Also, does the camera that was added need that flare script that is also attached to it?

    thanks! I will start enjoying that vacation soon!
     
    TomGoethals likes this.
  21. TomGoethals

    TomGoethals

    Joined:
    Jan 29, 2022
    Posts:
    50
    Ok gotcha! The reflection cameras are created at runtime and design time and are not saved in the scene. (Will probably hide them in the next version) I always assumed the skybox and flare script should copy the settings of the main camera (which I did not implement) but this is a good use case where you want fine control over these properties. Will move them to the mirrorRenderer script so you set a skybox for the reflection cam there.
     
  22. jingato

    jingato

    Joined:
    Jun 23, 2010
    Posts:
    299
    Ah, that makes sense now. That would be great, thanks!
     
  23. TomGoethals

    TomGoethals

    Joined:
    Jan 29, 2022
    Posts:
    50
    An update has been created and submitted. They usually take 3 business days to review so should land somewhere on wednesday. (might be sooner)

    upload_2022-8-20_16-35-21.png
    upload_2022-8-20_16-36-6.png
     
  24. jingato

    jingato

    Joined:
    Jun 23, 2010
    Posts:
    299
    you the man!
     
  25. TomGoethals

    TomGoethals

    Joined:
    Jan 29, 2022
    Posts:
    50
    Update has been published already! Let me know if this works for you
     
  26. jingato

    jingato

    Joined:
    Jun 23, 2010
    Posts:
    299
    Hey, Sorry to keep bothering you, but I have one final issue. I reintegrated the package and set it up again and I was able to get it looking good, except there is one issue. All the reflections seem to be in the wrong place on the mesh I am using. They look like they are to the left of where they should be. Also, look at the blue reflection. That one seems like it is down towards the front of the table more than it should be, rather than right under the blue of the table.

    I don't recall it being like that when I integrated the package before the update, but perhaps I did something wrong this time.

    The reflections also seem clipped. You can see the bottom of the text mesh being clipped in the reflection. That also was not like that previously. I tried messing with all the settings I could, but nothing seems to help.

    Also, not sure if it matters at all, but I notice with this update there are two cameras being instantiated at runtime for the camera render. One is orthographic and one if perspective. I'm pretty sure there was only an orthographic one previously.

    Thanks!
     

    Attached Files:

  27. TomGoethals

    TomGoethals

    Joined:
    Jan 29, 2022
    Posts:
    50
    The offset could be the normal map that is skewing things to one side? What if you remove the map? Does it fix it? Maybe the normal map is not marked as normal?

    A high offset property on the mirror surface could account for the clipping.

    Both things could also be explained if the plane does not have it's centerpoint at z=0. Check the position and orientation of the mirrorSurface its gameobject. Is the blue arrow pointing away from the plane and is the centerpoint in the middle?

    If you're available for a quick call (screenshare) drop me a mail and I'll send an invite.

    There should only be one camera for each camera in the scene that is marked as MainCamera. + One for the scene view.

    Hope that helps, but do send me a mail, it's so much easier to quickly have a look at the scene to help out.
     
    Last edited: Aug 22, 2022
  28. jingato

    jingato

    Joined:
    Jun 23, 2010
    Posts:
    299
    Hey,

    No need, I figured it out, though I'm not sure if it is a bug or if I just did not notice it when I previously implemented it.

    So the whole offset issue was due to the material having a refraction value of 0.1, which was actually the default for me so I was surprised it caused that. Setting the refraction to zero fixed that alignment. This looks to be new behavior to me, as this material was created when I implemented it with the previous version and it did not have that. Furthermore, this is an opaque material, so it is surprising that the refraction value does anything at all.

    As for the clipping issue, I was testing the clipping offset and what I realized is that some parts needed a negative clipping value to look correct and some needed a positive value. I deduced that this had to be related to the fact that the object with the mirror was rotated. I opened up Blender again and realized that the rotation of that object had been frozen / applied at some point so the local axis ( blue ) was pointing straight down and not inline with the normal of the surface. I fixed that and reimported into unity and now the clipping is resolved as well.

    I want to thank you again for all you assistance. You went above and beyond with your support. Your offer to even setup a screen share is very much appreciated. Support this good is rare so I will be sure to leave a great review on the asset store.

    I think I have everything setup the way I want it now and it looks great!

    John
     
    TomGoethals likes this.
  29. TomGoethals

    TomGoethals

    Joined:
    Jan 29, 2022
    Posts:
    50
    Hi John,

    Great to hear you've got it the way you want it.

    I'll change the default refraction value of .1 back to 0.

    A mirror can have refractions even when not transparant. A subtle normal map of the wooden floor with a bit of refraction might look good.

    If you need a beta tester for the game, let me know.

    Tom
     
    jingato likes this.
  30. fuzzy3d

    fuzzy3d

    Joined:
    Jun 17, 2009
    Posts:
    229
    Hi

    to be sure, I would like to ask - in virtual reality - are the images in the mirror really stereoscopic, do they have depth? Because the classic use of reflection probes has no depth.

    Thank you for answer.
     
  31. TomGoethals

    TomGoethals

    Joined:
    Jan 29, 2022
    Posts:
    50
    Absolutely! Perfect stereo vision.
     
    fuzzy3d likes this.
  32. fuzzy3d

    fuzzy3d

    Joined:
    Jun 17, 2009
    Posts:
    229
    wow!
     
    TomGoethals likes this.
  33. NemesisWarlock

    NemesisWarlock

    Joined:
    Jan 21, 2017
    Posts:
    141
    Would it be possible to have the Reflections show different materials, or Culling Masks?

    I'd like to have the mirror show the world desaturated (but still reflect the player normally).
     
  34. jingato

    jingato

    Joined:
    Jun 23, 2010
    Posts:
    299
    I’ll let the author answer in detail, but I can tell you that you apply the mirror effect using a custom material you provide. It just needs to use the assets custom shader. You can get cool effects just by setting the texture and normal map a on the material. It would be pretty easy to extend the shader as well, since it is done in shadergraph. One thing i may consider adding to the shader myself is some blurring so that it is blurred based on the distance to the mirror, for example. It is very flexible.
     
    TomGoethals likes this.
  35. TomGoethals

    TomGoethals

    Joined:
    Jan 29, 2022
    Posts:
    50
    As Jingato already said, the shadergraph is pretty easy to understand and can be copied and modified.
    However, your specific question about having a certain culling mask result (the background) be handled by one material and another (the player) by another material would require 2 mirrors on top of each other. They can be transparent so it should be possible.

    [EDIT: pulled it off, required an override to the MirrorRenderer to allow for a backgroundColor to be set, will submit an update to the store]
    [EDIT2: Update submitted, should be live in a couple of days depending on the Unity review team workload]
    [EDIT3: Update was already approved, example with desaturation is included]
    upload_2022-8-28_12-10-41.png
     
    Last edited: Aug 29, 2022
  36. NemesisWarlock

    NemesisWarlock

    Joined:
    Jan 21, 2017
    Posts:
    141
    Awesome update! Thankyou!
     
  37. jingato

    jingato

    Joined:
    Jun 23, 2010
    Posts:
    299
    Hey,

    I am adding a new mirror into my scene and I am running into some issues I can't seem to resolve. As you can see in the attached photos it is a mirror that sits over a sink in a bathroom. What is weird is that you can see the lower half of the sink in the mirror. That doesn't seem right since the top of the mirror would be blocking that view to the mirror regardless of the users perspective. It doesn't seem like the bottom half should ever be visible in the mirror. Also, the light mesh doesn't seem to reflect at all.

    The other issue is that when I move the player camera up / down, the whole reelection disappears and then turns black as I move up, then returns as I move down.

    I messed with all the available settings but nothing seems to fix that. Any ideas? Have you run into these issues before?

    p.s. I'd like to make a suggestion for future updates. If a mesh has two material slots it automatically uses slot 0, which may not be the slot I want the mirror to be on. It would be nice if we could control that instead of having to reauthor assets. If it is an asset that is not my own I am sol too.

    Cheers!
     

    Attached Files:

  38. jingato

    jingato

    Joined:
    Jun 23, 2010
    Posts:
    299
    I figured out my issue so I figured I would post it here for others. The issue came down to the orientation of the asset. I keep forgetting that requirement. I updated the asset in Blender so the Z ( in blender ) / blue axis points to the back of the mirror and now everything is working perfect.

    It would be a big help if there was any way that requirement could be removed. Maybe by providing an axis option for the surface? It's not that terrible, I just forget about it every time. Even something as simple as a gizmo in the editor which was a simple arrow pointing towards where the front of the mirror should be. That was you would immediately know your asset was not correct.

    Anyways, back to work. Cheers!
     
    TomGoethals likes this.
  39. TomGoethals

    TomGoethals

    Joined:
    Jan 29, 2022
    Posts:
    50
    There actually is a way to do it by changing the "myTransform" slot of the mirrorSurface to something else, and then move that one to the correct position.. But that's not ideal as it is now either, cause when you select that one, the Material does not get selected anymore.

    A Gizmo that can be dragged that's setting an internal offset/forward vector would indeed be the way to go.
    The multiple materials idea is great too! what about a checkbox to just take all Materials in the meshRenderer. Or when deselected an authored list of materials of your choosing.

    Updates will have to wait a bit though. The portals are sooo close :) just need time to record tutorial videos.

    Have a look at the portal documentation, it's coming along!
    https://docs.google.com/document/d/1H0ZYh-Rs5vwENm5eayC8ovxJjB5G0xh8EKm3325AQhM/edit?usp=sharing
     
    jingato likes this.
  40. TomGoethals

    TomGoethals

    Joined:
    Jan 29, 2022
    Posts:
    50
    fuzzy3d and glenneroo like this.
  41. TomGoethals

    TomGoethals

    Joined:
    Jan 29, 2022
    Posts:
    50
    jingato likes this.
  42. SpaceRay

    SpaceRay

    Joined:
    Feb 26, 2014
    Posts:
    455
    Hello, I have bought your awesome, amazing and excelent mirrors that look very good and well done but I hace a few questions

    All this is for Desktop computer and not mobile
    ________________________________________

    QUESTION 1 - LIFT DEMO - I want to remove all the fog or gradient or whatever It may be that happens in the recursive mirroring at distance but do not know where this is available to turn off this effect and have It totally Clean
    ________________________________________

    QUESTION 2 - ADD A MIRROR TO A SURFACE
    I understood and know that each Mirror object is a planar object with one direction only, so I want to be a able to make a cube with 6 mirrors and also a dodecahedron with 12 mirrors but what I am still missing and did not understood yet is how to apply the Mirror to a flat surface and how to do if It is a triangle, circular hexagonal surface, or is only possible to make rectangular and square mirrors?

    i know that each Mirror must have its own separate mesh

    If for example I Want a 6 cube Mirror that can reflect and Mirror other 6 cube Mirror that are near and their surrounding objects each one should have the blue Arrow to the front
    ________________________________________

    QUESTION 3 - INFINITY MIRROR INTERIOR OBJECT - On internet you can find many Infinity Mirror objects that reflect themselves recursively on the inside of the object ( the opossite as number 2 above) and they are in different geometric shapes, as cubes, pyramids, dodecahedron, and other

    Here is an example of a 12 Mirror dodecahedron


    Here are more examples from this artist


    And even more complex


    And for last a simple 6 Mirror cube


    Thanks very much for your possible help
     
    Last edited: Jan 31, 2023
  43. TomGoethals

    TomGoethals

    Joined:
    Jan 29, 2022
    Posts:
    50
    Hi SpaceRay,

    Must have missed this post! Always feel free to email me with questions should I not reply on the forums!

    "QUESTION 1 - LIFT DEMO - I want to remove all the fog or gradient.."

    Uncheck the "Use recursive darkening" checkbox on the 3 mirrors "MirrorSurface" script.
    The deepest recursion will still have the Fade Color (infinite recursions is impossible to render and any real consumer mirror will also darken to green after 8 or something recursions)
    upload_2023-2-27_22-55-25.png

    "Question 2: Mirror Cubes ... If for example I Want a 6 cube Mirror that can reflect and Mirror other 6 cube Mirror that are near and their surrounding objects each one should have the blue Arrow to the front"

    The mirror is a planar object. The planar (flat) mesh can be any flat shape (a star, a circle or a normal quad) If you want a mirror cube, you need 6 quads with 6 mirror surfaces on it, all 6 surfaces need to be referenced in the mirrorRenderer's sufaces list. It's really that simple.
    upload_2023-2-27_23-9-10.png
     
    SpaceRay likes this.
  44. TomGoethals

    TomGoethals

    Joined:
    Jan 29, 2022
    Posts:
    50
    Version 1.1 submitted.

    Implemented Reflected Occlusion Culling. This means all reflections no matter how deep can now do occlusion culling. Depending on your scene (if you're using baked occlusion culling) you can expect a huge performance boost!

    You can now use any transform to define the normal of the reflection. No longer depending on the pivot point of the mesh. This makes it easy for meshes (like the unity plane) that have their forward pointing in the wrong direction. Added an example to showcase this.

    While reflectionCameras where not saved in the scene before, they're now also no longer shown. The "Show Debug Info" checkbox now shows the position of the reflection camera(s).

    Added a reflection tint color to the shader, use it to change the color of the reflected light.
     
    SpaceRay and fuzzy3d like this.
  45. SpaceRay

    SpaceRay

    Joined:
    Feb 26, 2014
    Posts:
    455
    Thanks very for your answer and showing how it is done, of course that I know that you can not get infinite recursion, and I agree to have surely some fog after the 8th recursion as you say and what I want is what you have shown correctly and well done on the screenshot you have attached so I will try it

    Thanks for the suggestion to create a cube made of mirrors, sorry that I am still learning how to use the flat planar surfaces and experimenting it with other shapes different than walls or floor.
     
    TomGoethals likes this.
  46. ZGMT

    ZGMT

    Joined:
    Apr 3, 2023
    Posts:
    1
    Hi, Can supprot with oculus APPSW?
     
  47. TomGoethals

    TomGoethals

    Joined:
    Jan 29, 2022
    Posts:
    50
    Have not tested with APPSW, but have heard of people having some success with it. Bit skeptical myself as APPSW is counting on motion vectors being set to the texture, these vectors will follow the motion of the flat plane of the mirror and not have the vectors based on the motion "inside" of the mirror.. so I don't think the motion inside the mirror will benefit from APPSW and some stutter might be induced.
     
  48. DanjelRicci

    DanjelRicci

    Joined:
    Mar 8, 2010
    Posts:
    314
    Bought this asset in the hope to replace my own mirror solution for a Quest 2 game, but unfortunately I have way too specific requirements and performance limits for this plugin. But I will indeed use it for a classic wall mirror in the main menu- ironically my system can't do that! :D

    I know the following aren't average use cases, but here's a bunch of things I'd love to see in this plugin:
    - Option to render 2D mirrors in VR, using a single camera
    - Define a maximum amount of mirrors to render each frame, from 1 to x
    - Variable mirror framerate with priority to to the nearest mirror to the eye sight line
    - Fake zoom in/out effect for mirrors
    - A way to add scripts to the mirror camera, so to use custom occlusion solutions
     
  49. TomGoethals

    TomGoethals

    Joined:
    Jan 29, 2022
    Posts:
    50
    All very good suggestions!

    Wondering if at a certain distance you would even notice it's only one (center)eye rendered for a mirror. could be an option with a distance parameter at which it starts falling back to mono rendering.

    The variable framerate stuff is worth exploring. There currently is a "render every x frames" option but I find I'm never using it. In VR this is so weird to look at that it's unusable.

    Limiting the amount of simultaneous mirrors that are allowed to render sorted on distance would be a useful feature.

    Thanks!
     
    DanjelRicci likes this.
  50. DanjelRicci

    DanjelRicci

    Joined:
    Mar 8, 2010
    Posts:
    314
    Yeah I tried it and agree, must be because the mirror shader uses screen space calculations, so if the mirror is not updated every frame, funky stuff happens. In my own case I don't use screen space so even if choppy, it looks "stable". Glad be of any help, have a good one!