Excellent Tutorial. I've been looking forward to more information on this. With some experiments on top, I learnt if you want a raycast to shoot through the wall and hit objects behind you will have to make a collider for the window object, the one that lets you see through the wall, big enough that it is thcker then the wall, and when the ray hits it has to create a new raycast to continue in the previous cast's trajectory (I used a ~Wall layermask, to avoid the ray from picking up a hit from the wall layer, on the new "continuation ray"). My only issue is with now using Canvas layers, and other alpha effects, all seem to be rendered behind my walls until the walls are blasted away and all there is, is the 3d world behind. My guess it has to do with sorting layers? ** update to that question. I figured out that if you replace the materials for your UI elements to be Opaque materials, then you will not have that issue. Transparent and Alpha textures are drawn from back to front. So, for all your effects and UI elements that are happening inside your living space, you might want to use Opaque materials so that they are drawn in front.
Thank you so much! Honestly, it's not about the views, I'm quite happy already. It's just great to see reactions of people when they save time or manage to do something thanks to my videos! :)
thank you for the tutorial. it was so helpful. i got stuck at one place for a while so sharing the info in case it helps someone. i had post-processing enabled in my camera because of which the rendering of "walls" layer was messing up - screen would split up, really horrible vr bugs .. i changed the render object event to "BeforeRenderingPostProcessing" to fix this
Thanks for your vedio! I have been working on it and I found that my world space UI is always behind the object with the stenciel tag. I tried to change the sorting layer but it didn't work. Are there any possible solutions
Had a question in mind ? Instead of assigning all MRUK objects the wall layer at runtime, can we render skybox and virtual environment objects after rendering the passthrough layer and compare Stencil = 1 in the new renderer object. And using stencil = 1 material on the window as the same. BTW nice tutorial.
First of all THANK YOU! This is so cool! Second. I am having an issue that is preventing me from implementing this. When I get to the 3:42 point where I should be able to see just the passthrough to the walls, I see passthrough in my left eye and the skybox in my right eye while using the link to test. Additionally I get the "...it's required to do a runtime permission request" issue, and when I hit fix, it just comes back, and the OVR manager never asks permission. Any ideas. Again thank you for all your videos. They are so amazing and so helpful!
I bumped into the same issues, but I just kept following up the tutorial, and the final outcome works as normal (build to the device, unplug the quest link, and run on the device alone)
Yes unfortunately it is normal to see two different things on two eyes. I am not entirely sure what this is caused by. Is there still an issue you are facing?
Hello ! Currently facing this problem in Editor and can't seems to make it work on standalone headset (Passthrough not showing at all). Did you encountered the same issue, if so did you manage to fix it ?
@@blackwhalestudio I think it has something to do with the shader. What about using the Stencil shaders that comes with the Meta SDK? They are three StencilClear, StencilSky and StencilWriter. I don't know if they can be used here
Hi, Great tutorial! When I play this from unity it works perfectly but when I build it and install on my quest it no longer has passthrough. Any ideas?
Great Tutorial man, very straight forward and easy to understand ! Keep up the good content ! I have a question is this functionality currently only doable using the OVR toolkit ? Or is there a way to do it with OpenXR aswell ? The MRUK has to be used in connection with the OVR set up I guess ?
I ended up taking a different approach BUT your tutorial is the only one I saw on youtube which mentioned checking for the renderer in ProjectSettings ->Quality, I was stuck for days with it not working on the Quest but now it does... So thank you very much this really is a helpful tutorial !@@blackwhalestudio
Great tutorial! Can’t wait to try it! I have a question. Do you know if it’s possible to have multiplayer option to the passthrough mode? Can I have it other people join (remotely not in local) when I am in the MR environment?
Amazing tutorial, thanks so much! I was able to successfully get it up and running. Though, do you know if there's any way to enable rendering of transparent objects with alpha (materials that aren't completely opaque) in passthrough? Another commentor below said that they had to just not use alpha materials, but for the game I'm developing, the particular art style takes a bit of a hit if I can't render alpha materials in passthrough mode. Thanks!
@@blackwhalestudio thanks for the quick reply! Almost there - I set the vr passthrough material's render queue to 2999, and alpha works now in passthrough, thanks so much! But unfortunately, the stencil shader no longer seems to take effect, so it's not cutting out to display the VR world behind it. I have the stencil material at render queue of 3000, so I attempted setting it higher without any luck, I tried adjusting the shader and material settings for a bit with no success yet
great tutorial. this method has a lot of flexibility. But I am stuck, the default UI material is rendered underneath the passthrough material. any tips to fix this?
@@blackwhalestudio Thanks for the tuto, amazing. I have the same issue. Even if I set my transparent object to 4000 the wall part that is not in the window will hide all transparent objects (UI or lit/transparents or overlay), anything inside the window will correctly render transparency. Do you think you could test it and tell us how to fix this? That would be awesome. I followed each step of your tuto and everything works perfectly except for this.
@@mikyjax Hey I just solved it. In the render feature for Passthrough Walls, set the event to before rendering transparents. My stencil render queue is set to 2000, and my passthrough queue is also set to 2000. Let me know if that solves it for you too!
@@kylehentschel4858 thank you for your answer, I don't remember what I did but I eventually found a fix and was less convenient than yours ;) thanks and have a great day!
Very interesting tutorial! Thanks heaps! My only problem is that the raycast hits much closer from the user than the actual room wall thus placing the window offseted from the wall instead of flush to it... Any idea ?
thanks for the quick reply! In the device, and also realized it was not a problem with the raycast but more that my room was all offseted and rotated weirdly…
Excellent Tutorial. I've been looking forward to more information on this.
With some experiments on top, I learnt if you want a raycast to shoot through the wall and hit objects behind you will have to make a collider for the window object, the one that lets you see through the wall, big enough that it is thcker then the wall, and when the ray hits it has to create a new raycast to continue in the previous cast's trajectory (I used a ~Wall layermask, to avoid the ray from picking up a hit from the wall layer, on the new "continuation ray").
My only issue is with now using Canvas layers, and other alpha effects, all seem to be rendered behind my walls until the walls are blasted away and all there is, is the 3d world behind. My guess it has to do with sorting layers?
** update to that question. I figured out that if you replace the materials for your UI elements to be Opaque materials, then you will not have that issue. Transparent and Alpha textures are drawn from back to front. So, for all your effects and UI elements that are happening inside your living space, you might want to use Opaque materials so that they are drawn in front.
Thanks so much for all this info, im sure it will help a bunch of people!
This is awesome, thanks. You've inspired me to make some XR content! Keep it up!
Damn, you can't stop giving! Keep going!!
Thanks! I'll keep trying my best! What would you like to see next?
You deserve way more views ! You rock !
Thank you so much! Honestly, it's not about the views, I'm quite happy already. It's just great to see reactions of people when they save time or manage to do something thanks to my videos! :)
thank you for the tutorial. it was so helpful. i got stuck at one place for a while so sharing the info in case it helps someone. i had post-processing enabled in my camera because of which the rendering of "walls" layer was messing up - screen would split up, really horrible vr bugs .. i changed the render object event to "BeforeRenderingPostProcessing" to fix this
Thanks for sharing!
Thanks for your vedio! I have been working on it and I found that my world space UI is always behind the object with the stenciel tag. I tried to change the sorting layer but it didn't work. Are there any possible solutions
Had a question in mind ? Instead of assigning all MRUK objects the wall layer at runtime, can we render skybox and virtual environment objects after rendering the passthrough layer and compare Stencil = 1 in the new renderer object. And using stencil = 1 material on the window as the same.
BTW nice tutorial.
thanks for sharing. yes, there is many ways on how to do this. i am thinking of making a video with a simpler setup in the future :)
First of all THANK YOU! This is so cool! Second. I am having an issue that is preventing me from implementing this. When I get to the 3:42 point where I should be able to see just the passthrough to the walls, I see passthrough in my left eye and the skybox in my right eye while using the link to test. Additionally I get the "...it's required to do a runtime permission request" issue, and when I hit fix, it just comes back, and the OVR manager never asks permission. Any ideas. Again thank you for all your videos. They are so amazing and so helpful!
I bumped into the same issues, but I just kept following up the tutorial, and the final outcome works as normal (build to the device, unplug the quest link, and run on the device alone)
Yes unfortunately it is normal to see two different things on two eyes. I am not entirely sure what this is caused by. Is there still an issue you are facing?
Hello ! Currently facing this problem in Editor and can't seems to make it work on standalone headset (Passthrough not showing at all). Did you encountered the same issue, if so did you manage to fix it ?
@@blackwhalestudio I think it has something to do with the shader.
What about using the Stencil shaders that comes with the Meta SDK? They are three StencilClear, StencilSky and StencilWriter.
I don't know if they can be used here
Hi, Great tutorial! When I play this from unity it works perfectly but when I build it and install on my quest it no longer has passthrough. Any ideas?
Can the virtual window work if I create a whole 3D scene for it instead of skybox?
i want to do this exactly in Unreal Engine. Help!
Great Tutorial man, very straight forward and easy to understand ! Keep up the good content ! I have a question is this functionality currently only doable using the OVR toolkit ? Or is there a way to do it with OpenXR aswell ? The MRUK has to be used in connection with the OVR set up I guess ?
Technically you can just use the same shaders with OpenXR. But yes, to use MRUK you have to use OVR!
I ended up taking a different approach BUT your tutorial is the only one I saw on youtube which mentioned checking for the renderer in ProjectSettings ->Quality, I was stuck for days with it not working on the Quest but now it does... So thank you very much this really is a helpful tutorial !@@blackwhalestudio
Great tutorial! Can’t wait to try it! I have a question. Do you know if it’s possible to have multiplayer option to the passthrough mode? Can I have it other people join (remotely not in local) when I am in the MR environment?
Technically yes, the passthrough shouldn't have any impact on your multiplayer features!
Amazing tutorial, thanks so much! I was able to successfully get it up and running. Though, do you know if there's any way to enable rendering of transparent objects with alpha (materials that aren't completely opaque) in passthrough? Another commentor below said that they had to just not use alpha materials, but for the game I'm developing, the particular art style takes a bit of a hit if I can't render alpha materials in passthrough mode. Thanks!
Can you try setting the render queue to 2999?
@@blackwhalestudio thanks for the quick reply! Almost there - I set the vr passthrough material's render queue to 2999, and alpha works now in passthrough, thanks so much! But unfortunately, the stencil shader no longer seems to take effect, so it's not cutting out to display the VR world behind it. I have the stencil material at render queue of 3000, so I attempted setting it higher without any luck, I tried adjusting the shader and material settings for a bit with no success yet
How can I get particles to render in my actual space and not as a part of the "outside" skybox rendered world?
MRUK allows you to spawn things within your actual space, check the MRUK API
great tutorial. this method has a lot of flexibility. But I am stuck, the default UI material is rendered underneath the passthrough material. any tips to fix this?
Have you tried adjusting the render queue?
@@blackwhalestudio Thanks for the tuto, amazing. I have the same issue. Even if I set my transparent object to 4000 the wall part that is not in the window will hide all transparent objects (UI or lit/transparents or overlay), anything inside the window will correctly render transparency. Do you think you could test it and tell us how to fix this? That would be awesome. I followed each step of your tuto and everything works perfectly except for this.
@@mikyjax Hey I just solved it. In the render feature for Passthrough Walls, set the event to before rendering transparents. My stencil render queue is set to 2000, and my passthrough queue is also set to 2000. Let me know if that solves it for you too!
@@kylehentschel4858 thank you for your answer, I don't remember what I did but I eventually found a fix and was less convenient than yours ;) thanks and have a great day!
Thanks for this, is there a version that doesn't use URP? What would I need to change to make it work in core?
URP is required unfortunately
Ok I achieved it in Core but it took a lot of experimentation :)
@@DenizOpal-s4p Great! How did you do it?
I'll post to your Discord channel when I have the time.
@@DenizOpal-s4p Look forward! I use built-in too
Very interesting tutorial! Thanks heaps! My only problem is that the raycast hits much closer from the user than the actual room wall thus placing the window offseted from the wall instead of flush to it... Any idea ?
In the editor or on your device?
thanks for the quick reply! In the device, and also realized it was not a problem with the raycast but more that my room was all offseted and rotated weirdly…
@@mdelight31 how did u fix it ? i think i have the same issue
Has anybody here tried this out? Can you please share your project?
The project can be downloaded from my Patreon