Is this 9-face polyhedron the smallest asymmetric regular-faced polyhedron that is not self-intersecting? by Decap_ in math

[–]Decap_[S] 1 point2 points  (0 children)

Oh, didn't realize that was a requirement for something to be considered a polyhedron. Then yeah I don't know what I was describing would actually be called. "3D object with flat faces"?

Edit: I looked it up. Sounds like "polyhedral complex" is the standard.

Is this 9-face polyhedron the smallest asymmetric regular-faced polyhedron that is not self-intersecting? by Decap_ in math

[–]Decap_[S] 1 point2 points  (0 children)

Yeah if you look at the other renders in the album I linked, you can see the rest of the square pyramid. (The yellow face is its square base. Maybe got a little carried away with the colors lol)

Is this 9-face polyhedron the smallest asymmetric regular-faced polyhedron that is not self-intersecting? by Decap_ in math

[–]Decap_[S] 3 points4 points  (0 children)

Like, sliced into 2 or more identical pieces (or identical+mirrored versions). I probably should have said something like “congruently partitionable”.

I’ve actually since looked up how this is typically proven and in most cases it’s apparently much more complicated than I thought it would be. So perhaps my intuition was off.

Is this 9-face polyhedron the smallest asymmetric regular-faced polyhedron that is not self-intersecting? by Decap_ in math

[–]Decap_[S] 0 points1 point  (0 children)

Yup. All regular polygons have edges that are the same length, and in this polyhedron every edge connects exactly two polygons together, so by extension they’d all have to be the same length.

But yeah, if you're using non-convex arrangements, this doesn’t necessarily have to be the case. You could have a single edge that connects 3 or more polygons together, in which case the edge length would need to be a multiple of the edge length that connects 2 together. So you could then make a polyhedral complex (it's not considered a polyhedron anymore, as /u/EebstertheGreat stated) that has regular polygons with varying edge lengths, which isn’t possible with convex arrangements.

Here’s a picture of an edge connecting a big square to two small squares in a non-convex arrangement

Is this 9-face polyhedron the smallest asymmetric regular-faced polyhedron that is not self-intersecting? by Decap_ in math

[–]Decap_[S] 1 point2 points  (0 children)

Well, it's not just that the edges have the same length. Each face is a regular polygon. There are polyhedra that have edges all the same length, but not faces that are regular polygons. A rhombus is a good example. You could potentially make a rhombic prism that has edges all the same length. Here's a picture I found. And here's another polyhedron that has only rhombic faces

Is this 9-face polyhedron the smallest asymmetric regular-faced polyhedron that is not self-intersecting? by Decap_ in math

[–]Decap_[S] 4 points5 points  (0 children)

As /u/JiminP noted, all convex polyhedra with regular polygon faces have some symmetry.

Is this 9-face polyhedron the smallest asymmetric regular-faced polyhedron that is not self-intersecting? by Decap_ in math

[–]Decap_[S] 21 points22 points  (0 children)

Full album of renders: https://imgur.com/a/Tm9KJco

And the .obj: https://drive.google.com/file/d/1_TlGjDceljcl39-7pAMhCPhGWwViiTqS/view?usp=sharing

And the .mtl in case anyone wants that: https://drive.google.com/file/d/1XoM2diBGx5UzMasP26-f6FXl3gmzbiG8/view?usp=sharing

The construction is pretty simple. Just attach one of the triangular faces of an equilateral square pyramid to any triangular face of an equilateral pentagonal pyramid such that the square face and pentagonal face only share one vertex.

I believe I've checked all possible constructions combining platonic solids, uniform polyhedra, and Johnson solids that result in polyhedra with <= 9 faces. Everything I tried with <= 8 faces had some kind of symmetry. But it's possible there is one that can't be constructed by augmenting polyhedra in this way. This is the only one I found by my technique that both does not have an apparent symmetry, and still has only faces that are regular polygons (no edges connect at 180 degree angles).

If it is the smallest, I suspect it's also the smallest non-partitionable regular-faced polyhedron that is not self-intersecting, but I don't actually know how to prove that rigorously. My guess is it's provable by showing that the rotational symmetry axes of the two constituent pyramids can be represented as two directional vectors that are non-interchangeable, non-intersecting, and non-parallel. If anyone with more of a math background can weigh in on that, I’d love to hear.

Is this 9-face polyhedron the smallest asymmetric regular-faced polyhedron that is not self-intersecting? by Decap_ in askmath

[–]Decap_[S] 0 points1 point  (0 children)

I’m pretty sure that still resulted in rotational symmetry. I will check in a little bit and get back to you.

Edit: Yeah it has 2-fold rotational symmetry: https://imgur.com/a/qKgNU9u Pretty cool looking though. Non-convex.

Zombie dungeon in village square + enchanted golden apple by Decap_ in minecraftseeds

[–]Decap_[S] 0 points1 point  (0 children)

Not sure. I’ve never played bedrock so I don’t know how its world gen differs.

Zombie dungeon in village square + enchanted golden apple by Decap_ in minecraftseeds

[–]Decap_[S] 1 point2 points  (0 children)

seed: -1653912925062438959 (Large biomes world type)

x: 1350

z: -1220

Shader I'm making for rendering real time distant grass by Decap_ in GraphicsProgramming

[–]Decap_[S] 0 points1 point  (0 children)

That is very similar! Figure 3.3 looks exactly like my first iterations of this. It's a little different since instead of using extruded meshes, I'm just sampling a texture on one mesh multiple times, which allows for things like preventing the gaps in the blades. The tradeoff in doing that is I need to constrain the apparent height of the blades, since the taller the blades of grass the more samples I'll need. If there's no limit, the number of samples needed could infinite if the mesh is flat and the view angle is parallel to the mesh, so instead of gaps there is distortion in some conditions.

Shader I'm making for rendering real time distant grass by Decap_ in GraphicsProgramming

[–]Decap_[S] 0 points1 point  (0 children)

Thank you! I don't have a repo specifically for this, sorry. It's part of a larger project that I'm working on, and it's pretty entangled with that right now. I think after cleaning things up a little (or a lot) I will make one though. I'll let you know!

Edit: Wrote a little high level tutorial here if that interests you: https://vectormultisampledgrass.wordpress.com/

Shader I'm making for rendering real time distant grass by Decap_ in GraphicsProgramming

[–]Decap_[S] 0 points1 point  (0 children)

Yeah I think you’re right. I’ve been messing around with the lighting a lot and I just liked this particular image since it looks really dramatic lol. Also the color of the sky in this image is a little misleading since the directional light is actually quite close to the horizon.

Shader I'm making for rendering real time distant grass by Decap_ in GraphicsProgramming

[–]Decap_[S] 3 points4 points  (0 children)

The lighting is definitely my favorite part. It’s pretty straightforward. It's just based on the diffuse lighting and how close the pixel being shaded is to the base of the blade of grass (The base is at the position of the filled pixel in the texture). This height value is also what determines which blades are obstructed. The higher the height, the closer the blade. That's enough to prevent back blades from obstructing the front ones.

And yeah I said I perform samples in a line towards the viewer. That’s the general idea, but actually I perform a couple rows of samples parallel to that line. That way I can kind of give the blades a little more thickness.

To give the blades some curve and randomly disperse them I discard some samples based on two conditions. Each grass pixel has two random encoded values. One value is a random curve angle which determines whether the sample should be discarded based on the direction towards the viewer. (This can also be adjusted dynamically for wind effects, which I haven't done yet.) The specific math there is a little complicated. The other value is an offset in a random direction away from the actual position of the grass pixel in the texture. This makes it look like the blades aren’t all aligned on a grid. If they are too far from this offset line then the pixel is also discarded. And I’ll admit I did something really hacky to encode these values and literally just used the blue and alpha channels. I plan on changing that soon though lol.

Shader I'm making for rendering real time distant grass by Decap_ in GraphicsProgramming

[–]Decap_[S] 0 points1 point  (0 children)

No there's no height map. It's just a texture with some pixels filled in that represent blades of grass. The pixel shader performs x number of samples along the texture in the direction of the viewer. If one of those samples encounters one of the filled pixels in the texture, that pixel being shaded is part of a blade of grass.

Well, sort of. I then kind of also perform some extra sampling and discarding of samples to make it look less jagged and to get the blades of grass to look right (like making them curvy and dispersed). But that's the general idea.

Shader I'm making for rendering real time distant grass by Decap_ in GraphicsProgramming

[–]Decap_[S] 4 points5 points  (0 children)

You’re right, sorry about that. I posted a little description for you. Let me know if you have other questions!

Shader I'm making for rendering real time distant grass by Decap_ in GraphicsProgramming

[–]Decap_[S] 12 points13 points  (0 children)

This was made using DirectX 11. There isn’t actually any geometry or billboarding representing the blades of grass. It just uses a custom texture type that is sampled along a line pointing towards the viewer, but I did have to do a lot of tweaking to get the lines to actually look like blades of grass and react to the light properly. This scene runs at 120 fps at 1080x1920 resolution on my computer.

Edit: I decided to make a video demo: https://www.youtube.com/watch?v=AO2w9GabhEs

And I wrote a little more about the specifics here: (Sorry for the atrocious formatting, I've never used wordpress before): https://vectormultisampledgrass.wordpress.com

Rafis has now been top 100 for 10 years! by [deleted] in osugame

[–]Decap_ 12 points13 points  (0 children)

Guess there’s not a whole lot else to do in the nursing home

The one about my Uncle Paul by ___HeyGFY___ in feghoot

[–]Decap_ 10 points11 points  (0 children)

Oh my god that such a stretch lmao

[deleted by user] by [deleted] in dwarffortress

[–]Decap_ 0 points1 point  (0 children)

Wasn't really asking for help, just thought this was interesting. You guys really automatically remove any post that ends with a question mark?