To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.cad.devOpen lugnet.cad.dev in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 CAD / Development / 4316
  Some Words To BFC
 
Hy, I finaly got internet-access here, and could follow the discussions about BFC. Some words I would like to say first: I think it doesn't make sence to blame Steve about BFC stuff, since I asked him if the spec is in a state that we could try it. (...) (25 years ago, 4-Apr-00, to lugnet.cad.dev)  
 
  Re: Some Words To BFC
 
If you 're able to correct wrong things in a model so BFC can be used, is it than not possible to make a program that goes over al your parts once and corrects all the parts so that all your models will be automatically correct? Michael Lachmann (...) (25 years ago, 4-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) <SNIP> Sure that is possible, I could imagine having a seperate tool for this, or even implementing it as a helper-function inside MLCad which does something like a BFC conversion. This solution would definitly be a better aproach. Michael (25 years ago, 4-Apr-00, to lugnet.cad.dev)  
 
  Re: Some Words To BFC
 
(...) That's why I droped out of the BFC discussion a long time ago, we are making this a big issue with proposals for a new extension when we could make things much simpler. If you know that a part is wrong, instead of adding a "0 INVERSE" (...) (25 years ago, 4-Apr-00, to lugnet.cad.dev)  
 
  Re: Some Words To BFC
 
Leonardo Zide <leonardo@centroin.com.br> wrote in message news:38E9EDA0.2C97D9....com.br... (...) Meaning we (...) It's not just a matter of knowing that a part is "wrong" and fixing it. The problem is primitives where either the inner faces or the (...) (25 years ago, 4-Apr-00, to lugnet.cad.dev)  
 
  Re: Some Words To BFC
 
(...) If the matrix for the box5 inside the part is inverted, wouldn't it work ? Leonardo (25 years ago, 4-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
Leonardo Zide <leonardo@centroin.com.br> wrote in message news:38E9FB24.AD5CD6....com.br... (...) The (...) in (...) winding is (...) side (...) That works for box5, but how about 1-4cyls? -John Van (25 years ago, 4-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) I also have taken a rest somewhere in discussion, due to lack of time. the simpler the better. (...) Well it seems that you (Leonardo, maybe someone else) didn't understand the difference between an invert matrix and the goal of the current "0 (...) (25 years ago, 4-Apr-00, to lugnet.cad.dev)  
 
  Re: Some Words To BFC
 
Reflecting on (my impressions of) what Steve, Mike, and Rui have been saying, it seems we have two possible directions to go. One direction, which Steve has developed, assumes we will have some files which are BFC compliant, and some which are not. (...) (25 years ago, 4-Apr-00, to lugnet.cad.dev) ! 
 
  Re: Some Words To BFC
 
(...) A second question: *should* parts be required to be BFC-compliant? There is a certain amount of extra work required to make parts work for BFC. Without a mostly-automated cleanup tool, does it make sense to put this burden on part authors? (...) (25 years ago, 4-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
Steve Bliss <blisses@worldnet.att.net> wrote in message news:7cjkescmg077t76...4ax.com... (...) into (...) IMHO, no. If a mostly automated cleanup tool can be devised, then a few of us could clean up new parts after they are voted in and before (...) (25 years ago, 4-Apr-00, to lugnet.cad.dev)  
 
  Re: Some Words To BFC
 
(...) This is common to both every approach I have seen, obviously ! (...) Nope! No imediate benefits, because with the parent dependence restrictions, you have to have an entire branch compliant to be able to do BFC, which includes the root,i.e. (...) (25 years ago, 5-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) Completly agree, but part authors should strive to (if possible) present the parts for voiting already BFC compliant. But it's NOT a requirement. This reasoning also favours the "non branch BFC dependence", even authors which don't supply BFC (...) (25 years ago, 5-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
In lugnet.cad.dev, Rui Manuel Silva Martins writes: <SNIP> (...) until (...) <SNIP> This is not true: Since the renderer has to assume a certain state for his models. The thing (at least in MLCad) works as follows: If BFC is on than the model is (...) (25 years ago, 5-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) I believe that it's possible to create a program that automatically fixes the orientation of a part. Take a look at this picture: (URL) The red faces are the back faces and the green faces are the front faces. The image on the left is the part (...) (25 years ago, 5-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) I'd like to have all parts compliant by making a second copy of the primitives that can't be inverted instead of using "0 INVERSE" commands. Leonardo (25 years ago, 5-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) I don't think they should. Parts authors are (probably) motivated by their interest for the LDraw format, so I would expect a few to handle the BFC-compliance of their parts. But to demand that everybody do this would probably exclude far to (...) (25 years ago, 5-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) Yes, the correct and safe assumption is CLIPPING DISABLED. (...) This is just a Hack, you assume that a model file is compliant, or by checking its pathname or because it's the root of the branches. But this doesn't even work very wheel, if (...) (25 years ago, 5-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
Rui Martins <Rui.Martins@link.pt> wrote in message news:Pine.GSU.4.10.1...0@is-sv... (...) saying, (...) subfiles (...) those (...) fixed. (...) restrictions, (...) it. (...) until (...) the (...) allows (...) a (...) apply), (...) user. (...) (...) (25 years ago, 5-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) but it seams to be damaged, but I was able to get the ideia. (...) Well this is exactly what I have been researching for a month now ! and believe me to be able to correct files 100% is almost impossible, due to the way the files are built. (...) (25 years ago, 5-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) it. (...) the (...) not (...) checking (...) which (...) (Lines, (...) OK, Slowly ... A model-file always is BFC complient until it gets included and you don't know anything about it. But the root model can do what it likes, it will effect (...) (25 years ago, 5-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) If you assume (which is correct for lego parts) that every *.dat file you use to define a part, belongs to a whole object (the part) which is a solid object (it should be) then you can say that any of those subfiles can have their faces (...) (25 years ago, 5-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
Leonardo Zide <leonardo@centroin.com.br> wrote in message news:38EB3EB8.D81D2C....com.br... (...) here, (...) Hey, this idea might work in conjuction with your program that fixes parts. If we had a parallel directory (/pi/?) with a copy of each (...) (25 years ago, 5-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) Perhaps this approach is a bit naive, but couldn't you use something similar to a point in polygon test? Cast a ray along the normal from the center of each polygon. If it intersects an odd number of surfaces then the normal points toward the (...) (25 years ago, 5-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) That's is the (Odd/Even) test, also with Raycasting, but no supersampling, in the supersampling case, you just subdivide the polys further and further, or shoot pseudo-random rays until you find the correct normals for all faces. this does NOT (...) (25 years ago, 5-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) This points out that ray traced renderings of the transparent version of these pieces will not render the refraction correctly. In the best of all worlds, the interior surface would be removed. For ray tracing, the model could be replaced with (...) (25 years ago, 5-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
I've got a little question. Why are you working so hard on BFC. The rendering in Ldraw, L3lab, MLcad,.... is already very fast. Is the speed improvement gained with BFC supposed to provide the extra time, so you can turn an model in realtime, with a (...) (25 years ago, 5-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
koen <koen.jordens@studen...ven.ac.be> wrote in message news:FsK5CI.BxG@lugnet.com... (...) time, (...) "Fast" is a relative term. For very large models, Datsville for example, it takes long enough to render that even a 30% increase in speed makes (...) (25 years ago, 5-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) BFC wont help ray tracers. Just because a surface isn't visible from the _current_ camera position, doesn't mean it doesnt cast a shadow or a reflection. Ray tracers need those backsides. -Chuck (25 years ago, 5-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) In other words, every face in a subfile will have other faces in the part-construction that will form the other side of the solid, right? That sounds correct. (...) There are only a couple of non-symmetrical primitives, but they are used (...) (25 years ago, 5-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
Chuck Sommerville <chucks@he.net> wrote in message news:FsK824.2vK@lugnet.com... (...) I was talking about rendering engines like LDLite, MLCad, L3Lab, etc. You are correct that BFC won't help ray tracing. The big thing that would help ray tracing (...) (25 years ago, 5-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
I need to digest this. I'll respond tomorrow. Steve (...) (25 years ago, 5-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
Steve Bliss <blisses@worldnet.att.net> wrote in message news:v96neskqugbi18b...4ax.com... (...) use to (...) object (it (...) faces (...) choose (...) in some (...) required to (...) the (...) You make a very good point here, Steve (especially (...) (25 years ago, 5-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
Steve Bliss <blisses@worldnet.att.net> wrote in message news:4qbnescr7hii5bq...4ax.com... (...) I hope it doesn't cause indigestion :-) -John Van (25 years ago, 5-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) Good point. We definitely *should* muddy this discussion up with some real facts. ;) (...) Yes and no. Something that's easy to do is definitely less of a 'requirement' than something that's a lot of work. But it's still a requirement, placed (...) (25 years ago, 6-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) That's not always possible, as has been discussed. And is still being discussed... (...) Yeah, that's a possibility. (...) OK, but that's a complication for the rendering engine. It would have to check the actual path of each file, after the (...) (25 years ago, 6-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) What would you suggest simplifying or removing? (...) How do you mean? What is a 'bad definition' in a matrix? Having a negative determinant? And what do you have to do to correct it? My understanding was that the rendering program could (...) (25 years ago, 6-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
OK. I've thought about most of John's posting, and I think I'm ready to make an intelligible response. Just to be sure I caught everything, here's a (hopefully quick) re-iteration. The major differences between John's proposal and the proposal I (...) (25 years ago, 6-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) the (...) therefor (...) I would suggest to make the meta-commands for the renderer as simple as possible and move all other corrections to external programs or functions. I believe that what we have of BFC in MLCad for example is good enough (...) (25 years ago, 6-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) If you use a 3D card then the speed increase from BFC becomes negligible, I've tried to activate BFC on LeoCAD and it didn't show a big difference with the current library. Keep in mind that the current cards (except the newer GeForce) have a (...) (25 years ago, 6-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) I agree that an automatic process might not always work 100% but it can make parts almost perfect and with only a small effort you'll be able to completely fix them. (...) I think I'm using what you call odd/even, I cast a ray from the center (...) (25 years ago, 6-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) That would be the fastest option for rendering. (...) If anyone wants to take a look and help, I can send the source to what I have done so far (it needs VC++ 5.0). I have started working and I won't have much time to improve it. (...) I still (...) (25 years ago, 6-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) I can't speak for the other programs but if you allow a part to have CCW and CW faces in any OpenGL program, it's going to be slower (but as LeoCAD's library is pre-processed than it won't be a problem). If you have some parts BFC compliant (...) (25 years ago, 6-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) When it finds that any face of a primitive needs to be inverted. We would have to fix the current primitives so that all faces are pointing to the same direction. Take a look at the sphere primitive for example, it has faces pointing inside (...) (25 years ago, 6-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) When do you actually stop, when you find the correct orientation ? or after a few fixed iterations ? Eventually you could end up with an infinite loop if you are not carefull. That method does NOT really garantees any correct results due to (...) (25 years ago, 6-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) Would it help to get primitive files cleaned up, and then make use of what is known of the faces in the primitive to decide the orientation of faces in the part? What I mean is, if you follow a ray from the center of a face, and the (...) (25 years ago, 6-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) The primitives should be the first thing fixed, in any case. :) I think it would be safe for the cleanup program to assume that primitives are BFC-ready. Which could be a help for automatic cleanup of part files. (...) Some technical points: (...) (25 years ago, 6-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) As someone pointed out once, it's not a big deal to get all windings the same before passing the data to OpenGL. Just swap the order of the points. For quads, switch points 2 and 4. For triangles, switch points 2 and 3. This could/should be (...) (25 years ago, 6-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
Steve Bliss <blisses@worldnet.att.net> wrote in message news:i86oessafp98dp6...4ax.com... (...) These are both very good criticisms of my proposal--so I'll just modify my proposal :) If we fix all the official parts, then the renderer doesn't (...) (25 years ago, 6-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
Steve Bliss <blisses@worldnet.att.net> wrote in message news:a5mpess6nipq4bp...4ax.com... snip (...) Me too. -John Van (25 years ago, 6-Apr-00, to lugnet.cad.dev)
 
  BFC checking program (was Re: Some Words To BFC)
 
(...) I'm assuming that you're calling "BFC-ready" primitives that have all faces in the same direction. Primitives are not closed volumes so you'll always be able to see the backfaces. (...) I agree technically it doesn't make much difference, I (...) (25 years ago, 7-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC  [DAT]
 
(...) I don't mind that because I preprocess the files anyway and anyone who wants to get a good speed increase should do the same. But it's not a good idea to turn on/off BFC several times and in some cases, it's nicer to have the faces reversed. (...) (25 years ago, 7-Apr-00, to lugnet.cad.dev)
 
  Re: BFC checking program (was Re: Some Words To BFC)
 
I seem to be missing a required .dll file: MFC42D.DLL. Can you send this, or can I find it somewhere else? -John Van (...) (25 years ago, 7-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
On Fri, 7 Apr 2000, Leonardo Zide wrote: [...SNIP...] (...) Actually I think you missunderstood something (or maybe I did), but the 0 INVERSE meta command is to be used ONLY with file references, that is: 0 INVERSE 1 16 x y z a b c d e f g h i (...) (25 years ago, 7-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) OK, here's a counter-proposal: don't require all parts/primitives to be BFC'able, and allow both BFC-ready and BFC-not-ready files in the same rendering. This reintroduces the concept of having a single meta-statement at the start of each (...) (25 years ago, 7-Apr-00, to lugnet.cad.dev)
 
  Re: BFC checking program (was Re: Some Words To BFC)
 
(...) Umm, it's a little more than that, but facing the faces is a very important part. Basically, I meant: 1. All polygons wound correctly 2. All subfile references clean Good point about primitives not being solid. I don't think a renderer (...) (25 years ago, 7-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC  [DAT]
 
Steve Bliss <blisses@worldnet.att.net> wrote in message news:dq3sesgb6vsh8kd...4ax.com... (...) flips (...) than (...) with (...) for (...) in (...) This makes a lot of sense to me. You are right, checking one flag per part file should not take too (...) (25 years ago, 10-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) Ooo, I like it. We'd flag which files are always "right-side-out" and which ones might be mis-inverted by legacy part-files. That doesn't break the reference-chain dependency entirely, but it does allow us to specify where it must apply, (...) (25 years ago, 11-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
Steve Bliss wrote (...) It's quite long to correct done parts, but it's easy to make them BFC compliant when creating them. I work with l3lab, with test6 option always on. Try it, it's easy. Damien. (25 years ago, 15-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
Steve Bliss wrote on April 6th... (...) The program should refuse to certify a part if not all subfiles are certified. (...) Agreed! We should not put any constraints on the authors. They may scale/rotate/mirror primitives as they wish (not (...) (25 years ago, 19-Apr-00, to lugnet.cad.dev)
 
  Re: Some Words To BFC
 
(...) OK, that sounds reasonable -- it's something that a clean-up program could look for, even though it's not practical for a rendering program to do the same. Steve (25 years ago, 19-Apr-00, to lugnet.cad.dev)

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR