hhmx.de

Föderation EN Mi 11.09.2024 05:58:03

I started learning Houdini tonight. And by Houdini, I mean Blender Geometry Nodes :3

Föderation EN Mi 11.09.2024 06:01:12

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.

Föderation EN Mi 11.09.2024 06:02:28

I wonder if my old wacom tablet still works 🤔

Föderation EN Mi 11.09.2024 06:55:55

weird, pressure sensitivity doesn't seem to work anymore, but otherwise it seems fine???

Föderation EN Mi 11.09.2024 07:07:35

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

Föderation EN Mi 11.09.2024 07:15:38

aaand it crashes blender :|

Föderation EN Mi 11.09.2024 07:16:20

there's too much linux in here >:(

Föderation EN Mi 11.09.2024 07:21:32

yup completely random which applications it works with. blender doesn't pick it up at all?

Föderation EN Mi 11.09.2024 07:21:52

by any chance is this yet another thing wayland fucked up?

Föderation EN Mi 11.09.2024 07:28:47

I'm gonna have to install Windows again to use this thing aren't I

Föderation EN Mi 11.09.2024 07:33:53

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.

Föderation EN Mi 11.09.2024 08:05:53

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.

Föderation EN Mi 11.09.2024 09:45:10

when linux gives you wayland you burn linux's house down

Föderation EN Do 12.09.2024 04:24:09

I made some progress tonight on learning ! I made a little relief with an elevation map of Kauaʻi and a blue noise texture to hide the banding.

Medien: 1

Föderation EN Do 12.09.2024 09:14:43

I added trees

Medien: 1

Föderation EN Do 12.09.2024 10:24:54

it's amazing how much blender has changed since i first spent several hours making a shitty gingerbread man in it back in '02

Föderation EN Do 12.09.2024 20:04:08

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

Föderation EN Sa 14.09.2024 01:27:09

watch out tech artists i know houdini now

Medien: 1

Föderation EN Sa 14.09.2024 05:01:28

hornswoggled!

Medien: 1

Föderation EN Sa 14.09.2024 08:48:05

experimenting with using splines to draw roads onto height maps

Medien: 1

Föderation EN So 15.09.2024 07:00:27

I figured out how to make non-uniform grids with geometry nodes 💀

Medien: 2

Föderation EN So 15.09.2024 07:21:07

I like this Zachtronics game

Föderation EN So 15.09.2024 08:03:33

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 >_>

Medien: 1

Föderation EN So 15.09.2024 08:49:26

my feature wishlist for

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

- collapse edges / faces / vertices operator

- python nodes

Föderation EN Mo 16.09.2024 03:26:37

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

Medien: 3

Föderation EN Do 19.09.2024 08:29:25

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.

Medien: 1

Föderation EN Do 19.09.2024 08:46:56

Side note, I like how all my node graphs end up looking vaguely like deep sea creatures.

Medien: 4

Föderation EN Sa 21.09.2024 08:27:30

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.

Medien: 1

Föderation EN Sa 21.09.2024 08:47:05

Here's another one. This took like no time at all to draw out. I feel like I'm on to something.

Medien: 1

Föderation EN So 22.09.2024 01:02:25

I've decided there's one obvious correct name for this technique and it is Spline Distance Field :3

Föderation EN So 22.09.2024 05:13:36

I made a little visualizer material for my Spline Distance Field thingy.

Medien: 1

Föderation EN So 22.09.2024 09:13:08

🌲

Medien: 2

Föderation EN So 22.09.2024 10:04:21

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

Medien: 1

Föderation EN Mo 23.09.2024 18:45:48

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.

Föderation EN Mo 23.09.2024 19:46:20

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

Föderation EN Di 24.09.2024 10:17:38

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.

Föderation EN Di 24.09.2024 10:19:16

Might have to settle for blurring the height around those edge crossings instead.

Föderation EN Di 24.09.2024 10:22:21

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.

Föderation EN Do 26.09.2024 03:53:23

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.

Medien: 1

Föderation EN Do 26.09.2024 03:59:44

🤔

Medien: 1

Föderation EN So 29.09.2024 01:47:39

happy accident: transforming arbitrary meshes with the spline field

Medien: 1

Föderation EN Mo 30.09.2024 02:11:27

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.

Medien: 2

Föderation EN Di 01.10.2024 02:46:00

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

Föderation EN Di 01.10.2024 02:47:02

what really gives me life today is she wants to push it even further <3

Föderation EN Sa 05.10.2024 02:41:06

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

Föderation EN So 06.10.2024 04:36:19

oh great, the piecewise solution is a 3D voronoi diagram. of course it is 😔

Föderation EN So 06.10.2024 06:45:00

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.

Medien: 1

Föderation EN So 13.10.2024 01:39:51

getting closer...

Medien: 2

Föderation EN So 13.10.2024 01:54:58

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.

Medien: 1

Föderation EN So 13.10.2024 03:21:16

nailed it :3

Medien: 3

Föderation EN So 13.10.2024 03:35:37

Btw here's a cool trick I figured out today:

Say you have a bunch of mesh patches that overlap but the vertices don't line up, and you wanna force them to anyway.

Use the "Distribute Points on Faces" node with the "Poisson Disc" mode and a minimum distance equal to the longest edge in your triangle soup.

Then in the triangle soup, snap each vertex to the closest point in the poisson disc point cloud, merge by distance, and bam! you got something that is very almost a delaunay triangulation :3

Föderation EN Mo 14.10.2024 00:33:48

Attempting to make a car with the 3D spline modeling technique. So far so good!

Medien: 1

Föderation EN Mo 14.10.2024 01:11:10

blocking out the roof and back window

Medien: 1

Föderation EN Mo 14.10.2024 05:23:58

This is probably as far as I get tonight, unless I get an inexplicable second wind.

So far I think this technique is agreeable for me. I've been able to pick at it a bit on and off despite being sick and tired. This technique is a more fiddly than I want it to be, but that might in part be because I'm trying to make the model accurate to my references.

Unsurprisingly I have some ideas for how to improve this technique further.

Medien: 1

Föderation EN Mo 14.10.2024 05:38:52

I think what I actually want is to make the feature outlines with splines (eg, the windows, the different parts of the car body, the bumper, etc) and then use those to guide the placement of control points that can then be used to further adjust the shape of the local surface, as well as to paint materials. The spline outlines would then also serve as cropping features for the control points / surfels so materials can have hard edges etc.

Föderation EN Mo 14.10.2024 05:45:44

As for what my game is to render exactly, I'm leaning towards representing stuff authored in Blender as cropped surfel clouds that can then be raytraced to produce more different surfels. Cropped surfels would be a set of pseudo discs that occasionally also have a cropping shape associated.

In that end, anything with a mesh representation can be efficiently prepared for my game via the distribute points of faces node.

Föderation EN Mo 14.10.2024 05:48:49

The cropped surfels thing is nice because I wont have to commit to any particular artistic work flow in Blender, and should I need some kind of acceleration structure I think the surfels could be made hierarchical be generating sets of them at different frequencies and saving out which ones overlap with which.

Föderation EN Mo 14.10.2024 05:53:37

I think the goal I should try to work on next is just putting together a simple scene like a road with a guard rail and some cones pretending to be trees and see if I can export that into something I can render, and then figure out whether or not rendering that can be made fast.

Föderation EN Mo 14.10.2024 06:16:00

I just wanna get lost in the surfels, man 😌

Föderation EN Di 15.10.2024 06:16:52

I don't like how Blender does unit conversion.

If you set a unit system, and choose a non-meter base unit for distance, it converts everything to meters under the hood, with the unit scale being a scale factor on the conversion to meters.

Since the units presented in the UI are superficial, if you need to change the scale or the base unit everything in your scene changes along with it ;_;

Föderation EN Di 15.10.2024 06:18:18

Anyways I just realized that I was greatly mistaken as to how this all worked several hours ago when I tried to setup the base unit and scale to be able to represent a scene a mile in diameter and thought I got to pick the base unit 😩

Föderation EN Di 15.10.2024 07:42:59

I picked a mile diameter for the map cell arbitrarily, but this precision problem in Blender got me thinking about this more and...

huh, I guess the view distance to the horizon is about 3 miles if you're 6 feet tall, and is a few hundred meters less if you're 5 feet tall.

Föderation EN Di 15.10.2024 07:49:27

now I'm trying to decide if I want to vary the draw distance based on camera elevation or if I want to deform the relative world positions of things to simulate the curvature of the earth 🤔

Föderation EN Di 15.10.2024 07:57:32

again way over kill for a game about driving a shitty car in the rain but on the other hand when was the last time you played a game about driving a shitty car in the rain that even attempted to let you reach out and touch the infinite

Föderation EN Di 15.10.2024 18:17:53

I got a bit carried away reading about classical units and what ancient people found to be useful units of measurement, and anyways it turns out the distance you can walk in an hour is in the same ball park as the distance you can see up to the horizon (for some excessively uniform and able bodied definition of "you")

What an interesting coincidence that these just happen to work out to be relatively whole numbers in both time and space.

Föderation EN Di 15.10.2024 18:29:17

Wild speculation here, probably completely wrong, but it wouldn't surprise me if somewhere in the distant past folks used the time it took to walk as far as you can see as a colloquial time unit and that distance as a colloquial large distance unit and through an elaborate game of telephone that eventually became the hour and league of today's units we all love and know (except for all the people the French conquered)

Föderation EN Di 15.10.2024 21:50:04

A continuation of this idea that I want to explore later is applying the time spent walking to the horizon thing as a perceptual unit for distance in video games, because while realistic games often use real world units for modeling things these days, they only do so at a very immediate scale, and large spaces (for good reasons) are typically much smaller than they'd be irl, and so stuff like speed has to be fudged to make it all work.

Föderation EN Di 15.10.2024 21:50:35

It's a problem space I know well, but looking at it from another angle is interesting to me.

Föderation EN Di 15.10.2024 21:59:33

somethings that might be interesting to play with: the amount of time a player takes to walk an arbitrary distance in a straight line can be used to calculate a practical unit conversion for literal distances, and the amount of time it takes for the player to walk a route between to points on the map following a natural travel route can be used to determine how big the space actually feels

Föderation EN Mi 16.10.2024 05:53:09

oh my god blender does not consistently apply the unit scale everywhere it does the internal conversion to meters >:O

Föderation EN Mi 16.10.2024 06:09:02

well my precision problems seem to be primarily due to poor choices made in their choice of view matrix so that's easy enough to work around at least

Föderation EN Mi 16.10.2024 06:36:11

Anyways here's a mile diameter of terrain in Blender :P

Pretend this is a 2 lane rural highway that suspiciously lacks its shoulders, clear zones, and normal markings in an improbably arid mountainous region of Wisconsin and not a narrow path through cookies and cream land.

Medien: 2

Föderation EN Mi 16.10.2024 10:02:20

I think for map cells it'll work better if I try to keep the road connections at the crests of hills and going around bends and stuff like that, and the ideal size of a given cell is probably a function of how fast the player is expected to move through it, so when you're at the stage of the game where you're likely to travel in the 60 - 120 mph range a mile or three is probably a pretty reasonable cell diameter. the faster sections of the game will want larger map cells though

Föderation EN Do 17.10.2024 06:30:08

I had an idea for an interpolation strategy that doubles up as a noise function, and, well, here it is. I'm much happier with this version :3

Medien: 1

Föderation EN So 20.10.2024 05:18:50

I figure the exporter may as well build the acceleration structure for non-implicit models like landscape tiles for my game, so I'm experimenting with data structures for that now.

Here's a visualization of a hierarchical surfel graph for that landscape I posted a picture of the other day.

Medien: 3

Föderation EN So 20.10.2024 07:00:55

I'm experimenting with the graph construction parameters and visualization thereof and take my word for it that this image is actually very useful to me, but the main thing going on here is that it looks cool.

Medien: 2

Föderation EN So 20.10.2024 07:24:51

The visualizations are cool but this graph construction technique leaves something to be desired unfortunately.

My thinking was to poisson disc sample the terrain mesh at several intervals with the disc size decreasing each time. Each point becomes a surfel, and the nearest point in the previous generation is its parent.

The central light green patch shows that this technique can cause the coverage to meander quite a bit, and it gets worse the larger the root surfels are :(

Medien: 1

Föderation EN So 20.10.2024 07:38:16

the distribution looks fine if the root generation is dense enough though, so idk

Föderation EN So 20.10.2024 08:05:56

It might be fine actually. In that particular case, the particularly prolific root surfel would have a bounding sphere about three times the diameter of the root surfel, but it only has 4 immediate branches which. So really it's a question of how tangled the branches are (and thus how fast it can prune them when processing ray queries), which is not something I can see easily from this visualization.

Föderation EN So 20.10.2024 08:59:42

limiting the graph depth is also effective at preventing meandering

Medien: 2

Föderation EN So 20.10.2024 09:05:54

I think a better grouping strat will be having every surfel in the graph first label its ideal root, and then recursively pick the best ancestors that share a common root etc, but I don't feel like trying to implement that in geonodes tonight

Föderation EN Mo 21.10.2024 07:20:14

This version of the surfel graph thingy looks like it might be more or less right.

Medien: 1

Föderation EN Mo 21.10.2024 08:52:53

ok that wasn't quite right but take my word for it this one is more along the lines of what I'm looking for

Medien: 1

Föderation EN Sa 26.10.2024 07:43:08

I learned how to use blender's greasy pencil tonight :D

Medien: 1

Föderation EN So 27.10.2024 06:23:02

Time to make like a tree and shed all my stop signs for the winter!

Medien: 1

Föderation EN Mo 28.10.2024 03:08:48

I fixed the text on the signs, and tweaked a bunch of other things.

Medien: 1

Föderation EN Di 31.12.2024 20:56:51

If you've been feeling down because you want to MAKE TERRAIN OUT OF SPLINES but you're not sure how and you really want to read a nice beginner friendly BLOG POST that walks through how to do that in with 23.4 MiB of FULL COLOR PICTURES and EXAMPLE SOURCE FILES well I have GREAT NEWS for you because I wrote one of those over the last three days and I'm really excited to share it!

Check it out: zone.dog/braindump/spline_fiel

Medien: 2

Föderation EN Di 31.12.2024 21:00:08

I have enough material I wasn't able to cover that could make for several more followup posts, so if you read it and you're like that's great but I want to know more about this one specific thing please tell me and maybe I'll write a followup to this or two!

Föderation EN Di 31.12.2024 21:15:41

@aeva It was a nice treat that I hadn't had a chance to see any of your updates on these things for a while and then I got to see a big ol update on your last 3 months blender journey all at once

Föderation EN Di 31.12.2024 21:16:37

@cwebber aw :3 I'm glad you got to see it all

Föderation EN Di 31.12.2024 21:11:40

@aeva oh man I am loving this crunchy car

Föderation EN Di 31.12.2024 21:08:42

@aeva I like how you have changed your theme in every one of these posts

Föderation EN Di 31.12.2024 21:07:31

@aeva oh gus

you got us to try a thing, and also taught us all the wrong lessons in the process

Föderation EN Di 31.12.2024 21:08:43

@cwebber he taught us that the real blender was the friends we made along the way 😌