I started learning Houdini tonight. And by Houdini, I mean Blender Geometry Nodes :3
I'm hoping to construct an ad-hoc level editor for my driving game thing and export point sets for object placement, curves for the roads, and height maps for elevation. I'm not sure how to make blender shit out a sparse height map, but I'm sure I'll find some abominable way to do it with python.
I wonder if my old wacom tablet still works 🤔
weird, pressure sensitivity doesn't seem to work anymore, but otherwise it seems fine???
ok the gnome wacom settings test panel thing shows the pressure sensitivity working just fine, so I guess it's just the gimp that's the problem hopefully
aaand it crashes blender :|
there's too much linux in here >:(
yup completely random which applications it works with. blender doesn't pick it up at all?
by any chance is this yet another thing wayland fucked up?
I'm gonna have to install Windows again to use this thing aren't I
Yup. It's wayland. again! it's always fucking wayland! I hate you so much wayland. The tablet works fine with Blender if I restart Gnome in Xorg mode. This operating system is such a fucking joke my hands are shaking with anger right now.
If you're going to wander into my mentions to tell me that it's good actually preferred even that the wayland team broke an entire ecosystem of applications that was working just fine for the last 20 years, do me a favor and just go block yourself instead? I'm not in the mood.
when linux gives you wayland you burn linux's house down
I made some progress tonight on learning #GeometryNodes! I made a little relief with an elevation map of Kauaʻi and a blue noise texture to hide the banding.
I added trees
it's amazing how much blender has changed since i first spent several hours making a shitty gingerbread man in it back in '02
I remarked to someone that the cost of [open source thing] is "you get what you pay for", and was thinking about how that always sounds snarky and mean but it's totally true and it works. I subscribed to "Blender Cloud" years ago for the tutorials and left the ten bucks a month faucet on for all this time and look what all it can do now :O
watch out tech artists i know houdini now #blueprintsfromhell
hornswoggled!
experimenting with using splines to draw roads onto height maps
I figured out how to make non-uniform grids with geometry nodes 💀
I like this Zachtronics game
This looks better than expected with an arbitrary height map applied. I don't strictly speaking need to fix the tearing for what I'm doing, but I might try and patch it up later so my in progress screenshots look nicer >_>

my feature wishlist for #blender #geometrynodes

- selective subdivision (either a face selection field input or making the level input a field)

- collapse edges / faces / vertices operator

- python nodes

played around a bit more with my "drawing roads on terrain" prototype today. this is starting to get a little closer to what I want
I revisited the non-uniform grid geometry nodes thing tonight and figured out a terrible hack to stitch the edges. I think I'm starting to get the hang of this.
Side note, I like how all my node graphs end up looking vaguely like deep sea creatures.
I came up with a cool way of generating terrain from a few splines tonight. Might run with this. Just draw some feature lines and boom there's a mountain or a ravine or something.
Here's another one. This took like no time at all to draw out. I feel like I'm on to something.
I've decided there's one obvious correct name for this technique and it is Spline Distance Field :3
I made a little visualizer material for my Spline Distance Field thingy.
🌲
What is really great about this system is you can just mash stuff together and it mostly just works. Here's the same hill as before, but twice. I'm planning on using this to construct coherent landscapes out of irregular tiles and no grid :3

I think I figured out a way to do inexpensive higher order curves with this, which would mean the transitions between curves (and between between curves) can be interpolated better. This is the main barrier preventing technique being more generally useful imo.

I'll probably take a crack at implementing it in the next few days if I have any energy left between work and random appointments.

I... may have upended the production schedule of a game friends are working on by sharing this tool with the artist 😶

improvement idea didn't quite work out :/

The idea was that since I can determine which curve is closest to a given point on the terrain grid, I can use edge data to find the spots where abrupt changes might occur, and then can do a nearest crossing test relatively easily. This does accomplish what it is supposed to, but other artifacts show up around the perimeter of the map so it's not really worth it.

Might have to settle for blurring the height around those edge crossings instead.
still, the technique is pretty powerful even without the higher order curves, and I'm sure someone smart on here might spot a better way to blend between spline patches 🤷‍♀️ I'll probably write something up on my blog in the next few days time permitting.
I'm really quite amazed at how fast the geometry nodes blur intrinsic is, but I'm starting to think the perf measurement for it is just broken.
🤔
happy accident: transforming arbitrary meshes with the spline field
Experimenting with visualizing the extruded spline tangents cropped by the spline distance field volumes. This is meant to demonstrate what is being interpolated to produce the height field, though this doesn't show the part where splines are projected past their endpoints.
Today an artist friend used this technique to completely redo all of the terrain in the vertical slice level for the game she's working on. Judging by timestamps, it took her about an hour to complete after a false start. I'm not posting the screenshots because they're confidential but holy smokes it is awesome :O
what really gives me life today is she wants to push it even further <3
I've been pondering how to adapt this technique into a more general purpose modeling technique, and heh it's funny how problems are trivial when they're discrete, bounded, and 2D, but get a bit harder when they're continuous, unbounded, and 3D
oh great, the piecewise solution is a 3D voronoi diagram. of course it is 😔
I've got a distance field approximation now. Here's something I hacked together with geonodes that runs like a siggraph demo you got too excited about. I haven't implemented blending between adjacent fields yet, but I'm feeling optimistic that I'll be able to get something workable together for real time raytracing later.
getting closer...
The magic here is I spawn one of these for each point on the spline, aligned to that spline point's tangent plane and scaled to that spline point's radius. Then I deform each point toward the tangent plane of whichever spline field it happens to actually be in and bob's your uncle. Its got some quirks but it works surprisingly well.
@aeva not sure I understand. Is the spine/plane to let you animate the field at runtime for animation
@cratesmith no, it's for extrapolating 3D models from a bunch 3D splines based on their proximity to one another
@aeva @cratesmith
So, in, say, a VR setting you could use this for free-form modeling? Let the user sketch with a stylus or finger; approximate their movement with splines; then use this to create the intended 3D structure.
@jannem @cratesmith yeah. This would work really well as a VR modeling tool.

@aeva so cool! ^^

what do you mean by adapting the technique to 3d?  

is the input still splines? but then.. how's does the output become a mesh instead of a surface?

@celestia it's not apparent from the spline set I used, but the idea is that it doesn't have to be a height map
@aeva I've said it before and I'll say it again: somehow, inexplicably, everything can be solved with Voronoi.
@lunarood @aeva there is absolutely a deeper truth. Voronoi is related to blue noise and so both hyperuniformity and optimal transport. also a cousin to low discrepancy sequences, so "n queens" and sudoku and latin hypercubes and things like that, as well as numerical convergence speeds 🙂.
@lunarood @aeva oh but also more mundane: if you wanted to make an acceleration structure to find the closest registered point (or object/shape) to a query point.... you'd end up at voronoi. It's a common operation, seems like voronoi should be a basic computer science data structure :P

@demofox @aeva Absolutely. But I've often been very surprised by where it pops up. I've more than once had problems that were (or appeared to be) completely unrelated to space division or spatial distributions, where Voronoi ended up being the solution.

Traversing a Voronoi edge graph also has many uses, which are less obvious than your typical Voronoi application. You could frame this as a walk over a Delaunay triangulation, but sometimes it helps to reason about it in terms of Voronoi.

@demofox @lunarood @aeva I remember learning the standard algorithm for computing them and realizing that Voronoi diagram are (in some sense) a generalization of sorted lists to higher dimensions and being deeply wowed
@multioculate @lunarood @aeva I never thought of them like that but agreed, that's neat
@aeva looking forward to the animation support too 😂
@demofox one thing at a time 😅
@aeva @demofox and holes/tunnels! 🤗
@aeva Can the splines be children of any object in the scene? This is a powerful aspect of the class of terrain editing you're doing. Like, you place some splines around a castle defining the terrain around it and inside it, and then if you move the castle, the local terrain features move along with it.
@runevision yes :D that is something you can do with this

@aeva do you think it's possible to have a hole-punching spline too? It would "tunnel" and perhaps its thickness along the spline could be the diameter.

No cooking clue on my end. Waves hands and mutters magical booleans.

@dbat yeah, *handwaves*, signed distance fields, basically
@aeva totes look like a cow with closed eyes!
@dbat huh. it kinda does now that you mention it
@aeva I like how you always say "time permitting" and then be like crazy productive
@pupxel there's a lot going on right now and eventually the switch is going to flip from stress programming back to exhaustion again
@aeva "Higher order" is enuff 2 scare me 2 deth. I await ur brilliance hnstly.
@dbat oh it's really easy you just [intense static] and bobs ur uncle
@aeva Hah! I sense that u underfeel!
@aeva Are you going to render these SDFs with SDFs?
Please say yes.
aeva (@[email protected])

Attached: 1 video I figured out how to make the reflections stable while the camera is in motion :3 CW strobing

Gamedev Mastodon

@aeva
It really is a lot of fun just to follow you putting pieces together and gradually figuring out how to make it work.

I'm starting to get the appeal of live coding streams on Twitch.

@jannem it would be a looong stream if I live streamed all of this lol
@aeva
But these snapshots work great.
@aeva yeah it really seems like it’d be fun to block out landscapes with it