To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.cadOpen lugnet.cad in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 CAD / 15819
    Colinear Vertices —Philippe Hurbain
   I am struggling to improve Intersector that sometimes creates quads with _almost_ colinear vertices. An obvious solution is to split quads into two triangles, but this increase size of generated file. Converted the quad into a single triangle by (...) (16 years ago, 9-Dec-08, to lugnet.cad)
   
        Re: Colinear Vertices —Michael Heidemann
   (...) As far as I can see the threshold is the number of digits that are used to determine wheather a value is the same as the other. So if you use 6.0 and 6.0001 with a threshold of 0.0001 the value are interpreted to be the same. That makes sense (...) (16 years ago, 9-Dec-08, to lugnet.cad)
   
        Re: Colinear Vertices —Travis Cobbs
     (...) If they're on a curved surface, you'll get higher quality out of LDView half the time if you split them into triangles. (I say half the time, because OpenGL splits them into triangles in order to render them, and half the time they'll be split (...) (16 years ago, 9-Dec-08, to lugnet.cad)
    
         Re: Colinear Vertices —Timothy Gould
      --snip-- (...) I assume that you divide by the vector lengths first (as in normalise them before taking the cross-product) but if you don't then you should. Tim (16 years ago, 9-Dec-08, to lugnet.cad)
     
          Re: Colinear Vertices —Travis Cobbs
      (...) No, I just take the cross product, and if the length (squared) is 0, I give an error. I don't see how normalizing the length of the two vectors that I feed into the cross product would improve things much here. Sure, it might mean that my (...) (16 years ago, 9-Dec-08, to lugnet.cad)
     
          Re: Colinear Vertices —Timothy Gould
      (...) It depends on what your threshold is but taking the difference (as you do in a cross product) of two big numbers is less accurate (very much so sometimes) than taking the difference of two smaller numbers. Even without this issue it means that (...) (16 years ago, 9-Dec-08, to lugnet.cad)
    
         Re: Colinear Vertices —Philippe Hurbain
     (...) Thanks, Travis. BTW, are there guidelines for part authors that would improve smooth shading? What about precision in coincidence between conditional lines and matching polygon sides? I have seen _many_ instances where a quad should blend into (...) (16 years ago, 11-Dec-08, to lugnet.cad)
    
         Re: Colinear Vertices —Travis Cobbs
     (...) Not that I know of. I'll think about adding a page to the LDView web site. (I don't think it's really appropriate to add it to ldraw.org, since it's LDView-specific.) (...) The precision is 0.0001. I multiply the coordinate by 10000 and then (...) (16 years ago, 11-Dec-08, to lugnet.cad)
    
         Re: Colinear Vertices —Philippe Hurbain
     (...) It makes sense! (...) An example, this button: (URL) I rounded condlines to 2 decimal places since I couldn't get smoothing anyway. I did more experiments, with full precision in condline it works: (URL) but after rounding to 3 dp there is no (...) (16 years ago, 12-Dec-08, to lugnet.cad)
    
         Re: Colinear Vertices —Travis Cobbs
      (...) I played with the settings, and I had to set the precision all the way down to 0.133 in order to get it to fully smooth. (0.125 failed to smooth properly.) (...) .005. I think I'll set the precision to .01, to hopefully give it some leeway. I (...) (16 years ago, 12-Dec-08, to lugnet.cad)
     
          Conditional Ring primitive? —Travis Cobbs
       (...) I just noticed something else while investigating a fix for the above problem. The above model could really use a circular conditional edge primitive. I would vote for x-ycedge.dat as the filename (ie 1-4cedge.dat, 4-4cedge.dat, (...) (16 years ago, 12-Dec-08, to lugnet.cad)
      
           Re: Conditional Ring primitive? —Philippe Hurbain
       (...) That's a primitive I have been longing for... but I realized it is impossible to build: where would you put the control lines? The top control points would need to be scaled differently from bottom ones to match various cylinders/cones (...) (16 years ago, 12-Dec-08, to lugnet.cad)
      
           Re: Conditional Ring primitive? —Philippe Hurbain
       (...) Mmhhh... maybe by setting 2 conditional rings on the junction. Each condring would be set between a cylinder and a cone. Scaling the ring would adapt to various cone slopes. Of course 2 rings would be needed, one for converging cones, one for (...) (16 years ago, 12-Dec-08, to lugnet.cad)
      
           Re: Conditional Ring primitive? —Travis Cobbs
       (...) It sounds like it would work, but I'm not sure if people would go for it. Of course, if the POTM competitions are anything to go by, you're making a majority of the complicated parts right now, so if you go with it, that's probably all we need (...) (16 years ago, 12-Dec-08, to lugnet.cad)
      
           Re: Conditional Ring primitive? —Travis Cobbs
        (...) My comment about needing twice the geometry for the edge was based on a misunderstanding of what you wrote. Based on what I now assume you meant, two wouldn't be required for each joint. However, your solution would only work if the cones on (...) (16 years ago, 12-Dec-08, to lugnet.cad)
      
           Re: Conditional Ring primitive? —Philippe Hurbain
       I made a quick try - and it doesn't work very well, even when it should (between a cylinder and a cone). Example: (URL) (cedge primitive is here included). Cedge seems to behave correctly on the more sloped cone, but not on the other, it appears (...) (16 years ago, 13-Dec-08, to lugnet.cad)
      
           Re: Conditional Ring primitive? —Travis Cobbs
       (...) Looks like you found another LDView bug ;-). Zoom out and it works fine. It only doesn't work when the control points are clipped by the edge of the window. I'll have to figure out a way to fix that. (...) It's difficult, but by using polling (...) (16 years ago, 13-Dec-08, to lugnet.cad)
      
           Re: Conditional Ring primitive? —Philippe Hurbain
        (...) OK, I'll go on evaluating cedge interest when you have fixed this issue. (...) Could be workable indeed. Philo (16 years ago, 13-Dec-08, to lugnet.cad)
      
           3D matrix math question —Travis Cobbs
       (...) I think I need help. I thought I was using gluProject for the conditional calculations, but discovered that I'm not. I multiple the projection matrix by the model-view matrix to get my transformation matrix, then run the points through that to (...) (16 years ago, 14-Dec-08, to lugnet.cad.dev, FTX)
      
           Re: 3D matrix math question —Timothy Gould
        (...) If I understand correctly you shouldn't be checking on the projection, only on the full 3D transformed points. That means you should check after stage 2.5. You'll need the Z value to work out which side things lie on. Tim (16 years ago, 14-Dec-08, to lugnet.cad.dev, FTX)
       
            Re: 3D matrix math question —Travis Cobbs
        (...) Actually, the projected points are all that I am checking, and that's how it's supposed to work. (...) No. The way that conditional lines work is that if the two control points lie on the same side of the conditional line on the screen (in (...) (16 years ago, 14-Dec-08, to lugnet.cad.dev, FTX)
       
            Re: 3D matrix math question —Timothy Gould
         (...) Hmmm... Though I can't quite pin it down I have a suspicion that this has something to do with the spatial reduction cause by projection. What projection matrix are you using? Would a simple solution just be to move the conditional points (...) (16 years ago, 14-Dec-08, to lugnet.cad.dev, FTX)
        
             Re: 3D matrix math question —Timothy Gould
         (...) OK... I think I understand what I was getting at here. When you introduce perspective then the distance of the conditional point from the line becomes important. Eg. if you have a point that is directly behind its line in a perspective free (...) (16 years ago, 14-Dec-08, to lugnet.cad.dev, FTX)
        
             Re: 3D matrix math question —Travis Cobbs
         (...) I think you're right. I'll look into that. It seems like the most straightforward, and since it's just a pre-processing step, it shouldn't affect the performance for anything other than model loading. --Travis (16 years ago, 14-Dec-08, to lugnet.cad.dev, FTX)
        
             Re: 3D matrix math question —Travis Cobbs
         (...) OK, I applied this fix (pulling the control points to be 1 LDU from the first point of the conditional line), and it seems to work. It makes the "Show control points" option under conditional lines less useful, but that's a price I'm willing (...) (16 years ago, 14-Dec-08, to lugnet.cad.dev, FTX)
        
             Re: 3D matrix math question —Timothy Gould
         (...) Fixing this one group of rarely important special cases in an efficient manner is probably not the most valuable use of your time. You could always offer 'condition point compression' as a user-selectable option. Tim (16 years ago, 16-Dec-08, to lugnet.cad.dev, FTX)
        
             Re: 3D matrix math question —Travis Cobbs
         (...) This is true, and I actually try to work this way, but if you look up the thread to ((URL) here>), you'll see that this bug led to a problem that would be visible in real-world parts if the suggested conditional edge primitive is created. And (...) (16 years ago, 16-Dec-08, to lugnet.cad.dev, FTX)
        
             Re: 3D matrix math question —Philippe Hurbain
         (...) Actually the switch turning off condline controls scaling could be a sub-option of "Show control points" and be active only in this case. BTW, could it be possible to show control lines in another color to distinguish them from conditional (...) (16 years ago, 16-Dec-08, to lugnet.cad.dev, FTX)
        
             Re: 3D matrix math question —Travis Cobbs
         (...) Maybe I'll just automatically disable the scaling when "Show control points" is turned on. I'll definitely disable the scaling when "Show all" is turned on. (...) Having the control lines be a different color won't necessarily help when they (...) (16 years ago, 16-Dec-08, to lugnet.cad.dev, FTX)
       
            Re: 3D matrix math question —Anders Isaksson
        (...) Is there some 'easy' way to determine if the control points are in or out of frustum? Is there any other way to transform points, without considering the frustum (Well, obviously there is at least one, but it's the long way of calculating the (...) (16 years ago, 14-Dec-08, to lugnet.cad.dev)
       
            Re: 3D matrix math question —Travis Cobbs
        (...) Well, I know where the camera is, and I can create vectors from the camera to both end-points of the conditional line, and to both control points. I'm pretty sure that the calculation could be done with just this information. However, I'm not (...) (16 years ago, 14-Dec-08, to lugnet.cad.dev)
      
           Re: 3D matrix math question —Michael Heidemann
       (...) I am not the best in 3D, but if something outside the view frustum, you do not need to draw that. If you have the special case that only parts of what you should draw are outside the view frustum, I would go to calculate that values for a (...) (16 years ago, 14-Dec-08, to lugnet.cad.dev, FTX)
      
           Re: 3D matrix math question —Travis Cobbs
       (...) In the case that exhibits the bug, the control points are outside the frustum, but the conditional line itself isn't. So I still need to decide whether or not to draw the conditional line. In this case, it was being drawn at times that it (...) (16 years ago, 14-Dec-08, to lugnet.cad.dev, FTX)
     
          Re: Colinear Vertices —Philippe Hurbain
      (...) I'll need to keep 3 dp in this case. But since it didn't smooth anyway I had no incentive to enlarge the file... (...) OK, we'll see if there is downsides to this. Maybe for very small details? Have a look at some fine mesh parts such as (URL) (...) (16 years ago, 13-Dec-08, to lugnet.cad)
     
          Re: Colinear Vertices —Travis Cobbs
      (...) Hopefully you have primitive substitution set to two (second notch), since 1 provides 8-sided circular primitives. As for separating the stud logo from the primitive substitution, the logo is an implicit part of the substituted stud. It's not (...) (16 years ago, 13-Dec-08, to lugnet.cad)
     
          Re: Colinear Vertices —Philippe Hurbain
      (...) Of course I start counts from zero ;o) (...) OK! My setup seems to work anyway... Philo (16 years ago, 13-Dec-08, to lugnet.cad)
    
         Re: Colinear Vertices —Travis Cobbs
     (...) triangle has had its surface normal pulled down. So the triangle isn't co-planar with the quad as far as the lighting is concerned. With curve smoothing, all polygons who share a smoothed vertex use a common surface normal for that vertex. But (...) (16 years ago, 13-Dec-08, to lugnet.cad)
    
         Re: Colinear Vertices —Philippe Hurbain
     (...) Something to try. If it works it would help for several shading issues I have seen. See for example around peghole going through curved surface of (URL) Could you send me the LDraw file used to generate 61069s01a1.png? I'll see how (...) You (...) (16 years ago, 13-Dec-08, to lugnet.cad)
   
        Re: Colinear Vertices —Philippe Hurbain
   (...) I looked at LDDP sources (very clear BTW!). Threshold is compared against square of cross product of each angle of quad. So it depends of size of quad to 4th power! Not very good imho, but since it works for such a long time I used the same (...) (16 years ago, 11-Dec-08, to lugnet.cad)
 

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