Mind blowing, literally. Got my brain spread across my poor laptop's display and keyboard. Well worth spending the next year (or two) watching it again and again and again, at 0.25x.
really inspiring, i like the method on instancing on the walls the user extrudes, many videos about geonodes are about full procedural, but i think the mixed approach is more useful. about the texturing though, i think if you'd try to export this to an game engine it would be a mess, since you don't have the uv coordinates. one idea could be, to not use the user extruded mesh for the walls, and instancing some wall assets, like the other assets. maybe then the cell size have to be on a grid, or the node code can adjust to different sizes.
Thank you so much for the feedback and suggestions! Really helpful! ;) Absolutely agree with you. I was thinking about doing some kind of import pipeline for Unreal. But there are lots of things that I need to figure out first)) Hope to get to this someday! ;)
Its a good tutorial , what would make it better for a beginner though would be displaying your input on the screen, Youre using a lot of shortcuts like ctrl +J for framing the nodes but that was not explained (as to how to do this) . Keep up the good work !
Hey! Thanks for the feedback. There’s no easy answer for this 😊 but I would go with creating several floors with instantiating planes on vertical curve. Then, generate walls and other objects within the rooms. You could also model some stairs and place them within the floors. Hope that helps 😊
Great tutorial! I was especially curious how you added the lights to the procedural dungeon.Also, if you change the texture mapping of each image texture from "flat" to "box" then you don't need to rotate the texture by 90 degrees or create a wall top separate texture.
Thank you very much for the feedback and the advice! 😃 I have created a separate collection for the wall lights and added point light into that collection and used it as instance. It is possible to instantiate lights almost same way as other objects. As for the Box Projection method - thank you very much for the tip! Really, I wasn't aware of that! 🙂Will know for future!
@@retroshaper I request the same tutorial too and please tell us a way to make a believable road network for the city cuz none of the existing city tutorials from other channels have any believable road networks
Very good tutoria! Sadly i think from 3.5 version something has changed... im stuck near minute 20. I see on the guidline that the problem is transfer attribute not existing anymore.. do you know how to fix it?
Thanks for the feedback! Yeah, I think starting from 3.4, they’ve replaced Transfer Attribute with Sample Nearest Surface. You may try that one instead 😊
Very helpful tutorial! Also, is it just me or is the brick texture for the walls upside down? I don't know why I always notice when something as ambiguously oriented as bricks in images are upside down. For example, I noticed a sand texture I used was flipped/mirrored in a project.
Thanks for the feedback! Yes, sometimes textures get oriented in a wrong way, especially whit generated uv coordinates. When I notice things like those, I try fixing it with mapping node in the material or manually uv map.
amazing tutorial. As a beginner i do have one question tho "How did you manage to get to this result?" Im fair new to blender, let alone geometry nodes and it seems like an ocean of info and possibilities... but seeing you navigate very straight to the solution makes me wonder if you either : 1.- took previous courses 2- Just experimented , pretty much trial and error until getting to this solution 3- both.
Awesome video! Very high speed workflow, my question or theory is could you use this with a way to create Z axis floors then add a separate collection of boolien stairs? Project for 40k table top props.
Thank you so much for the feedback! I think it is quite possible to use similar approach with multiple floors and even add stair between them. There are a few ideas that came to my mind) One of them is to use cube geometry instead of plane, and use the loopcuts on the vertical edges as number of floors. Still need to experiment with that ☺
Could this be extended to do interiors for buildings, where it takes the overall volume of a generated building divides into rooms/corridors and fills with furniture and props. Do you think this could be adapted for something like that, would defiantly buy that version for sure
Hi! Thanks for the comment. The current setup is designed to create corridors with some props randomly without any complicated logic behind, so it would be complicated to update it for the example you e provided. However, similar method may be used to create/generate rooms with props and furniture. Multiple factors can be taken into account, like seed of rooms division, size of faces, etc
@@retroshaper Well i had a thought that all things should spawn along walls. most furniture in a kitchen would anyway but say a table and chairs, that could spawn away from a wall so its into the middle of the room more but was spawned in using a point along a wall. I did have another idea using a sort of modular layout thing, do you have discord? i could explain better what i was thinking
@@speaker6060 Hey! Sorry for late response. I think what you are looking for is in the Distribute Points on Faces node. This one has an option - Position Disk, which will allow you to pick distance between points in a radius. I do have a discord, but I’m not very active there right now, unfortunately. It is Retroshaper ))
never mind i figure it out. I thought that you duplicated each plane and put them next to each other but instead you extruded each edge to create the main shape.
How would you go about removing all of the walls facing a certain direction? I tried a few things but I couldn't figure out a way to target those walls specifically.
Hi! Thanks for the comment. I would use normal input node, run it through separate xyz and compare required axis against a value that will represent normal direction (-1, 0, 1). The result of that will be a selection for delete geometry. Hope that makes sense))
Hi! I'm using E with edge selected to extrude. Also, you may fix the axis on which the extrusion is going to be made. You may as well use CTRL while dragging the edge to have a fixed step.
@@retroshaper when I extrude out, the procedural part doesn't work, I copied your steps but am having trouble figuring out why it's not extruding this way. its only works within the modifier tab with cell and grid size
Hi! Thank you for the feedback! 😃Adding base boards can be added, and there may be several approaches. One of them is to general additional level of geometry, similar to walls, but for the base boards.
@@retroshaper and also i see a problem if i was to do that. the randomly generated walls dont have any thickness for me, so i dont know how that would work
@@retroshaper oh wait nvm i just found out i can just make them the wall decorations, because i wasnt originally having any, thanks so much for your info though
Hi! I use E to extrude and Y to move along the Y axis. Along with Ctrl I move the mouse. Make sure that you have increment selected in the “snap to” menu at the top of the window. More info can be found here: docs.blender.org/manual/en/latest/editors/3dview/controls/snapping.html Hope that helps))
Hey question for anyone that reads this. So I'm trying to make dungeon crawler game in UE 5 and was wonder how well geometry nodes like this transfer into the engine? I'm using assets for some things but wanted to build the dungeon myself so I'm wondering if anymore knows well this works when placed in Unreal
Hey! Thanks for the feedback! Yes, there is such issue. You may uncheck “individual” checkbox when extruding the mesh to form thickness of the wall. This is the easiest fix I’ve found. The other solution would be to calculate the extrude size of the corner vertices, which is going to be pretty much heavy, I assume)
Hi! Thank you very much for the feedback! If I recall correctly, I’ve used all the nodes that are available in 3.2. Of course, some changes may have been added in 3.3, but I’m sure that this can be achieved in 3.2. 😊
hey great tutorial, I followed it to the end and the only thing I don't understand is when you done building it, how do you go back and extrude the plane to build it out. when I tried this the procedural part didn't work. only works when I use the cell size and grid size inputs
Nice tutorial, but a bit light on explanation concering what a lot of the nodes really do (though I'm new to nodes, this was my first longer tutorial on the matter ;) )
Thank you so much for the feedback!) Well, some nodes may be really multi-functional, so I'm trying to show what are they capable of with real examples😃I'm thinking of making some videos about specific nodes or practices with nodes in the nearest future ☺
This is fantastic! Great stuff. I haven’t really looked into geometry nodes much at all. Can I ask, would it be realistic to use geo nodes to build a big environment like this and then export to a game engine? Traditionally I would make lots of small modular wall and door pieces and construct them in the engine but I’d love to be able to do it like this and just export it. I worry that it might be too inefficient to use in a game engine.
Hi! Thank you so much for the feedback! I'm glad you found it useful and exciting. As far as I know there are some custom plugins made for such engines like Unreal Engine, however, they might be to heavy for the system, since a lot of data if you want to modify geometry nodes settings from the engine. What is quite possible, is to create a scene in Blender with geometry nodes, apply the modifier with all the instances realized and export all the meshes disconnected in a single file. This way engine should set pivot points to the center of the scene in blender, so you will preserve your creation. The downside in this case would be a ton of duplicates, unfortunately. Theoretically, it is possible to build some kind of a plugin that will create a json file with all the metadata for each element use in the geometry node setup, which can later be processed by the game engine. But this requires lots of coding in both, game engine and blender. But all of those are only my assumptions )))
Great tutorial. I'm surprised the inclusion of lights seems to work the way it does (and i still don't understand why - as they are not meshes, so they can't really be 'joined' as geometry), where do these virtual lights exist? If they are part of the geometry processing there must be a way to individually adjust (randomize?) their parameters as well (?)
Thank you very much for the feedback! 😃I believe that it worked just because point light is in the collection and is recognized as geometry as the time of instantiating. If we realize instances or use light as object on its own, it won't work. Still not sure if that is a side-effect or it will be handled later. For conceptual purposes works just fine ☺
Hey! Thanks for the comment. Yea, I think it is possible to make some rooms taller. You may try extruding random rooms with a separate node. Also, I think it is possible to randomize extrusion height based on the face id, position, etc
Hi! Thanks for the comment. It is hard to tell right now. Do you have the plane connected to the geometry output? Also, from the top of my head, make sure to properly select faces when deleting parts of geometry.
Hi! Thanks for watching the video ;) I have uploaded the whole project along with the assets to itch. retroshaper.itch.io/dungeon-maker-with-geometry-nodes
Hi! Thanks for sharing! Just tested with these settings and it worked fine (except the fact, that I didn't rescale the torch :D ). Maybe there is something else with the settings? Interesting..
Thank you so much for the feedback! Yes, Bump node has a Normal input, but it doesn't give an option to select a Space (tangent, world or object) and, it seems to me, by default it calculates normals in object space. Thank you for noticing! Good point! ;)
hey new to blender and for the life of me i can not figure out how to extend the rooms and how to remove the rooms like in the video i know i a missing something simple i bought the project i just cant figure it out
Hey! Thanks for the comment and for following the tutorial. So, there are 2 ways of creating those dungeons in the project, random or manual. The random one is when you add geometry nodes modifier to any mesh and it will create grid which transforms into dungeons with settings. The manual ways, when you add planes which are the base for the dungeons, by adding more planes, extruding them, etc, you will have the customized dungeons. Hope that helps ))
@@KOGASODA Hi! Thanks for the question. It is possible to add a roof or a ceiling to the setup. You can use the top face of the extruded face and use it as a point for a roof asset. As for making it as an asset for a video game, it really depends on your asset management and workflow. With this setup, you can export the whole thing to FBX as a single merged mesh (make sure to realize the instances in the nodes). If you want that generation part in the engine, third party tools and plugins are needed.
Hey! Thanks for the comment. There may be multiple ways to put in the game engines: 1. Simply export the generated mesh into the supported format (e.g. fbx) - however, you would need to use realize instances node in the GN before exported. 2. There are some service that allow you to bring the geometry nodes right to the game engines with a possibility to configure parameters in engines themselves. However, to my knowledge, they may affect the performance and not that user friendly.
@@retroshaper Simple: I create a cube, and in the editor, using the shear function, I place it as I need. Complex (using geo nodes) kube (or plane, extrude, fases, normals...etc) just make one and now what next? In transform - no shear.
@@gomezrodriguez9059 Oh, got it. I think the closest thing to Shear that can be done in Geometry Nodes is to use set position node for vertices based on their position. Smth like this: snipboard.io/qhpWYG.jpg You may experiment with combinations in XYZ nodes. Hope that helps ;)
@@retroshaper Great help! I still have a problem with the array modifiar, because its other "pieces" tilt differently. Thanks again thank you very much.
@@gomezrodriguez9059 You are welcome!) Hard to say with the array modifier. I think something needs to be done based on the position of each instance 🤔
@@sulthonbaiquni7256 Didn’t work for me from the start also. 1. You need to make sure that node editor is set to tweak mode. There’s an option for that in the upper left corner of the node editor 2. Use shift with right mouse button while sweeping across the link
Mesh Boolean is a relatively *extremely* slow node, and shouldn't ever be used in production. It's fine for just one dungeon, but if you're making 100's, mesh boolean will cause a noticeable and unnecessary slowdown. Your method is very similar to how I made procedural skyscraper interiors, but I had to nix the Boolean to knock 99.999+% of the construction time down.
Absolutely agree with you! If we”re talking about huge meshes with tons of vertices - optimisation is definitely what is needed. Thanks for the comment and accurate observation!
@@retroshaper I was doing mesh booleans between 2 rectangular prisms to 'cut' windows into walls... but even with ultra-simple meshes, booleans are insanely slow, if you perform it enough times. A single building was taking 190s+ using booleans to create windows... and less than .1s when I made each area around the window it's own separate mesh, then joined them. There is something fundamentally wrong with the boolean function call.😆
@@eclecticgamer5144 Amazing observation! I assume the long processing time may be caused by realtime triangle/vertex generation upon boolean operation. I hope it will be optimized in future )
@@retroshaper The long processing time is due to the "type" of function call it is. I remember working back in C# (or whatever blender uses) that all calls, not just boolean, of that type, are extremely slow. It has nothing to do with the execution of the function, but something else... I bug reported it like 10 years ago... I think it is "BPY" calls dig into the core code, or some nonsense like that. I think manually creating triangles is a BPY call with the exact same problem. It's been a while, so don't remember the details. Back before geo nodes, I was trying to hard code "random building generation" and ran into this problem with no solution. It's 10000's of times faster to create a cube than it is 6 squares. There's no legit reason... all they'd have to do is cut/paste the code to another place and change the function call, and problem solved. But they haven't and won't.
Nice work! If some one will missing node - Transfer Attribute in Blender 3.4 just use Simple Nearest Surface
Thank god you said something, this was incredibly helpful and saved my project 🤝
love this tutorial, it would be amazing to see a tutorial about procedural caverns!
Thank you so much for the feedback! 😃Fantastic idea!
Mind blowing, literally. Got my brain spread across my poor laptop's display and keyboard.
Well worth spending the next year (or two) watching it again and again and again, at 0.25x.
Thank you so much for the feedback! I'm happy to see you enjoyed the video! ☺☺☺
Amazing Amazing!!! Love to see more of geonodes from you. ThankYou for the tutorial
Thank you so much for the feedback! I'm glad you enjoy it! Will definitely work on some new videos with geometry nodes! ☺
omg this will be awesome to create maps for doom/quake games.
Wow, this tut is GOLD!
Thank you very much for the feedback! ☺
Excellent ,
Found this on reddit, really want to get into geo nodes. Thanks for the tutorial!
Thank you so much for the feedback! 😃
really inspiring, i like the method on instancing on the walls the user extrudes, many videos about geonodes are about full procedural, but i think the mixed approach is more useful. about the texturing though, i think if you'd try to export this to an game engine it would be a mess, since you don't have the uv coordinates. one idea could be, to not use the user extruded mesh for the walls, and instancing some wall assets, like the other assets. maybe then the cell size have to be on a grid, or the node code can adjust to different sizes.
Thank you so much for the feedback and suggestions! Really helpful! ;) Absolutely agree with you. I was thinking about doing some kind of import pipeline for Unreal. But there are lots of things that I need to figure out first)) Hope to get to this someday! ;)
@@retroshaper would love to see this imported to unreal workflow
Wow this is the newest totorial I've watched lol
😃
A great tutorial was well explained and demonstrated! You are doing a fantastic job!
Thank you very much for the feedback! Seeing such comments is the greatest reward! ☺
Its a good tutorial , what would make it better for a beginner though would be displaying your input on the screen, Youre using a lot of shortcuts like ctrl +J for framing the nodes but that was not explained (as to how to do this) .
Keep up the good work !
Thank you very much for the feedback! Makes sense with the shortcuts - will do in future videos ☺
How to make multi floor with stair case. Thank you for the Excellent Tutorial was looking for this .
Hey! Thanks for the feedback.
There’s no easy answer for this 😊 but I would go with creating several floors with instantiating planes on vertical curve. Then, generate walls and other objects within the rooms. You could also model some stairs and place them within the floors. Hope that helps 😊
Great tutorial! I was especially curious how you added the lights to the procedural dungeon.Also, if you change the texture mapping of each image texture from "flat" to "box" then you don't need to rotate the texture by 90 degrees or create a wall top separate texture.
Thank you very much for the feedback and the advice! 😃
I have created a separate collection for the wall lights and added point light into that collection and used it as instance.
It is possible to instantiate lights almost same way as other objects.
As for the Box Projection method - thank you very much for the tip! Really, I wasn't aware of that! 🙂Will know for future!
Nice one! Tip for 7:50 use a "Not" boolean math node instead
Retro, great work. Can you show us how to create a procedural city wit this process?
Thank you so much Kelly! Well, this is exactly what I have in plans for one of my next tuts!) Happy to see such request! ;)
@@retroshaper I request the same tutorial too and please tell us a way to make a believable road network for the city cuz none of the existing city tutorials from other channels have any believable road networks
@@iconiq263 Noted!) Will do my best!)
@@retroshaper thanks!
Thank you so much I’ve been trying to create an interior for my roblox game using blender but didn’t know how 🙏🏿
And thank you so much for the feedback! 😃
some great stuff, learned a lot from this
Thank you so much for the feedback!)
excellent !
Awesome!
Thanks !)
Awesome tutorial!
Thanks! 😊
Amazing tutorial 👍
Thank you so much! ;)
Can you show how to add stairs, rooms and levels? Great tutorial
Wonderful idea! I'll try to think of an easy video in future!)))
Very good tutoria! Sadly i think from 3.5 version something has changed... im stuck near minute 20. I see on the guidline that the problem is transfer attribute not existing anymore.. do you know how to fix it?
Thanks for the feedback! Yeah, I think starting from 3.4, they’ve replaced Transfer Attribute with Sample Nearest Surface. You may try that one instead 😊
This is awesome ! ... You are awesome ! ... THX so many ... Can you make some castle or house generator ?
Thank you so much for the feedback! Really appreciate it!
Yes, I have the building generator in plans )
nice
Very helpful tutorial!
Also, is it just me or is the brick texture for the walls upside down?
I don't know why I always notice when something as ambiguously oriented as bricks in images are upside down.
For example, I noticed a sand texture I used was flipped/mirrored in a project.
Thanks for the feedback! Yes, sometimes textures get oriented in a wrong way, especially whit generated uv coordinates. When I notice things like those, I try fixing it with mapping node in the material or manually uv map.
Glad I’m not the only one taking notice lol.
Thanks for taking the time to respond.
Thanks :)
احسنت 💙
amazing tutorial.
As a beginner i do have one question tho
"How did you manage to get to this result?"
Im fair new to blender, let alone geometry nodes and it seems like an ocean of info and possibilities... but seeing you navigate very straight to the solution makes me wonder if you either :
1.- took previous courses
2- Just experimented , pretty much trial and error until getting to this solution
3- both.
how do you connect the two lines like that in 4:45 ?
Edit: its shift+rightlclick.
Yep!) That's the thing ;)
Awesome video! Very high speed workflow, my question or theory is could you use this with a way to create Z axis floors then add a separate collection of boolien stairs? Project for 40k table top props.
Thank you so much for the feedback! I think it is quite possible to use similar approach with multiple floors and even add stair between them. There are a few ideas that came to my mind) One of them is to use cube geometry instead of plane, and use the loopcuts on the vertical edges as number of floors. Still need to experiment with that ☺
Could this be extended to do interiors for buildings, where it takes the overall volume of a generated building divides into rooms/corridors and fills with furniture and props.
Do you think this could be adapted for something like that, would defiantly buy that version for sure
Hi! Thanks for the comment. The current setup is designed to create corridors with some props randomly without any complicated logic behind, so it would be complicated to update it for the example you e provided. However, similar method may be used to create/generate rooms with props and furniture. Multiple factors can be taken into account, like seed of rooms division, size of faces, etc
@@retroshaper Well i had a thought that all things should spawn along walls. most furniture in a kitchen would anyway but say a table and chairs, that could spawn away from a wall so its into the middle of the room more but was spawned in using a point along a wall. I did have another idea using a sort of modular layout thing, do you have discord? i could explain better what i was thinking
@@speaker6060 Hey! Sorry for late response. I think what you are looking for is in the Distribute Points on Faces node. This one has an option - Position Disk, which will allow you to pick distance between points in a radius.
I do have a discord, but I’m not very active there right now, unfortunately. It is Retroshaper ))
turning off the individual button doesnt take away the unwanted faces in the beginning please help!
never mind i figure it out. I thought that you duplicated each plane and put them next to each other but instead you extruded each edge to create the main shape.
@@Jordo95 Happy to hear that!) thanks for posting an update)
How would you go about removing all of the walls facing a certain direction? I tried a few things but I couldn't figure out a way to target those walls specifically.
Hi! Thanks for the comment. I would use normal input node, run it through separate xyz and compare required axis against a value that will represent normal direction (-1, 0, 1). The result of that will be a selection for delete geometry. Hope that makes sense))
@@retroshaper it does! I'll give it a shot later thank you
1:04 what button did you press that let you duplicate it?
Hi! I'm using E with edge selected to extrude. Also, you may fix the axis on which the extrusion is going to be made. You may as well use CTRL while dragging the edge to have a fixed step.
@@retroshaper when I extrude out, the procedural part doesn't work, I copied your steps but am having trouble figuring out why it's not extruding this way. its only works within the modifier tab with cell and grid size
sos un genio muchisimas gracias!
And thank you so much for the feedback! 😊
how do you do 1:05, when you drag another plane in the direction you want...
I loved this tutorial so much, it was really useful, but i was wondering if there was anyway to add base boards?
Hi! Thank you for the feedback! 😃Adding base boards can be added, and there may be several approaches. One of them is to general additional level of geometry, similar to walls, but for the base boards.
@@retroshaper ok but how would I do that, would I just remake the part for the walls, but for a baseboard instead?
@@retroshaper and also i see a problem if i was to do that. the randomly generated walls dont have any thickness for me, so i dont know how that would work
@@retroshaper oh wait nvm i just found out i can just make them the wall decorations, because i wasnt originally having any, thanks so much for your info though
@@LUNCHWARS Cool! Thanks for the questions!
what do you press here 1:05 e + y + 2 ? with ctrl + rmb work but it dont snap on Grid
Hi! I use E to extrude and Y to move along the Y axis. Along with Ctrl I move the mouse. Make sure that you have increment selected in the “snap to” menu at the top of the window. More info can be found here: docs.blender.org/manual/en/latest/editors/3dview/controls/snapping.html
Hope that helps))
Hey question for anyone that reads this. So I'm trying to make dungeon crawler game in UE 5 and was wonder how well geometry nodes like this transfer into the engine? I'm using assets for some things but wanted to build the dungeon myself so I'm wondering if anymore knows well this works when placed in Unreal
Hey! You may consider Altermesh to bring it into the UE
Great turorial, i just have one problem my walls are bulging at the center when i don't use quad walls. i'm using blender 3.6
Hey! Thanks for the feedback! Yes, there is such issue. You may uncheck “individual” checkbox when extruding the mesh to form thickness of the wall. This is the easiest fix I’ve found. The other solution would be to calculate the extrude size of the corner vertices, which is going to be pretty much heavy, I assume)
Great video,is this only for the 3.3? can I do it in 3.2?
Hi! Thank you very much for the feedback! If I recall correctly, I’ve used all the nodes that are available in 3.2. Of course, some changes may have been added in 3.3, but I’m sure that this can be achieved in 3.2. 😊
hey great tutorial, I followed it to the end and the only thing I don't understand is when you done building it, how do you go back and extrude the plane to build it out. when I tried this the procedural part didn't work. only works when I use the cell size and grid size inputs
when I extrude it doesn't copy all of the procedure as the plane, it only stretches out the edge I grabbed
Nice tutorial, but a bit light on explanation concering what a lot of the nodes really do (though I'm new to nodes, this was my first longer tutorial on the matter ;) )
Thank you so much for the feedback!) Well, some nodes may be really multi-functional, so I'm trying to show what are they capable of with real examples😃I'm thinking of making some videos about specific nodes or practices with nodes in the nearest future ☺
@@retroshaper looking forward to it, I've subscribed ;)
This is fantastic! Great stuff. I haven’t really looked into geometry nodes much at all. Can I ask, would it be realistic to use geo nodes to build a big environment like this and then export to a game engine? Traditionally I would make lots of small modular wall and door pieces and construct them in the engine but I’d love to be able to do it like this and just export it. I worry that it might be too inefficient to use in a game engine.
Hi! Thank you so much for the feedback! I'm glad you found it useful and exciting.
As far as I know there are some custom plugins made for such engines like Unreal Engine, however, they might be to heavy for the system, since a lot of data if you want to modify geometry nodes settings from the engine.
What is quite possible, is to create a scene in Blender with geometry nodes, apply the modifier with all the instances realized and export all the meshes disconnected in a single file. This way engine should set pivot points to the center of the scene in blender, so you will preserve your creation. The downside in this case would be a ton of duplicates, unfortunately.
Theoretically, it is possible to build some kind of a plugin that will create a json file with all the metadata for each element use in the geometry node setup, which can later be processed by the game engine. But this requires lots of coding in both, game engine and blender.
But all of those are only my assumptions )))
Great tutorial. I'm surprised the inclusion of lights seems to work the way it does (and i still don't understand why - as they are not meshes, so they can't really be 'joined' as geometry), where do these virtual lights exist? If they are part of the geometry processing there must be a way to individually adjust (randomize?) their parameters as well (?)
Thank you very much for the feedback! 😃I believe that it worked just because point light is in the collection and is recognized as geometry as the time of instantiating. If we realize instances or use light as object on its own, it won't work. Still not sure if that is a side-effect or it will be handled later. For conceptual purposes works just fine ☺
any ways to make some of the rooms taller than the rest or not as of now?
Hey! Thanks for the comment. Yea, I think it is possible to make some rooms taller. You may try extruding random rooms with a separate node. Also, I think it is possible to randomize extrusion height based on the face id, position, etc
Thanks I follow but what did I do wrong because I’m not seeing my plane and I have everything
Hi! Thanks for the comment. It is hard to tell right now. Do you have the plane connected to the geometry output? Also, from the top of my head, make sure to properly select faces when deleting parts of geometry.
hey man good tutorial can u leave a link to the assets
Hi! Thanks for watching the video ;) I have uploaded the whole project along with the assets to itch. retroshaper.itch.io/dungeon-maker-with-geometry-nodes
These settings break the generation:
WallHeight = 1 # Exact
WallWidth = 0.1 # Anywhere from 0.001007 to 0.25
CellSize = 1 # Max 3
GridSizeX = 20 # Exact
GridSizeY = 20 # Exact
CellProbability = 0.675 # Anywhere from 0.674 to 0.681
Seed = 0 # Exact
Hi! Thanks for sharing! Just tested with these settings and it worked fine (except the fact, that I didn't rescale the torch :D ).
Maybe there is something else with the settings? Interesting..
Great tut! Just one question. Isn't a "bump" already contained in the normal map?
Thank you so much for the feedback! Yes, Bump node has a Normal input, but it doesn't give an option to select a Space (tangent, world or object) and, it seems to me, by default it calculates normals in object space. Thank you for noticing! Good point! ;)
hey new to blender and for the life of me i can not figure out how to extend the rooms and how to remove the rooms like in the video i know i a missing something simple i bought the project i just cant figure it out
Hey! Thanks for the comment and for following the tutorial. So, there are 2 ways of creating those dungeons in the project, random or manual.
The random one is when you add geometry nodes modifier to any mesh and it will create grid which transforms into dungeons with settings.
The manual ways, when you add planes which are the base for the dungeons, by adding more planes, extruding them, etc, you will have the customized dungeons.
Hope that helps ))
@retroshaper thanks your tool will help my dnd games be even better i believe i got it working
@@robertstratford3584 awesome! Happy to hear that 😊
I have absolutely no idea how to export a map like this into something like unity
Yeah. That is something we all would love.
For now it is either static mesh, or some plugins.
What if I wanted to add a roof and make this an asset for a video game?
Can you add a ceiling pls
@@KOGASODA Hi! Thanks for the question. It is possible to add a roof or a ceiling to the setup. You can use the top face of the extruded face and use it as a point for a roof asset. As for making it as an asset for a video game, it really depends on your asset management and workflow. With this setup, you can export the whole thing to FBX as a single merged mesh (make sure to realize the instances in the nodes). If you want that generation part in the engine, third party tools and plugins are needed.
and how put that in engine game?
Hey! Thanks for the comment. There may be multiple ways to put in the game engines: 1. Simply export the generated mesh into the supported format (e.g. fbx) - however, you would need to use realize instances node in the GN before exported. 2. There are some service that allow you to bring the geometry nodes right to the game engines with a possibility to configure parameters in engines themselves. However, to my knowledge, they may affect the performance and not that user friendly.
Yeah i tried before byt didnt work
Hi, i need to SHEAR that geomerty, but nothing working. 😞
Hi Gomez! How would you like to shear the geometry? There may be multiple different approaches depending on the needs 🙂
@@retroshaper Simple: I create a cube, and in the editor, using the shear function, I place it as I need. Complex (using geo nodes) kube (or plane, extrude, fases, normals...etc) just make one and now what next? In transform - no shear.
@@gomezrodriguez9059 Oh, got it. I think the closest thing to Shear that can be done in Geometry Nodes is to use set position node for vertices based on their position. Smth like this: snipboard.io/qhpWYG.jpg You may experiment with combinations in XYZ nodes. Hope that helps ;)
@@retroshaper
Great help! I still have a problem with the array modifiar, because its other "pieces" tilt differently. Thanks again thank you very much.
@@gomezrodriguez9059 You are welcome!) Hard to say with the array modifier. I think something needs to be done based on the position of each instance 🤔
isthere letgal company version of it
@@hakankosebas2085 hey! Thanks for the comment! This project can be downloaded on itch and it is royalty free 😊
how to do at 4.47 minutes? what to click? I can't do it and stuck there, can you help me
It’s the re-routing feature. You need to enable node wrangler addon to have this.
@@retroshaperI have installed node wrangler, then how do I join the 2 green lines like in the video?
@@sulthonbaiquni7256 Didn’t work for me from the start also.
1. You need to make sure that node editor is set to tweak mode. There’s an option for that in the upper left corner of the node editor
2. Use shift with right mouse button while sweeping across the link
@@retroshaper OK, it worked, thanks for helping
Mesh Boolean is a relatively *extremely* slow node, and shouldn't ever be used in production. It's fine for just one dungeon, but if you're making 100's, mesh boolean will cause a noticeable and unnecessary slowdown. Your method is very similar to how I made procedural skyscraper interiors, but I had to nix the Boolean to knock 99.999+% of the construction time down.
Absolutely agree with you! If we”re talking about huge meshes with tons of vertices - optimisation is definitely what is needed. Thanks for the comment and accurate observation!
@@retroshaper I was doing mesh booleans between 2 rectangular prisms to 'cut' windows into walls... but even with ultra-simple meshes, booleans are insanely slow, if you perform it enough times. A single building was taking 190s+ using booleans to create windows... and less than .1s when I made each area around the window it's own separate mesh, then joined them. There is something fundamentally wrong with the boolean function call.😆
@@eclecticgamer5144 Amazing observation! I assume the long processing time may be caused by realtime triangle/vertex generation upon boolean operation. I hope it will be optimized in future )
@@retroshaper The long processing time is due to the "type" of function call it is. I remember working back in C# (or whatever blender uses) that all calls, not just boolean, of that type, are extremely slow. It has nothing to do with the execution of the function, but something else... I bug reported it like 10 years ago... I think it is "BPY" calls dig into the core code, or some nonsense like that. I think manually creating triangles is a BPY call with the exact same problem. It's been a while, so don't remember the details. Back before geo nodes, I was trying to hard code "random building generation" and ran into this problem with no solution. It's 10000's of times faster to create a cube than it is 6 squares. There's no legit reason... all they'd have to do is cut/paste the code to another place and change the function call, and problem solved. But they haven't and won't.
@@eclecticgamer5144 Great input! Thanks for sharing! I didn't dive that deep into blender coding ;)
I think I’ve put like 50 views on thing lol
😃Thank you so much!
Damn, this channel is all about laziness
I call it optimization