I made a bit of progress on the new meshing system for #TangerineCSG this weekend.

Yesterday I worked out how to enumerate all of the cells, faces, and vertices for a rhombic dodecahedron lattice with only integer math!! Today I rewrote the C++ prototype to make use of that.

This screenshot is not representative of the final result (I'm still missing some parts that will greatly improve the quality and accuracy of the final mesh), but I dig the accidental particle system vibe going on here.

side thought: "rhombic dodecahedron lattice" is way too much of a mouth full. maybe I should just call them "rhoxels" instead (cuz they rhoxel ur soxels)

I wonder if my "generating repeating rhombic dodecahedra with entirely integer coordinates" work from this weekend is worth it's own blog post? Would anyone be interested in that?

I was planning on writing up something about the new meshing system after I had a chance to experiment with a few more improvements, but I think this technique is pretty interesting on it's own.

@aeva Plz do blog it. Also u should totally read this book https://plus.maths.org/issue49/reviews/book2/2pdf/index.html/op.pdf
@MCSpaceCadet sure. what's in it?
@aeva Mainly these catoptric space tilings, one of which seems likely to be yours?
@MCSpaceCadet ah, that looks fun!
@aeva got a bit further, is this your construction?
@MCSpaceCadet I'm just generating them directly using an integer addressing scheme I worked out after staring at the shapes for a few days, and some lookup tables I assembled with some guesswork. Here's some visualizations from the other day https://mastodon.gamedev.place/@aeva/111712708078996409
aeva (@[email protected])

Attached: 2 images @TomF @lisyarus I got it :3 The first image shows the integer addressing diagram for the first three layers. Magenta is the center of a shared face, lime green is a cell center, and blue indicates where a vertex would occur. White tiles do not correspond to anything. The second image shows the same data as a rhombic dodecahedra honeycomb. The vertices and face centers are indicated with the same color scheme. (cw for trypophobia, maybe mostly on the second image idk)

Gamedev Mastodon
@aeva (there is lots else in it as well, but this was the relevant bit)
@aeva I'm curious about the details of how you've done it.

@misterdave I will probably write something up this weekend, but if you're interested in reading source code in the mean time, this is where my naive implementation is right now https://github.com/Aeva/tangerine/blob/072566c10ff59d42a7eeb42008880127f47cbb97/tangerine/sodapop.cpp#L1325

(the bulk of the integer lattice stuff is implemented in the two structures above that line)

tangerine/tangerine/sodapop.cpp at 072566c10ff59d42a7eeb42008880127f47cbb97 路 Aeva/tangerine

馃崐. Contribute to Aeva/tangerine development by creating an account on GitHub.

GitHub
@misterdave right now the memory usage explodes violently for moderately large models though, because I'm doing something silly. I haven't had time to fix that yet though.
@aeva But really they are a subtype of voxels though. Rhovoxels?
@MCSpaceCadet that never stopped anyone from coining "froxels"
@MCSpaceCadet also here's a challenge for you if you've got too much time on your hands: find me a popular example of colloquial usage of the word "voxel" that doesn't describe something that's been discretized into cubic or even rectilinear units.
@aeva I think your sdf has sprung a leak
@mcc rhoxels everywhere! I'm gonna need to find a mop...
@aeva Hey this isn't the first time I've seen you use that wallpaper, but I've just realized what it's for and it's really cool. Where did you find it / how to do that?
@TheZouave Do you mean the grid in the background? I wrote it https://github.com/Aeva/tangerine/blob/excelsior/shaders/bg.fs.glsl
tangerine/shaders/bg.fs.glsl at excelsior 路 Aeva/tangerine

馃崐. Contribute to Aeva/tangerine development by creating an account on GitHub.

GitHub
@acavalie could be the same idea, but I don't have the energy to read something that dense right now, so can't really say. This is what I put together though https://github.com/Aeva/tangerine/blob/excelsior/tangerine/sodapop.cpp#L940
tangerine/tangerine/sodapop.cpp at excelsior 路 Aeva/tangerine

馃崐. Contribute to Aeva/tangerine development by creating an account on GitHub.

GitHub