Hi all,
I’ve experimented a bit with JOGL 1.0, now I would like to take it a step further. A simple question, but I found no answer on the internet:
How would I bore a cylindrical hole into a cuboid? I’ve tried intersecting a cylinder with a solid box, but then of course the cylinder is invisible because it doesn’t create a hole. I was successful in creating a square-shaped hole using tessellation (glu.gluTessVertex()), but that’s easy because there are only 4 vertices on either side of the box. I’m missing a method like glu.gluTessCircle()… Probably I need a deeper understanding of the API here, anyway I would very much appreciate if someone could give me a hint. Thanks!
Generate the geometry or use the stencil buffer.
Using the stencil buffer would make everything in that area black (or another color), right? I would like to see the inner side of the hole, so it seems to me the only solution is generating the geometry. Quite a bit of work for such a simple effect…
It should still be possible to do with the stencil buffer, but I wouldn’t say that it’s a simple effect. Let me think a bit…
To generate the data yourself, do an intersection test with the cylinder for every triangle in the object and tessellate the ones that intersect. You’ll have to google the math to do this though, as I can’t help you here… T_T
Thanks theagentd, finally I’ve been successful. I generated the geometry, both for the circles on either side of the block and the inside walls of the hole. Took me quite a bit of work, especially calculating the normals.
Nice! Sounds like it was really hard to implement, but generating the geometry is probably the best way of doing it.