# Boris The Brave

Member

12

• #### Days Won

1

Boris The Brave had the most liked content!

16 Neutral

• Rank
Member

• Website
• Role
Programmer
• Interests
Programming

## Social

• Github
https://github.com/BorisTheBrave

## Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

1. ## Dungon Generation in Diablo 1

No, I guess it's stuck that way.
2. ## Algorithm Dungon Generation in Diablo 1

I recently discovered the source code to Diablo 1 has been reverse engineered to a readable state: https://github.com/diasurgical/devilution I did a write up of how the levels are procedurally generated: https://www.boristhebrave.com/2019/07/14/dungeon-generation-in-diablo-1/
3. ## Marching Cubes and Dual Contouring Tutorial

Also, that author makes it very clear he has a signed distance and is evaluating it more than once per cell in order to get gradients. If you follow this link and search for DensityFunc, you'll see him getting gradients from multiple evaluations of the function.
4. ## Marching Cubes and Dual Contouring Tutorial

If you don't have gradient data, you want surface nets, not dual contouring (briefly mentioned in the article): find the locations of the sign changes around the cell, and pick the average point of those to be the vertex of the cell. Effectively this is the same as assuming the normals are always perpendicular.
5. ## Algorithm "Chiseled" random paths algorithm

Hey guys, I made a new procedural generation algorithm for laying out paths on a grid in an organic way. Maybe you'll find it interesting. https://www.boristhebrave.com/2018/04/28/random-paths-via-chiseling/
6. ## Marching Cubes and Dual Contouring Tutorial

If you want surface nets out of my code, it's pretty easy. If you turn off adaptivity and run the dual contouring, you get unsmoothed surface nets. If you want smoothed surface nets, replace solve_qef_3d with numpy.mean(positions, axis=0).
7. ## Marching Cubes and Dual Contouring Tutorial

I don't believe normals are your problem, actually. The adaptivity (i.e. choice of vertex location) is also dependent on the function being smooth, which your is not. It expects height of the function to roughly correspond to "depth from the surface". Your function is basically zero inside the unit sphere, and infinity (or 4) outside, with little to no transition, violates this. The julia set is really just an yes/no measurement, it's not meant as function returning a float. The easiest thing to do is to turn off adaptivity, and use marching cubes, as in that case a yes/no measurement is all you need. Then just crank up the resolution.
8. ## Marching Cubes and Dual Contouring Tutorial

Thanks cowcow. I've pushed some changes that may help you. I should point out that the function you've chose is fractal. I'm afraid that it may not be "sufficiently smooth" enough for the gradient evaluation to work. This might be a time where you are better off sticking with marching cubes.
9. ## Why the sudden boom in marching cubes? [Possible target]

Well I just posted a MC tutorial on GameDev just yesterday. I had been working on that tutorial for a long time and picked Sunday due to personal timing, so I expect it's just co-incidence.
10. ## Marching Cubes and Dual Contouring Tutorial

Cow, your evaluation function returns only positive numbers, but I've configured the code to treat anything positive as solid. Try subtracting a constant, like I've done in circle_function, so you get some positive and some negative values.
11. ## Marching Cubes "Fun"

Your images are terrible quality, but it looks like you are not getting a manifold mesh out of your algorithm, so I expect you've got the cases wrong. Perhaps with larger, better lit images it would be clearer? While I'm not going to review your cases, I've recently posted a marching cubes tutorial, so you can look over my cases instead? I have unit tests for the case table, you could port that to see if your own table passes. Otherwise, I'd start debugging your code. Marching Cubes is very easy to test a single cube in isolation, so I'd start with one you know to be wrong.
12. ## Marching Cubes and Dual Contouring Tutorial

I've put together some tutorials that explain the ideas behind Marching Cubes and Dual Contouring. Maybe it'll be useful to some of the forum-goers. Marching Cubes 2d Marching Cubes 3d Dual Contouring Each tutorial comes with sample code in Python. Let me know what you think. This is the first time I've written a tutorial, but may do more if people want them.