This BSDF is so simple but utterly insane. I don't think the guy who casually dropped that into the code out of nowhere was quite aware of how much this allows us to do.
Hi, author here :) I was aware that this is very powerful, as it is such a basic building block, but I have no idea what people will use it for. The original motivation was getting passes through a refraction for VFX, and I definitely thought about fancy perspective shifts like black-hole effects and lens simulations that should be possible with this. I did not anticipate the sort-of-parallax thing though.
@@david_for_you_ Hey, I can tell you, that I'll use it for architectural vizualisations. This is perfect for showing more realistic large scale buildings. Thank you so much.
@@hugoschumann1854 just curious, im using blender for archi work as well, what do you mean by this? you can already get orthographic representations with cameras although that was the first thing i thought of when i saw the video too
This is so so so useful: - This could be used for NPR lighting, portal from the complex geometry to a simpler mesh lit by it's own lights elsewhere in the scene out of view - TV screens without the need for packing video frames into a texture or post-render compositing - Fake deformation like the sphere in the video could be used to do that Inception effect of the city bending on itself without actually deforming tons of geometry for real - Cheaper character rig deformation by having low poly rigged geometry portal to a static high poly character
wait a minute. you could literally plug in a height map into the vector math node you use to define the perspective. if you invert it, it will act as if the camera is looking "down" a different heights based on the displacement/height map.
finally it's possible to render a novel vantage point in the scene to a plane! You can make CCTV survelliance, portals and non-euclidian space illusions in a single render!
9:48 To save everyone from the whole having-to-use-drivers-to-undo-object-rotations-business, you can just use Texture's Coordinate's Normal output instead of Geometry's.
That's the main difference between them, Texture Coordinate's is object-space, a.k.a. it's invariant to object transforms, while Geometry's is world-space, so it changes as the object rotates.
I wonder how something like this is going to impact the performance of a game. Instead of the usual parallax to use a similar technique and point to an actual 3D interior hidden somewhere under the map then apply this to multiple windows.
@@Kiwi-Araga for Path Tracing it's kinda straight forward, just involving an extra transparency path, but for Raster Rendering, I'm pretty sure this would involve either duplicating geometry, or having multiple cameras which separately render out the image. There are definitely reasons why this isn't normally done in that setting.
This is some Doctor Strange business. If Render Textures are flat projections of what a camera sees onto a plane or a polygon(s) of a model, then Ray Portal BSDF is like turning a plane or a polygon into its own camera and/or window. This is insane. We live in an era where this stuff exists.
@@Kiwi-Araga That's how Spider-Man 2 works on PS5, you have rooms in every building, and through those rooms you can see other rooms. They have NPC's moving around in them too. Of course things fall apart when you move around corners and the same room from two angles is two different rooms, but it's still incredibly effective. Spider-Man and Miles Morales had simpler parallax based system, but Spider-Man 2's solution is far more impressive. As for performance, it's able to do that with hundreds of instances at 60fps with ray-traced shadows and reflections on the glass. It's insane! Digital Foundry did a tech breakdown/discussion with one of the game's developers and although they don't show BTS, with a working knowledge of stuff like this, you can get the jist.
This would make it easier to animate 3D televisions without having to do separate rendering, saving hours... days... potentially weeks of rendering and post processing!
I've been waiting for something like this for so long, genuinely awesome- Especially since it'll allow for SUPER realistic black hole visualizations (stacked planes w/ some """velocity""" data baked into the texture itself)
I spent hours trying to fake this effect with the sky/environmental shaders. Since the old portal method with layers and composite tricks was lacking. But this is exactly what i needed.
This allows for crazy fast sprite generation, if you consider the cube+negative normal example. If that cube then was unwrapped to look like a sprite sheet, you could render all angles of a given srpite, at once. And if you used something like a n-sided cylinder, you end up with even more angles, at once. Kinda wild
This is great for so many things. The first thing I thought of was I wonder how this compares to the parallax method (like what you were building) for things like faux 3D rooms in windows, like you see in video games and stuff. With this version, you could create 5 or so rooms that you keep somewhere out of view, and make copies of this node tree that's mapped to look into each room, and put those texture on the windows. You might also want to make copies for each direction the windows face, because then it'll capture the sun lamp coming through the windows as well. This way you'd get nice, accurate lighting and real depth in the rooms, but it's essentially instancing and only calculating the lighting once and multiplying that for each window. Would be interesting to see the difference in quality vs performance. Also, being able to have actual portal and stuff is fantastic.
Ray portals are SUPER cool. I'm hoping there's a way to allow objects to be visible when above the surface too instead of clipping. That would change things for me. But it's still really interesting regardless!
This is HUGE. Thanks a lot for the video. I've wanted to use this for so long but I didn't want to buy some add-on or get a PhD in Blender Nodes to get this effect.
HOLY HELL, I almost jumped up when I saw the moving preview of this video. I was like "I NEED THIS" Edit: I have so much ideas, this unlocked so much things for my adhd brain
This is amazing. My question is how much does it help performance? Say I use it ith a building to replicate a 3d office on every single window of the building. Would it just process the one office and all the window polygons or would it also process the "new" offices that you can see with this node?
I actually made an addon for architecture that depends on classic parallax techniques with some spice , this trick will be insane if you can hide viewlayers for example and drive the rooms with geonode and create fake interiors but in realistic lighting all across the town for example !!! , holy spagetti it will be insane 😀
OHHHH I'VE GOT IDEAS... 4:17 this just made me think not only could this be good for mapping images, windows or portals. it can also be a good way to create a TV effect where you have a monitor and have it display another part of the scene basically doing 2 things at once. (I don't believe in current versions for this to be possible however this Ray portal node will change SOOOO much)
In LightWave you can use a sphere (or any geometry witha UV map) and project outwards to make an HDR map, can you use this for that? It was a very useful feature
Can't we use this to make some sort of simulated camera inside blender? Then maybe use it to broadcast something else on a tv? better yet save said camera to use for all kinds of portal things? an empty as the center point, a plane as the end of the camera, and moving the plane would change the POV? Maybe probably?
That Incoming to Tangent space converter is quite nice and exactly what I was looking for. So I got a plane which is basically always looking down no matter how I move and rotate it. I just cannot figure out for the life of me how to rotate this view so that the plane is always looking to the left or always looking to the right, no matter how I move and rotate it. I tried it with Vector Rotate etc. but it mostly gives only distorted results.
@@stevensteverly Yes, actually I have. I have created a Geometry Nodes setup where you can choose if you want the portal to reference a different object for the portal's "viewing orientation" or if you want to manually enter values. The resulting location and rotation will then be used in the portal material. But it is a bit too complex to explain it here, and unfortunately I cannot post pictures or links in the comments.
What a coincidence... I'm currently enjoying and at the same time finding it confusing to play with the parallax effect in Blender, and then this video came out.
I'm just getting into Blender (literally just made my first donut the other day), but this seems like it'd be a really simple (cheap) way to do a fake water simulation, yeah? Something like applying an animated wave distortion to the Ray Portal BSDF (or the plane's geometry) and caustics to the original geometry? It'd probably never offer the same realism as an actual water sim, but it seems like it'd do well for smaller, calmer bodies of water viewed from limited directions
You don't need to use vector rotate + drivers, instead use the vector transform node, to transform from world space to object space. Edit: Or as another comment said, use the normal from texture coordinates instead of geometry, which is in local space.
It is really differend from parallax mapping anyway. You can't use this portal nodes for materials because image in the portal isnot affected by lights around the portal
I imagine this would make possible virtual cameras like we have in raster engines, where you can place a camera anyewhere in the scene and display what that camera sees on a surface, say a TV screen?
bro, this update gives the possibility for a robot being able to display anything AND I MEAN ANYTHING for its face eyes and just easily swap to something else, video, objects ANYTHING
16:00 You aren't multiplying by matrix here, you're multiplying by it's transpose. Direct multiplication is v.x * m.xvec + v.y * m.yvec + v.z * m.zvec, not the dot products.
Could you theoretically create building windows with this, perhaps linking to a geonode based interior off to the side? I wonder how the performance would do rendering that many instances.
wait... Did blender just achieved nDisplays from Unreal, but in Blender? This has a HUGE meaning for projection mapping and mapping shows if that s the case!
A GDC presentation on Quaternions dropped this week which helped me get an understanding of what/how/why they are useful. As you created your tangent space equation my brain woke up when you used the dot produce of each… I wanted to ask is the dot product -1 to 1 serving as your “weight” here?
in general these just line up with x,y,z components of new vector (all normalized so ya, -1 to 1) - but in general dot product is just the sum of the products
This BSDF is so simple but utterly insane. I don't think the guy who casually dropped that into the code out of nowhere was quite aware of how much this allows us to do.
Hi, author here :) I was aware that this is very powerful, as it is such a basic building block, but I have no idea what people will use it for. The original motivation was getting passes through a refraction for VFX, and I definitely thought about fancy perspective shifts like black-hole effects and lens simulations that should be possible with this. I did not anticipate the sort-of-parallax thing though.
@@david_for_you_ what a G! Im going to find where you live and kiss you!
@@david_for_you_ Hey, I can tell you, that I'll use it for architectural vizualisations. This is perfect for showing more realistic large scale buildings. Thank you so much.
@@hugoschumann1854 just curious, im using blender for archi work as well, what do you mean by this? you can already get orthographic representations with cameras although that was the first thing i thought of when i saw the video too
@david_for_you_ I missed the old cube maps from blender internal. This is like a supercharged version. If this comes to Eevee too I'll be so happy!
This is so so so useful:
- This could be used for NPR lighting, portal from the complex geometry to a simpler mesh lit by it's own lights elsewhere in the scene out of view
- TV screens without the need for packing video frames into a texture or post-render compositing
- Fake deformation like the sphere in the video could be used to do that Inception effect of the city bending on itself without actually deforming tons of geometry for real
- Cheaper character rig deformation by having low poly rigged geometry portal to a static high poly character
Portals in Bkender is something I've wanted FOREVER, to get a similar effect like the portal games
saaameeeee
wait a minute. you could literally plug in a height map into the vector math node you use to define the perspective. if you invert it, it will act as if the camera is looking "down" a different heights based on the displacement/height map.
finally it's possible to render a novel vantage point in the scene to a plane! You can make CCTV survelliance, portals and non-euclidian space illusions in a single render!
This looks like one of those things thats a game changer but I’m too dumb to know why.
Now you're thinking with portals!
9:48 To save everyone from the whole having-to-use-drivers-to-undo-object-rotations-business, you can just use Texture's Coordinate's Normal output instead of Geometry's.
That's the main difference between them, Texture Coordinate's is object-space, a.k.a. it's invariant to object transforms, while Geometry's is world-space, so it changes as the object rotates.
how to use it?
Just add it (texture coordinate node and normal output) instead of the geometry node before scale in the direction input line.
I cannot wait to use this for building windows holy shit
I wonder how something like this is going to impact the performance of a game. Instead of the usual parallax to use a similar technique and point to an actual 3D interior hidden somewhere under the map then apply this to multiple windows.
@@Kiwi-Araga for Path Tracing it's kinda straight forward, just involving an extra transparency path, but for Raster Rendering, I'm pretty sure this would involve either duplicating geometry, or having multiple cameras which separately render out the image. There are definitely reasons why this isn't normally done in that setting.
This is some Doctor Strange business. If Render Textures are flat projections of what a camera sees onto a plane or a polygon(s) of a model, then Ray Portal BSDF is like turning a plane or a polygon into its own camera and/or window. This is insane. We live in an era where this stuff exists.
@@Kiwi-Araga That's how Spider-Man 2 works on PS5, you have rooms in every building, and through those rooms you can see other rooms. They have NPC's moving around in them too. Of course things fall apart when you move around corners and the same room from two angles is two different rooms, but it's still incredibly effective. Spider-Man and Miles Morales had simpler parallax based system, but Spider-Man 2's solution is far more impressive. As for performance, it's able to do that with hundreds of instances at 60fps with ray-traced shadows and reflections on the glass. It's insane! Digital Foundry did a tech breakdown/discussion with one of the game's developers and although they don't show BTS, with a working knowledge of stuff like this, you can get the jist.
That's how 3d skyboxes worked in older games. There was normally super small geo outside of the map that was blown up to be the skybox.@@Kiwi-Araga
Losing my mind over this. Nodevember is gonna be a lot of fun
I was waiting for node like "image from camera", but this is so much better
This would make it easier to animate 3D televisions without having to do separate rendering, saving hours... days... potentially weeks of rendering and post processing!
You are a freaking genius, thanks for being so curious about things and thanks for sharing your discoveries with us :)
I can't even fathom the possibilities, this is insane
This is like Render Textures on drugs. This is Render Textures redefined.
honestly super exciting, not everyday that we are given such fundamentally mind-boggling different toy to play with
I've been waiting for something like this for so long, genuinely awesome- Especially since it'll allow for SUPER realistic black hole visualizations (stacked planes w/ some """velocity""" data baked into the texture itself)
I was thinking of something similar
I spent hours trying to fake this effect with the sky/environmental shaders. Since the old portal method with layers and composite tricks was lacking. But this is exactly what i needed.
Alright, gonna have to watch this atleast 3 times
Thanks Mr default, this is insanely cool
This allows for crazy fast sprite generation, if you consider the cube+negative normal example. If that cube then was unwrapped to look like a sprite sheet, you could render all angles of a given srpite, at once. And if you used something like a n-sided cylinder, you end up with even more angles, at once.
Kinda wild
Neat! Maybe this could be used to make lenses?
Maybe this could be the way to proper refractive caustics in blender also...
This is great for so many things. The first thing I thought of was I wonder how this compares to the parallax method (like what you were building) for things like faux 3D rooms in windows, like you see in video games and stuff. With this version, you could create 5 or so rooms that you keep somewhere out of view, and make copies of this node tree that's mapped to look into each room, and put those texture on the windows. You might also want to make copies for each direction the windows face, because then it'll capture the sun lamp coming through the windows as well. This way you'd get nice, accurate lighting and real depth in the rooms, but it's essentially instancing and only calculating the lighting once and multiplying that for each window. Would be interesting to see the difference in quality vs performance.
Also, being able to have actual portal and stuff is fantastic.
Ray portals are SUPER cool. I'm hoping there's a way to allow objects to be visible when above the surface too instead of clipping. That would change things for me. But it's still really interesting regardless!
This also useful for create Forced Perspective 3D Billboards video content.
This is HUGE. Thanks a lot for the video. I've wanted to use this for so long but I didn't want to buy some add-on or get a PhD in Blender Nodes to get this effect.
you could plug a height map into the vertical offset instead of using a single value for some interesting results
this is HUGE for vfx.
Yes, I agree, VFX was the motivating feature for writing it
Love the showcase!
Cubemaps in blender, neat.
HOLY HELL, I almost jumped up when I saw the moving preview of this video. I was like "I NEED THIS"
Edit: I have so much ideas, this unlocked so much things for my adhd brain
Holy shit, this got so much potential!
I have been asking for exactly this for years. This is great.
the tensors are evolving!
This would be great for CCTVs.
I would love to make a magnifying glass with this
Could you use an empty to control where this portal is viewing? Figure it'd make it very useful for animation this effect!
This is amazing. My question is how much does it help performance? Say I use it ith a building to replicate a 3d office on every single window of the building. Would it just process the one office and all the window polygons or would it also process the "new" offices that you can see with this node?
OMG this is stupid awesome! Thank you for sharing, I have so many ideas.
I actually made an addon for architecture that depends on classic parallax techniques with some spice , this trick will be insane if you can hide viewlayers for example and drive the rooms with geonode and create fake interiors but in realistic lighting all across the town for example !!! , holy spagetti it will be insane 😀
Now we're thinking with portals
Oh my god! I can finally do 5d space in blender. Yay!
Damn that's super cool!
OHHHH I'VE GOT IDEAS... 4:17 this just made me think not only could this be good for mapping images, windows or portals. it can also be a good way to create a TV effect where you have a monitor and have it display another part of the scene basically doing 2 things at once. (I don't believe in current versions for this to be possible however this Ray portal node will change SOOOO much)
Great vid i actually understood what was being said most of the time
keep up the good work👍👍
Mind blowing. Brilliant!
this is really cool im so glad i took the time to watch this
In so early it's only available in 360p. :-) Great exploration of the new node!
1:13 I hope Eevee next could render this types of node
I've been making pokemon cards with a 3D effect and it's been a nightmare and with this it's going to be a godsend
BRO ive been wanting this for fucking forever!!
Welp! Here come liminal spaces and holographic interfaces :D
In LightWave you can use a sphere (or any geometry witha UV map) and project outwards to make an HDR map, can you use this for that? It was a very useful feature
In Blender you can can do this with the camera itself. Set the Lens type to Panoramic and set the panorama type to equirectangular.
Can't we use this to make some sort of simulated camera inside blender? Then maybe use it to broadcast something else on a tv? better yet save said camera to use for all kinds of portal things? an empty as the center point, a plane as the end of the camera, and moving the plane would change the POV? Maybe probably?
I'm a developer, and I'm astonished by your skills in math (for an artist LOL)
thank ya :)
You are the best
Awesome, so brilliant
That Incoming to Tangent space converter is quite nice and exactly what I was looking for. So I got a plane which is basically always looking down no matter how I move and rotate it. I just cannot figure out for the life of me how to rotate this view so that the plane is always looking to the left or always looking to the right, no matter how I move and rotate it. I tried it with Vector Rotate etc. but it mostly gives only distorted results.
did you ever figure it out? I'm stuck here also
@@stevensteverly Yes, actually I have. I have created a Geometry Nodes setup where you can choose if you want the portal to reference a different object for the portal's "viewing orientation" or if you want to manually enter values. The resulting location and rotation will then be used in the portal material. But it is a bit too complex to explain it here, and unfortunately I cannot post pictures or links in the comments.
Imagine if we can render lots of assets in a huge scene this way, hope it improves render times.
That's AWESOME!
What a coincidence... I'm currently enjoying and at the same time finding it confusing to play with the parallax effect in Blender, and then this video came out.
OH MY GOD THIS IS AMAZING this will make my projects 1000x easier
in what way? i dont get where to use it, no one is explaining
just in time ☕
This is sick. My brain can not process.
This is awesome!
Wow, it looks like those old-school “holograms”
I'm just getting into Blender (literally just made my first donut the other day), but this seems like it'd be a really simple (cheap) way to do a fake water simulation, yeah? Something like applying an animated wave distortion to the Ray Portal BSDF (or the plane's geometry) and caustics to the original geometry? It'd probably never offer the same realism as an actual water sim, but it seems like it'd do well for smaller, calmer bodies of water viewed from limited directions
It’s tardis time guys
LETS GOOOOO
Now we can make tv screen with broadcast😊😊😊
You don't need to use vector rotate + drivers, instead use the vector transform node, to transform from world space to object space. Edit: Or as another comment said, use the normal from texture coordinates instead of geometry, which is in local space.
It is really differend from parallax mapping anyway. You can't use this portal nodes for materials because image in the portal isnot affected by lights around the portal
Woaw !!! Thx for this video !!!
yay mirrors
6:28 What did you just call us?
now we just need to wait for someone to make a tardis model with this node.
you could use this shader to create some really cool infinitely recursive things and i am SO hyped
I imagine this would make possible virtual cameras like we have in raster engines, where you can place a camera anyewhere in the scene and display what that camera sees on a surface, say a TV screen?
Wait no fucking way this is amazing. I can do some INSANE stuff with this
insane.... thank you!
very cool
bro, this update gives the possibility for a robot being able to display anything AND I MEAN ANYTHING for its face eyes and just easily swap to something else, video, objects ANYTHING
16:00 You aren't multiplying by matrix here, you're multiplying by it's transpose. Direct multiplication is v.x * m.xvec + v.y * m.yvec + v.z * m.zvec, not the dot products.
So this is going to be a bit above the pay grade.. ❤
maybe we can use it to make bootleg render-to-texture stuff for security cameras and the like
4:13 Getting some serious stalker vibes
Will be able to fill out skyscraper windows in no time now.
Does this simplify the looking glass hologram type rendering at all?
Bruh, I've got to make a snow globe now....
Please make a use case video for this node, i don't understand what people are soo happy about in the comments.
Could you theoretically create building windows with this, perhaps linking to a geonode based interior off to the side? I wonder how the performance would do rendering that many instances.
wait... Did blender just achieved nDisplays from Unreal, but in Blender?
This has a HUGE meaning for projection mapping and mapping shows if that s the case!
Thats's freakn great!
I wonder if this works with blenders scenes? PooOOOOOOooower!
2nd demoooOOOOooo?
👌👌👌
FUUUUUUUUUUUU!!!! thats a amazing!
When is that getting released in the main version?
this is the most mathematical blender tutorial I have ever seen
welcome to default cube - always makes me wish I studied maths 😅
Blender does a pretty good job at abstracting away the math if you don't use geometry nodes...
@@LIONFIGHTMUSICI did study math and kind of wish I studied math more... The maths are tight
game changer
I was literally wondering whether this kind of thing could be done in blender mere HOURS before you dropped this video wtf
A GDC presentation on Quaternions dropped this week which helped me get an understanding of what/how/why they are useful. As you created your tangent space equation my brain woke up when you used the dot produce of each…
I wanted to ask is the dot product -1 to 1 serving as your “weight” here?
in general these just line up with x,y,z components of new vector (all normalized so ya, -1 to 1) - but in general dot product is just the sum of the products
nah thats crazy bro
genius