| | Re: Conditional Ring primitive? [DAT]
|
|
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?
|
|
(...) 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?
|
|
(...) 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
|
|
(...) 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
|
|
(...) 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
|
|
(...) 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
|
|
(...) 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
|
|
(...) 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
|
|
(...) 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
|
|
(...) 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
|
|
(...) 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
|
|
(...) 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: 3D matrix math question
|
|
(...) 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
|
|
(...) 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
|
|
(...) 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
|
|
(...) 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
|
|
(...) 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
|
|
(...) 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)
|