Це відео не доступне.
Перепрошуємо.

Blender Geometry Nodes Fields Frustum Culling Tutorial

Поділитися
Вставка
  • Опубліковано 16 сер 2024

КОМЕНТАРІ • 66

  • @ksheetijsaini
    @ksheetijsaini Рік тому +11

    This is really good tutorial!
    If you're going to be doing close up shots, the only modification I'll add is instead of treating the grid as a lens, to treat it as a sensor. Which means change the Z-vector in the "Combine XYZ Node" to -0.1 (or smaller) instead of -1 and adjust the grid size accordingly (I ended up using X=0.08m & Y=0.05). This would avoid the grid from intersecting with the plane in close up shots and cutting off those objects (since the plane intersection stops those point rays from reaching the raycast node).

    • @spaceboffin
      @spaceboffin Рік тому +1

      Excellent! Thanks for this improvement to an already excellent tut

  • @davidedozza
    @davidedozza 2 роки тому +9

    Great tutorial, thanks! 👏
    It can also be used for large terrains, like a boolean, but much faster in calculating!
    Just add a "delete geometry" and reverse the "is hit" output! 😉

    • @onnevankenobe
      @onnevankenobe 2 роки тому

      How could it be done with a material alpha fading and a threshold to then delete it?

  • @1zymn1
    @1zymn1 7 місяців тому +1

    This is great! I just combined this with we:teach's WINDY GRASS tutorial and now I have a highly optimized wheat field that blows in the wind. It only took my moderate understanding of Geo Nodes to combine them together and it's awesome!

  • @proband15
    @proband15 11 місяців тому +1

    Ok this is so cool! I'm currently fiddling around with UPBGE (basically a fork of current blender with old blender game engine functionality) and this is propably great to improve performance.

  • @theblacksolid_fr
    @theblacksolid_fr 2 роки тому +1

    It's funny. I did the same kind of setup last year with Blender 2.9 to manage vegetation and foliage in a very large scale scene. I was a little disappointed when the field based on geometry nodes arrived but now I know how to readapt it, thank you. 😁👍
    Now if you implement automatic orientation on instantiated planes towards the camera in a proxy system with a camera far vanish cut-off you get the same sprite system that saved my life last year.

  • @WanerRodrigues
    @WanerRodrigues 2 роки тому +2

    Thank you! The graswald3d, creator of G Scatter should use the length clamp on his addon, is a very good one but has false positives in the camera clamping

  • @MrBrigadierArchived
    @MrBrigadierArchived Рік тому +1

    This tutorial the real gold! Thank you very much!

  • @user-nl9re8qh6r
    @user-nl9re8qh6r Рік тому +1

    very good tutorial,thanks!

  • @juliusfucik4011
    @juliusfucik4011 Рік тому +1

    Thank you so much. I have been looking for this for a while. I almost got it to work, but the rotations where always off. I just did not understand the ray source being on the right... still does not make sense, but now it works!

  • @onnevankenobe
    @onnevankenobe 2 роки тому +1

    Hi Chris, I’ve started following your channel because you explain things really well for slow minds like mine 😂

  • @markfong7764
    @markfong7764 Рік тому +1

    Excellent tutorial and best method I have seen, thanks

  • @vladimir-nodes_surfer
    @vladimir-nodes_surfer 2 роки тому +1

    Awesome tutorial! Really well explained. Thank you for sharing this useful tool with us!

  • @alexanderbicukow399
    @alexanderbicukow399 2 роки тому +1

    Thank youu, the only one who did it on youtube

  • @JAM-h4f
    @JAM-h4f Рік тому +1

    What a great tutorial ! This is such a great tool !

  • @WDShorty
    @WDShorty 2 роки тому +3

    This is amazing! Thank you so much! Can you do LOD based on distance to the camera next?!

  • @meldyluova3340
    @meldyluova3340 6 місяців тому +1

    amazing tutorial, im wondering, how can we optimise it even more as if there is an obstacle like a plane between camera and monkeys, it block the rays and so everything behind obstacle will no appears ?

  • @spaceboffin
    @spaceboffin Рік тому +1

    Fantastic tut, many thanks.

  • @Gorgious
    @Gorgious 2 роки тому +1

    Awesome and deceptively simple !

  • @salarycat
    @salarycat 2 роки тому +1

    Nice tutorial, this is an efficient and easy way to do it!

  • @vincgordo5861
    @vincgordo5861 Рік тому +1

    genius as simple !

  • @zapfsaeule2
    @zapfsaeule2 2 роки тому +1

    Thanks a lot! I try to get familiar with geometry nodes with your great help :)

  • @ilaldkxb
    @ilaldkxb 2 роки тому +9

    is your last name bacon

  • @HeiniGurke
    @HeiniGurke 2 роки тому +1

    Hey thanks, this helped me a lot. Really sped up my current project's viewport performance.
    I might have found a slightly cleaner nodesetup. I think rotating the camera location for the set position offset is just recreating the normal of the plane that was just rotated. So I just added a normal input node and scaled it negative something. (Drivers from FOV and sensorsize/-2 and some offset to position... it works fine here)
    Mag deinen Kanal sehr gern. Grüße h

  • @atriptoreality
    @atriptoreality 2 роки тому +1

    Thank you !

  • @SalTarvitz
    @SalTarvitz 2 роки тому +1

    You're brilliant.

  • @Taki7o7
    @Taki7o7 2 роки тому +1

    as always, a great video, thank you so much :)

  • @tcheadriano
    @tcheadriano 2 роки тому +2

    Great Tut! What if on the edges istead of just disappear, the instance objects get the scale reduced out of the camera view then disappear? I guess this way the light changing and bounces will be smooth and harder to notice in cycles final render.

  • @Middlericc
    @Middlericc 8 місяців тому +1

    Hi Chris! I have viewed this many many times by now. Really, really useful, thank you a lot! I was wondering tho if there was a way to implement some sort of occlusion culling for proper geometry (not instances) in geometry nodes. Do you know any way or workaround? Again, thank you a lot anyway! :)

    • @chrisprenn
      @chrisprenn  8 місяців тому +1

      = boolean cutting away geometry outside the frustum = yes, possible ;)

  • @markgohl2660
    @markgohl2660 2 роки тому +1

    Impressive

  • @goku21youtub
    @goku21youtub 2 роки тому

    great stufff! can you make one for dynamic painting in geometry nodes please ?

  • @TR-707
    @TR-707 Рік тому +2

    whats the trick with only selecting/raycasting onto the surface that is visible to the camera. As this setup is right now, you will end up instancing onto geometry that maybe behind surfaces or inside other geometry.

    • @mdmpzero
      @mdmpzero 4 місяці тому

      Seconding this! I'm trying to figure that out too

  • @nrdkraft
    @nrdkraft 2 роки тому +1

    So I have a question. What if we have a scene with multiple cameras and at some time in the animation we change the shot; switch to a different camera as the active one. Is there a way to make these geometry nodes-instead of only to this specific camera-to automatically concur to any camera that is the active one at any given point in the animation? (As opposed to having to select which camera manually, which it seems isn’t even possible animate anyway.)
    Thank for for your wonderful tutorials my good sir!☺️

    • @vladimir-nodes_surfer
      @vladimir-nodes_surfer 2 роки тому

      Although I can not think of an automated GN setup to do what you want, meaning changing the cameras by looking at the camera bindings in the animation timeline, there is a kind of a half manual way to switch cameras in GN nodes:
      Instead of exposing the camera object input into the modifier proprieties, you can build a switch based system inside the GN, that selects different cameras based on an integer number for example. Then you expose that number to the modifier proprieties and animate it to match your camera swapping. That is how I would do it. If anyone has a better method in mind, I would like to know about it.

  • @dorex2007
    @dorex2007 Рік тому +1

    Now that you can do that, is there any way to have a object always point towards the camera? Like a plane with an image on it. So as the camera moves the plane always points to the camera. Thanks a lot

    • @chrisprenn
      @chrisprenn  Рік тому +1

      You could always (and still can) do that with a simple "track to" constraint on the plane!

  • @mirai1073
    @mirai1073 2 роки тому +2

    It was a great Tutorial!
    I do have a question, Is there a way to make it low poly when the distant of your instances far from camera as similar function as adaptive subdivision ?

    • @chrisprenn
      @chrisprenn  2 роки тому +1

      you can calc the distance of instace to cam for setting the subdiv levels in GN or to instance a different object all together

    • @mirai1073
      @mirai1073 2 роки тому

      @@chrisprenn Alright, Thanks!

    • @vladimir-nodes_surfer
      @vladimir-nodes_surfer 2 роки тому

      I am thinking of a smart LOD system to implement in the version 2 of my currently "work in progres" project: The stellar system. What I plan to do is a material/geometry swap based on the percentage of the camera screen occupied by an object, in my case a planet, black hole or star. What I think it will work is bringing the render scene size (the culling plane size) into GN and compare that with the bounding box of the object and then, based on the screen percentage occupied decide on the material/geometry with the proper amount of details.
      I would be curious about what other people think, if they have a better solution.

  • @jordanjardine2458
    @jordanjardine2458 2 роки тому

    Thank you for the great tutorial! I noticed that the rays also shoot out from the back of the camera in addition to the front. Any fix for that? still trying to wrap my heads around all these nodes. Lol

  • @erikpatakcreative
    @erikpatakcreative Рік тому +1

    I have a scene where instead of static objects, I'd like to cull a volume of slowly moving particles. I get them to move via tranlsating them along a random axis via the scene time. Unfortunately every time I move the camera, the particles jitter as the rays are being casted from moving particles. I haven't been able to think of a solution to this with both the camera and the instances moving due to where the raycast selects points in the node tree. Any thoughts?

    • @chrisprenn
      @chrisprenn  Рік тому

      sounds strange since the node tree is executed once per frame for each point so the raycast node should always knows exactly where to start...

  • @matiasfuentealba898
    @matiasfuentealba898 8 місяців тому +1

    can you use this concept for the subdivition of a mesh?

    • @chrisprenn
      @chrisprenn  8 місяців тому

      Interesting idea! 🤔

  • @Geeeuuu
    @Geeeuuu Рік тому

    But how to actually cull the geometry instead of hiding geometry, because objects half in half out are still there?

  • @intelteller
    @intelteller 10 місяців тому

    Hey,
    Great tutorial! It helped me a lot, but I have a problem. In the shader editor, I had random values on color ramps so my objects would have randomized colors. However, when I applied "culling," the colors of my object started to change every frame. What can I do about that?

    • @chrisprenn
      @chrisprenn  10 місяців тому +1

      Hi, with the geometry nodes setup from the tutorial this should work since we distribute points and only instance to the points inside the field of view. That way, all of the points are always there and always have the same object id and will produce the same random value in the shader. See ua-cam.com/video/0-XrdknEA4A/v-deo.html

    • @intelteller
      @intelteller 9 місяців тому

      Thank you! It works! @@chrisprenn

  • @RASTONKAMAZA
    @RASTONKAMAZA 2 роки тому

    Sir when we decimate anything in blender for example sphere and if it is already texture and then we decimate this then model texture become break can u solve this issue pls

  • @TristanGrimaux
    @TristanGrimaux 2 роки тому +1

    Is there a way to know the size of the camera in geometry nodes?

    • @chrisprenn
      @chrisprenn  2 роки тому +2

      Maybe by now there is... Haven't blendered for a while - too busy at work 🥺

    • @vladimir-nodes_surfer
      @vladimir-nodes_surfer 2 роки тому +1

      There are no dedicated nodes for camera data in GN for now. But you can use drivers to get most if not all of the camera data and the scene size. Just right click on the value that you need and select "Copy as New Driver", then use an value node in GN, right click on the input field and select "Paste Driver". Apart from python, I do not think there is a way to acces this data inside of Geometry Nodes.
      Hope this helps you 😀

    • @TristanGrimaux
      @TristanGrimaux 2 роки тому +1

      @@vladimir-nodes_surfer I'll try it! Thanks!!

  • @sagarlamichhane543
    @sagarlamichhane543 Рік тому

    it comes behind the camera too. what to do??

    • @chrisprenn
      @chrisprenn  Рік тому

      There's an entire video chapter to fix this in the tutorial, see ua-cam.com/video/KoLF99PFLFM/v-deo.html

  • @genesis2303
    @genesis2303 2 роки тому

    If we can parent cam to selected 3 vertices to noise camera so is it possible to make your autofocus setup from AN?
    ua-cam.com/video/xaHjIA4Eo_g/v-deo.html