| | Re: Rendering implementation details
|
|
(...) Ok, I drew a better picture (2 planes in space and a floating eye) and I'm starting to see. Maybe you're onto something. It takes 2 surface normals and one point on the edgeline to divide space into 4 quadrants. Then you only need to figure (...) (20 years ago, 29-Jan-05, to lugnet.cad.dev)
|
|
| | Re: Rendering implementation details
|
|
(...) It doesn't matter, actually. In one way or another, optional lines are required. In general, the "magic halo" effect only highlights _outside_ edges, but for a non-convex object, that won't necessarily be adqeuate. You can't even get away with (...) (20 years ago, 30-Jan-05, to lugnet.cad.dev)
|
|
| | Re: Rendering implementation details
|
|
(...) It has been done before. Ildefonso Junior Zanette wrote a program called Windz, I use it all the time when I author parts. I can't remember if he publically released it. -Orion (20 years ago, 30-Jan-05, to lugnet.cad.dev)
|
|
| | Re: Rendering implementation details
|
|
(...) no, he didn't. when I last met him at legoworld 03 he promised to do it but actually never did (as far as I remember at the time windz had an error quote of 2-3 percent - too much from his point of view :-(( w. actually I'll add the (...) (20 years ago, 31-Jan-05, to lugnet.cad.dev)
|
|
| | BFCFixer
|
|
(...) Well, I had some spare time today... so I wrote one. It goes through a single LDraw part file and reorients all the polygons in it to have the same winding. It comprehends the notion of subfiles and already BFC compliant parts, and puts the (...) (20 years ago, 3-Feb-05, to lugnet.cad.dev)
|
|
| | Re: BFCFixer
|
|
(...) I may be being dense here, but I dont understand how this can be done programatically. The point of BFC is to allow renderers to understand if a particular polygon is facing the camera or facing away from it. If all polygons are wound (...) (20 years ago, 3-Feb-05, to lugnet.cad.dev)
|
|
| | Re: BFCFixer
|
|
(...) I think it can be done for simple objects, by choosing a random winding for 1 polygon, then processing all touching polygons so they're wound the same way (when looking from the same side - out ot in). This would produce a result that is (...) (20 years ago, 3-Feb-05, to lugnet.cad.dev)
|
|
| | Re: BFCFixer
|
|
(...) The way it's been done before is to draw rays from the origin outward. The first polygon a ray crosses is facing inward, and the last polygon a ray crosses would be facing outward. The ones in between *should* alternate facing in and out. Do (...) (20 years ago, 3-Feb-05, to lugnet.cad.dev)
|
|
| | Re: BFCFixer
|
|
(...) Oh yeah! Let me at it. :) Steve (20 years ago, 3-Feb-05, to lugnet.cad.dev)
|
|
| | Re: BFCFixer
|
|
(...) Ask, and ye shall receive. (URL) code is included (hopefully my crude hackings can be deciphered by others) as well as an executable jarfile in the dist/ subdirectory. Enjoy. If you find any major bugs, let me know, and I'll see what I can do, (...) (20 years ago, 3-Feb-05, to lugnet.cad.dev)
|
|
| | Re: BFCFixer
|
|
(...) Would you guys want a code repository for this? I have a SVN repo set up that I could easily add this as a project... Just LMK! (20 years ago, 3-Feb-05, to lugnet.cad.dev)
|
|
| | Re: BFCFixer
|
|
(...) Of course, it's that simple - thanks. Except some of the most basic LDraw parts (regular bricks) fail this test because the studs are "stuck on" a complete quad, rather than a surface peppered with stud-sized holes. Chris (20 years ago, 4-Feb-05, to lugnet.cad.dev)
|
|
| | Re: BFCFixer
|
|
(...) Such components are handled correctly by BFCFixer as "detached" submodels, and are oriented consistently with the rest of the polygons in the file as long as each independant submodel is sufficiently enclosed that a correct winding can be (...) (20 years ago, 5-Feb-05, to lugnet.cad.dev)
|