Пікірлер
@seanmeyer6436
@seanmeyer6436 10 күн бұрын
I'm new to godot and maybe I missed something but I cannot figure out how the GRADIENT portion works at the end of the video. Is this a separate node I need to create myself and somehow plug into this shader? Thank you for the video, it was fun to follow along
@MartinDonald
@MartinDonald 6 күн бұрын
Thanks for watching! I'm just using the procedural gradient texture that Godot ships with. You can create one by clicking on an empty texture slot and selecting "New GradientTexture1D".
@noamrtdthesorcerer733
@noamrtdthesorcerer733 15 күн бұрын
Watched more than 3 hours of implementations and explanations about wave function collapse, Can confirm that this one was the best from every aspect, Thank you!.
@SethPentolope
@SethPentolope 17 күн бұрын
As you mentioned, adding weights is important for a more practical usage. You can go a different direction if you really lean into depending on weights. You can have cells that are not adjacent weigh in on what cell type a cell should be. This can help limit behavior like too many house cells or never having a large ocean, since you can have ocean cells make other ocean cells very likely to be chosen if they are nearby or in certain land/ocean patterns. You could even add a property to your ocean cells indicating the depth, which affects the probability of other cells (no land cells within X cells of a X-hundred foot deep ocean cell).
@antonsimkin
@antonsimkin 17 күн бұрын
it worked on my blender made terrain, but trail is flipped on other, downloaded terrain why would that be?
@rusticrick999
@rusticrick999 21 күн бұрын
Same result with the game Minesweeper.
@antonsimkin
@antonsimkin 21 күн бұрын
imma use it in godot 4
@antonsimkin
@antonsimkin 21 күн бұрын
i failed
@antonsimkin
@antonsimkin 20 күн бұрын
nah i succeded. but my snow became brown from dirt for some reason
@JustYesntMan
@JustYesntMan 22 күн бұрын
where is blender script link
@xomvoid_akaluchiru_987
@xomvoid_akaluchiru_987 24 күн бұрын
I saw the Bad North inspired island generation in the thumbnail :) Love the game! I can understand why Oskar is so stuck on the idea (He keeps going back to it on Twitter)
@diegoantoniorosariopalomin4977
@diegoantoniorosariopalomin4977 Ай бұрын
The multi layer distance field blew me away
@pu55yEaterr
@pu55yEaterr Ай бұрын
shitass simple algorithm named like some new quantum mechanic exploits
@theman7050
@theman7050 Ай бұрын
Wow, your content is next level!
@FishSticker
@FishSticker Ай бұрын
Why is it called wave collapse though, just for it's conceptual similarity to quantum stuff
@jumpkut
@jumpkut Ай бұрын
Nice one!
@magnuspedersen5751
@magnuspedersen5751 2 ай бұрын
This is super cool
@ChowderhoundGames
@ChowderhoundGames 2 ай бұрын
I'd buy this from your 'atreon but I don't know how to convert it to Godot 4, would take too long to learn
@MichaelDarrow-tr1mn
@MichaelDarrow-tr1mn 2 ай бұрын
where's the sudoku demo
@williamlee9669
@williamlee9669 2 ай бұрын
minesweeper =D
@lucasleite1559
@lucasleite1559 3 ай бұрын
My Flowmap Painter wont let me import any image so I can draw over it -__-'
@Topyy
@Topyy 3 ай бұрын
Is the script downloadable anywhere?
@ArrisarJ
@ArrisarJ 3 ай бұрын
co_ords :(
@MrSefsdf
@MrSefsdf 3 ай бұрын
One of the most effective explanations of ray marching I've come across on YT.
@DrBossKey
@DrBossKey 3 ай бұрын
This is fantastic! Thank you!
@RooterDelWifiXs
@RooterDelWifiXs 3 ай бұрын
Sir, a function over a space is a field, is the same thing
@MartinDonald
@MartinDonald 3 ай бұрын
You're not wrong! But if you were saying "function" to refer to a texture sample I'd be confused.
@jehree9850
@jehree9850 3 ай бұрын
Great video.. but man, people who use 1 or 2 digit variable names are a different kind of chaotic haha
@aucer7904
@aucer7904 3 ай бұрын
When I am finding the solution of jaggy label 3d in godot, this is so awsome!
@AndersonMancini
@AndersonMancini 3 ай бұрын
OMG. This is so awesome 😮. I'm impressed 👏🏻👏🏻👏🏻
@hongphat85
@hongphat85 3 ай бұрын
Thank you so much.
@chntnshrff
@chntnshrff 4 ай бұрын
Hello, thanks for the amazing explanation. Can you please tell or point me to a reference where I will know more about how to loop through each module and store position of each vertex along the edge in blender. Because you mentioned that its better to not do it manually
@drummerman883
@drummerman883 4 ай бұрын
That was just enough information to be able to write it and not be lost. Thank you for not over or under explaining it like most videos do.
@user-yb5cn3np5q
@user-yb5cn3np5q 4 ай бұрын
The algorithm is a bad version of SAT solver algorithms, simpler called DPLL, and more effective called CDCL. Unlike WFC, DPLL can backtrack instead of invalidating the whole progress, and CDCL can avoid most of backtracking by deducing rules about how certain combinations of tiles lead to contradiction. Usual sets of tiles produce an underconstrained set of boolean equations, so certain choices have to be made at random. Random choices can be done unevenly at implementer's discretion. For example, by preferring air tiles for tiles higher from the ground, or water tiles further from island's center.
@cookieBadger
@cookieBadger 4 ай бұрын
I'm not entirely sure why I ran into that issue because I never saw it happen in the video, but in case anybody else is struggling to get the depth test to work: The calculated distance d depends entirely on the position of the camera, and is unaffected by its rotation. This is however not the case for the depth buffer. When the camera turns, the depth of some objects that are now to the edge of the view has decreased. Now, when comparing the distance of a pixel from the raymarching that is far off to the corners of the camera, it might be greater than the depth of an object closely behind, so it doesn't show. This can be fixed by calculating the depth of the raymarched pixel with this line: float z = (PROJECTION_MATRIX * VIEW_MATRIX * vec4(ro + d*rd, 1.0)).z; Now take ALPHA = step(z, min(MAX_DIST, linear_depth)) and your problem should be solved! I was trying to get the project files to verify if this error happens in the original project as well, but they weren't available yet on Pateron. :(
@djalexander968
@djalexander968 4 ай бұрын
well jokes on you i was explicitly looking for methods to code the generation of sudoku puzzles, because doing the math myself sounded hard; turns out i was right
@cookieBadger
@cookieBadger 4 ай бұрын
thanks for this video, it really saved my a*s for a prototype assignment :)
@lemonjumpsofficial
@lemonjumpsofficial 4 ай бұрын
well an sdf is and sdf that was saved into an array lol
@isaackershnerART
@isaackershnerART 4 ай бұрын
i know it has been a while but I am stuck in UE4 trying to decipher what the is equivalent to this line: vec4 view = INV_PROJECTION_MATRIX * vec4(ndc, 1.0); specifically, what is INV_PROJECTION_MATRIX for hlsl or in ue4 nodes. Great tutorial btw!!!!
@DogeisCut
@DogeisCut 4 ай бұрын
Im trying to implement raymarching as the main thing in my game using Godot, and im running into issues when using Mod to try to loop space, and also, objects appear bugged in various ways when applying other transformations on them
@syedharis3235
@syedharis3235 4 ай бұрын
how to make flow maps recurring or in a perfect loop?
@BrunoHsdc
@BrunoHsdc 4 ай бұрын
This channel is pure gold!
@YoNoSe1989
@YoNoSe1989 4 ай бұрын
IT ONLY TAKES ABOUT A SECOND. NOTHING TAKES ABOUT A SECOND. NOTHING
@Myblogband
@Myblogband 4 ай бұрын
Wave functions don't collapse. They expand. The phenomenological velocity function is expansive through awareness, as the moment expands into consciousness as a real phenomenon outside of this computerized, quantum mechanical paradigm.
@user-kz4pf2uz1n
@user-kz4pf2uz1n 4 ай бұрын
The Art of Code
@thequarkchronicles2486
@thequarkchronicles2486 5 ай бұрын
I’m a nuclear physicist who misread the title & assumed this was about quantum wavefunctuions… don’t think I’ll ever do anything with this information, but got interested & stuck around anyways. Incredibly engaging & high-quality video, & an excellent explanation even for someone who doesn’t do much with algorithms! :)
@ywenp
@ywenp 5 ай бұрын
That's cool! Has it been tried to replace the SDF by a "signed" (direction) vector field (*)? This way each pixel would know not only how far it is from the closest border but also in which direction D this border is. I know the point of SDFs is not to have to know the direction, just the distance, but I suspect you could do cool iridescence effects with that. For instance, you could encode such an "SDVF" as a texture using: - R channel: x component of D - G channel: y component of D - B (or A) channel: used like a boolean: 0 if "inside", 1 if "outside" (without it, you lose the "signed" aspect) The usual signed distance for any pixel is recoverable with: `vec2(R,G).norm() * (B*2 - 1)` (Could also work with 3D textures, you'd just use the remaining channel to represent D.z) (*) I'm using "vector" loosely here for simplicity's sake, though I believe a proper metric vector space structure could be devised for this
@Nikolajnen
@Nikolajnen 5 ай бұрын
Your version actually looks way better in my opinion
@Thomason1005
@Thomason1005 5 ай бұрын
i was like "i didnt know blender can do that", and it canot, but he just wrote the whole thing from scratch. nice work!
@tinypileofpolydimethylsiloxane
@tinypileofpolydimethylsiloxane 5 ай бұрын
mr president the 2nd wave function has collapsed
@mihailazar2487
@mihailazar2487 6 ай бұрын
wouldn't it be better to use a harmonic oscilation (sin) for the mixing instead of a linear triangle wave ?
@ChrisNoeth
@ChrisNoeth 6 ай бұрын
Are you just placing the parts or combining vertices at cube corners with other cube objects? Is it one large mesh in the end or lots of objects?
@spalose
@spalose 6 ай бұрын
Hey Martin! I was wondering if a SDF shader using your methodology here could be translated to a 2D canvas item version in Godot 4.x?
@amac333
@amac333 6 ай бұрын
woah, thanks for demystifying SDFs for me. I was really impressed with the simple use as alpha map, I don't really understand why it's so much better though for that. How the edges end up so nice and smooth. I'll have to do some more reading. Cheers.