Re: [Plib-users] R: R: culling problems w/ off-axis projection
Brought to you by:
sjbaker
From: John F. F. <joh...@cy...> - 2010-05-31 12:35:54
|
Gentlemen, I have just put the below-mentioned patch into PLIB. It uses the functions "_isnan" and "_isfinite" which are just fine on my Windows/MSVC platform. Please check it out on other platforms and let me know of any problems. - John At 09:40 AM 4/21/2010, you wrote: >John, > >Please find attached the patch. > >This patch also include a fix to the function sgQuatToAxisAngle which >manages cases of Quat's W outside the range [-1:1] (acos undefined). For >this I used _isnan and _finite functions in MS Visual C++, whose >availability I ask all of you to verify on other Plib-supported platforms. >Otherwise just ignore this second part of the patch. > >Thanks a lot, > >Paolo Leoncini > > > > -----Messaggio originale----- > > Da: Fay, John F Dr CTR USAF AFMC 46 SK > > [mailto:joh...@eg...] > > Inviato: sabato 17 aprile 2010 18.33 > > A: PLIB Users > > Oggetto: Re: [Plib-users] R: culling problems w/ off-axis projection > > > > Paolo, > > > > Congratulations and very good on having solved the > > problem. Is there a code change that you want me to put into > > Subversion? > > > > Dr. John F. Fay > > Technical Fellow > > Jacobs Technology TEAS Group > > 850-883-1294 > > > > > > -----Original Message----- > > From: Paolo Leoncini [mailto:p.l...@ci...] > > Sent: Monday, April 12, 2010 3:21 AM > > To: 'PLIB Users' > > Subject: [Plib-users] R: culling problems w/ off-axis projection > > > > Dear friends, > > > > I think to have solved the problem. > > > > > -----Messaggio originale----- > > > Da: p.l...@ci... [mailto:p.l...@ci...] > > > Inviato: martedì 6 aprile 2010 11.19 > > > A: pli...@li... > > > Oggetto: [Plib-users] culling problems w/ off-axis projection > > > > > > Dear all, > > > > > > I'm doing off-axis projection (the most general form of > > > projection) by translating the four corners of the screen into a > > > projection matrix, for which I added a new method to the sgFrustum > > > class and to the Context too. The only difference with > > giving the six > > > frustum extrema values is that no calculation occurs. > > Culling seems to > > > rely only on the projection matrix values, so, apparently, no > > > difference w/ the on-axis standard case. > > > > > > As far as the projection is not far from the on-axis case > > the culling > > > gives no problem. Instead when screen position definition > > results in a > > > large rotation in the projection matrix objects suddenly > > disappear and > > > reappear by apparently no rule. > > > > > > Are culling calculations based on a particular form of the > > projection > > > matrix? > > > should culling planes be extracted in a different way to > > support the > > > more general case? > > > > In sgFrustum::contains( const sgSphere *s ) (sg.cxx), the for > > the non-ortho case which is presently done this way: > > > > sp1 = plane[ SG_LEFT_PLANE ][0] * center[0] + plane[ > > SG_LEFT_PLANE ][2] * center[2] ; > > sp2 = plane[ SG_RIGHT_PLANE ][0] * center[0] + plane[ > > SG_RIGHT_PLANE ][2] * center[2] ; > > sp3 = plane[ SG_BOT_PLANE ][1] * center[1] + plane[ SG_BOT_PLANE > > ][2] * center[2] ; > > sp4 = plane[ SG_TOP_PLANE ][1] * center[1] + plane[ SG_TOP_PLANE > > ][2] * center[2] ; > > > > should be substituted by the following general form: > > > > sp1 = sgScalarProductVec3 ( plane[ SG_LEFT_PLANE ], > > center ) + plane[ SG_LEFT_PLANE ][3] ; > > sp2 = sgScalarProductVec3 ( plane[ SG_RIGHT_PLANE ], > > center ) + plane[ SG_RIGHT_PLANE ][3] ; > > sp3 = sgScalarProductVec3 ( plane[ SG_BOT_PLANE ], > > center ) + plane[ > > SG_BOT_PLANE ][3] ; > > sp4 = sgScalarProductVec3 ( plane[ SG_TOP_PLANE ], > > center ) + plane[ > > SG_TOP_PLANE ][3] ; > > > > The hint were just below there (see comment "Note: in the > > general case, we would have to do:"). > > I propose to patch it since this general form also manages > > the default on-axis case, but Steve should definitely give > > the go-ahead. > > Should someone be concerned about performances I could supply > > a bit larger patch for introducing the ability to supply the > > Context a general perspective matrix, so to have the general > > case only calculated in this eventuality. > > > > > Thanks a lot, > > > > > > Paolo Leoncini > > > > Thanks in advance to a good will updater (John, it's you as usual?). > > > > Paolo Leoncini > > > > > > > -------------------------------------------------------------- > > > ---------------- > > > Download Intel® Parallel Studio Eval Try the new > > software tools > > > for yourself. Speed compiling, find bugs proactively, and fine-tune > > > applications for parallel performance. > > > See why Intel Parallel Studio got high marks during beta. > > > http://p.sf.net/sfu/intel-sw-dev > > > _______________________________________________ > > > plib-users mailing list > > > pli...@li... > > > https://lists.sourceforge.net/lists/listinfo/plib-users > > > > > > > > > -------------------------------------------------------------- > > ---------------- > > Download Intel® Parallel Studio Eval Try the new > > software tools for yourself. Speed compiling, find bugs > > proactively, and fine-tune applications for parallel performance. > > See why Intel Parallel Studio got high marks during beta. > > http://p.sf.net/sfu/intel-sw-dev > > _______________________________________________ > > plib-users mailing list > > pli...@li... > > https://lists.sourceforge.net/lists/listinfo/plib-users > > > > -------------------------------------------------------------- > > ---------------- > > Download Intel® Parallel Studio Eval Try the new > > software tools for yourself. Speed compiling, find bugs > > proactively, and fine-tune applications for parallel performance. > > See why Intel Parallel Studio got high marks during beta. > > http://p.sf.net/sfu/intel-sw-dev > > _______________________________________________ > > plib-users mailing list > > pli...@li... > > https://lists.sourceforge.net/lists/listinfo/plib-users > > > > >------------------------------------------------------------------------------ > >_______________________________________________ >plib-users mailing list >pli...@li... >https://lists.sourceforge.net/lists/listinfo/plib-users |