You can subscribe to this list here.
2000 
_{Jan}

_{Feb}

_{Mar}

_{Apr}

_{May}

_{Jun}

_{Jul}
(390) 
_{Aug}
(767) 
_{Sep}
(940) 
_{Oct}
(964) 
_{Nov}
(819) 
_{Dec}
(762) 

2001 
_{Jan}
(680) 
_{Feb}
(1075) 
_{Mar}
(954) 
_{Apr}
(595) 
_{May}
(725) 
_{Jun}
(868) 
_{Jul}
(678) 
_{Aug}
(785) 
_{Sep}
(410) 
_{Oct}
(395) 
_{Nov}
(374) 
_{Dec}
(419) 
2002 
_{Jan}
(699) 
_{Feb}
(501) 
_{Mar}
(311) 
_{Apr}
(334) 
_{May}
(501) 
_{Jun}
(507) 
_{Jul}
(441) 
_{Aug}
(395) 
_{Sep}
(540) 
_{Oct}
(416) 
_{Nov}
(369) 
_{Dec}
(373) 
2003 
_{Jan}
(514) 
_{Feb}
(488) 
_{Mar}
(396) 
_{Apr}
(624) 
_{May}
(590) 
_{Jun}
(562) 
_{Jul}
(546) 
_{Aug}
(463) 
_{Sep}
(389) 
_{Oct}
(399) 
_{Nov}
(333) 
_{Dec}
(449) 
2004 
_{Jan}
(317) 
_{Feb}
(395) 
_{Mar}
(136) 
_{Apr}
(338) 
_{May}
(488) 
_{Jun}
(306) 
_{Jul}
(266) 
_{Aug}
(424) 
_{Sep}
(502) 
_{Oct}
(170) 
_{Nov}
(170) 
_{Dec}
(134) 
2005 
_{Jan}
(249) 
_{Feb}
(109) 
_{Mar}
(119) 
_{Apr}
(282) 
_{May}
(82) 
_{Jun}
(113) 
_{Jul}
(56) 
_{Aug}
(160) 
_{Sep}
(89) 
_{Oct}
(98) 
_{Nov}
(237) 
_{Dec}
(297) 
2006 
_{Jan}
(151) 
_{Feb}
(250) 
_{Mar}
(222) 
_{Apr}
(147) 
_{May}
(266) 
_{Jun}
(313) 
_{Jul}
(367) 
_{Aug}
(135) 
_{Sep}
(108) 
_{Oct}
(110) 
_{Nov}
(220) 
_{Dec}
(47) 
2007 
_{Jan}
(133) 
_{Feb}
(144) 
_{Mar}
(247) 
_{Apr}
(191) 
_{May}
(191) 
_{Jun}
(171) 
_{Jul}
(160) 
_{Aug}
(51) 
_{Sep}
(125) 
_{Oct}
(115) 
_{Nov}
(78) 
_{Dec}
(67) 
2008 
_{Jan}
(165) 
_{Feb}
(37) 
_{Mar}
(130) 
_{Apr}
(111) 
_{May}
(91) 
_{Jun}
(142) 
_{Jul}
(54) 
_{Aug}
(104) 
_{Sep}
(89) 
_{Oct}
(87) 
_{Nov}
(44) 
_{Dec}
(54) 
2009 
_{Jan}
(283) 
_{Feb}
(113) 
_{Mar}
(154) 
_{Apr}
(395) 
_{May}
(62) 
_{Jun}
(48) 
_{Jul}
(52) 
_{Aug}
(54) 
_{Sep}
(131) 
_{Oct}
(29) 
_{Nov}
(32) 
_{Dec}
(37) 
2010 
_{Jan}
(34) 
_{Feb}
(36) 
_{Mar}
(40) 
_{Apr}
(23) 
_{May}
(38) 
_{Jun}
(34) 
_{Jul}
(36) 
_{Aug}
(27) 
_{Sep}
(9) 
_{Oct}
(18) 
_{Nov}
(25) 
_{Dec}

2011 
_{Jan}
(1) 
_{Feb}
(14) 
_{Mar}
(1) 
_{Apr}
(5) 
_{May}
(1) 
_{Jun}

_{Jul}

_{Aug}
(37) 
_{Sep}
(6) 
_{Oct}
(2) 
_{Nov}

_{Dec}

2012 
_{Jan}

_{Feb}
(7) 
_{Mar}

_{Apr}
(4) 
_{May}

_{Jun}
(3) 
_{Jul}

_{Aug}

_{Sep}
(1) 
_{Oct}

_{Nov}

_{Dec}
(10) 
2013 
_{Jan}

_{Feb}
(1) 
_{Mar}
(7) 
_{Apr}
(2) 
_{May}

_{Jun}

_{Jul}
(9) 
_{Aug}

_{Sep}

_{Oct}

_{Nov}

_{Dec}

2014 
_{Jan}
(14) 
_{Feb}

_{Mar}
(2) 
_{Apr}

_{May}
(10) 
_{Jun}

_{Jul}

_{Aug}

_{Sep}

_{Oct}

_{Nov}
(3) 
_{Dec}

2015 
_{Jan}

_{Feb}

_{Mar}

_{Apr}

_{May}

_{Jun}

_{Jul}

_{Aug}

_{Sep}

_{Oct}
(12) 
_{Nov}

_{Dec}
(1) 
2016 
_{Jan}

_{Feb}
(1) 
_{Mar}
(1) 
_{Apr}
(1) 
_{May}

_{Jun}
(1) 
_{Jul}

_{Aug}
(1) 
_{Sep}

_{Oct}

_{Nov}

_{Dec}

2017 
_{Jan}

_{Feb}

_{Mar}

_{Apr}

_{May}

_{Jun}

_{Jul}
(1) 
_{Aug}

_{Sep}

_{Oct}

_{Nov}

_{Dec}

S  M  T  W  T  F  S 


1
(5) 
2
(6) 
3
(15) 
4
(20) 
5
(18) 
6
(4) 
7
(3) 
8
(14) 
9
(21) 
10
(24) 
11
(5) 
12
(12) 
13
(7) 
14

15
(6) 
16
(13) 
17
(1) 
18
(6) 
19
(8) 
20
(6) 
21
(1) 
22
(6) 
23
(11) 
24
(21) 
25
(8) 
26
(15) 
27
(25) 
28
(8) 
29
(19) 
30
(26) 




From: Sam McGrath <sammy@dn...>  20020428 10:12:38

I find it's generally a smart idea to separate these out. I would keep two separate structures for your collision and your visual geometry, and do whatever you need to do with the copy to make it suitable for your collision system. Our engine uses convex surfaces only for collision, and these are represented as a series of planes rather than vertex/face data. As far as the engine is concerned, these are two distinct and separate structures, not dependent on each other in any way. Sam p.s. S2 Games is current looking for another programmer to work on Savage. If you're interested, please send your info directly to me at sammy@... (I'll be more likely to read it than if you send to jobs@...). The full job listing is on Gamasutra: http://www.gamasutra.com/phpbin/jobs_display.php3?job_id=1012 Original Message From: gdalgorithmslistadmin@... [mailto:gdalgorithmslistadmin@...] On Behalf Of Duncan Hewat Sent: Wednesday, April 24, 2002 4:26 PM To: gdalgorithmslist@... Subject: [Algorithms] Collision and Visual triangle data structures For collision detection it's helpful to have a triangle mesh that does not have duplicate vertices and has adjacency information (Also useful for computing silhouette edges for shadows). But for visual rendering purposes we can quite often have duplicate vertices (As in terms of one or more vertices can occupy the same position in space but have different mapping coords or normals etc..). Of course the vertices can be animated as well to make things even more awkward (As well as stripping and material groups). My question is what kind of data structures are people currently using for these? (I'm talking high poly meshes btw) are they keeping two copies of vertex positional data? or sharing? Thanks, Duncan. _________________________________________________________________ Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp. _______________________________________________ GDAlgorithmslist mailing list GDAlgorithmslist@... https://lists.sourceforge.net/lists/listinfo/gdalgorithmslist Archives: http://sourceforge.net/mailarchive/forum.php?forum_id=6188 
From: Thatcher Ulrich <tu@tu...>  20020428 00:48:45

On Apr 27, 2002 at 12:57 0700, Ron Levine wrote: > > On Sat, 27 Apr 2002 15:22:55 0300, "Christian Lykawka" > <chris@...> wrote: > > > Thanks for clarifying me about the answer i'm looking for, Ron. > > > > I have a lefthanded cartesian axes, where "y" means height, > > "z" goes forward and "x" grows to right, as follows... > > > > y z > >  / > >  /___x > > > > I'd like to describe a vector in this space, as a pair of angles. > > > > One describes the angle this vector is in the plane XoZ > > (that I called yaw, and you, azimuth). The second angle > > describes the altitude of the vector, that I called pitch. > > > > In the program I'm writting, the north direction is in the > > same direction the "z" axis is, so, the XoZ angle zero degrees > > would be the vector (0, 0, 1) and ninety degrees would be > > (1, 0, 0), which means west. > > > > I'm looking for two functions, one to convert from vector > > to the pair of angles; and other to build the vector from > > the angles. > > This verifies that Daniel Vogel's interpretation of the question was > presumptuous and so his response was incorrecta possibility that I > pointed out in a post made a few minutes ago before reading this > message. > > The correct answer to the clarified question thus is > > altitude = tan(y/sqrt(x^2+z^2) > azimuth = atan2(z,x) I think you meant "altitude = atan(...". > and the "vice versa" answer is > > x = cos(altitude)sin(azimuth) > y = sin(altitude) > z = cos(altitude)cos(azimuth) In the spirit of being properly nitpicky, this has a mistake: you're missing a scale factor for the length of the vector. (Same problem you correctly pointed out w/ my previous comment: altitude = asin(y) only works for unit vectors.) If you do compute length, then you can do "altitude = asin(y/length)" I suspect everyone who cares can figure all this out by now, dunno why I'm perpetuating the thread...  Thatcher Ulrich <tu@...> http://tulrich.com 
From: Jason Allen <jra101@ya...>  20020428 00:27:01

Emailing this on behalf of Tim C. Schr=F6der who is having trouble = getting email to the list. "Hello, I tried to come up with a binary intersection test for cylinders. The cylinder is defined by the center of it's base circle (m_vPos), the axis of mirror (m_vAxis) and it's height (hardcoded 999.0f here). Since I use this test for shadow calculations in a ray tracer, I want to calculate the intersection of a line segment. I try to find the=20 intersection by calculating the distance between the axis line of the=20 cylinder and the intersecting line. I use the cross to find the plane which lays on the one line and is parallel to the other. Then I use a dp to project the distance between two points on the the two lines on the normal of the plane. This gives me a distance I can compare to the cylinder's radius. Unfortunately this is not completely working. I see the correct shadow for the cylinder, but this shadow expands also to the light and = continues mirrored from that position on. Looks like two shadow cones with the light as mirror axis. No idea ;( Here's the code, please take a look: bool CCylinder::DoesBlock(const Vector3D& vStart,=20 const Vector3D& vEnd,=20 const Vector3D& vDir) const { Vector3D A =3D vStart; Vector3D B =3D vEnd; Vector3D C =3D m_vPos; Vector3D D =3D m_vPos + (m_vAxis * 999.0f); Vector3D vNormal =3D (B  A) ^ (C  D); vNormal.Normalize(); float fDist =3D fabs(vNormal * (D  A)); if (fDist <=3D m_fRadius) return true; return false; } Thanks for your time, Tim" 
From: Daniel Vogel <vogel@ep...>  20020427 23:21:22

> And, I should add, a disservice to all the other readers of the > response, not to mention a disservice to the general cause of clarity > of discussion on the forum. I deeply apologize for being presumptous, wrong and a disservice to the general cause of clarity of discussion on the forum.  Daniel, Epic Games Inc. 
From: Ron Levine <ron@do...>  20020427 21:41:37

mark_me wrote: >Right , The terms Pitch, Yaw , and Roll are used to describe incremental >changes of orientation around body space axes. Right, right. See http://www.dorianresearch.com/orientation.htm for elaboration > But they are widely and >incorrectly used to describe heading and altitude ( in geometrical language >, Heading is the angle between the projection of the vector over the world >space XY plane and the world space XAxis , and Altitude is the angle >between that same projection and the vector ). I even read a lot of >games/graphics articles that uses Pitch , Roll and Yaw for Euler angles, >which is a bigger mistake. Euler Angles could represent heading and altitude >if they are applied in a certain sequence ( XYZ ) but they could never >represent Pitch/Yaw ( well, unless if one of them is zero ). > Right. The "unless" clause explains why astronomers find (altitude, azimuth) useful for aiming telescopes and artillerymen find (elevation, azimuth) useful for aiming their pieces. 
From: Peter Cowderoy <psyupjc@no...>  20020427 21:13:19

On Sat, 27 Apr 2002, Ron Levine wrote: > And, I should add, a disservice to all the other readers of the > response, not to mention a disservice to the general cause of clarity > of discussion on the forum. > Although possibly not to that of reducing the consumption of bandwidth.  psycho@... I'm supposed to put a quote here? 
From: Willmott, Andrew <AWillmott@ma...>  20020427 21:12:54

> Here I will depart from my normal policy of ignoring flames, or at > least not responding to them on public lists. But I do not have the > time at the moment to carefully choose my words for this, because I am > off to a picnic and softball game, but I might do it tonight. Now if only it was cricket; perhaps a test match. A. 
From: Ron Levine <ron@do...>  20020427 21:01:34

I wrote: >I wrote: > >>Daniel Vogel wrote: >> >>>You could try the following to convert a vector to yaw/pitch. >>> >>>Yaw = atan2(Y,X); >>>Pitch = atan2(Z,sqrt(X*X+Y*Y)); >>> >> >>Might be a good answer might not. It would be good if he is using >>"yaw" incorrectly to mean heading (as is not uncommon) and pitch >>incorrectly to mean "latitude" or "attitude" (as is not uncommon) >> >>AND ......... >>........ > >On second thought, it wouldn't be a good answer even if you were >correctly interpreting the question, because it would not be good to >perpetuate the wrongly chosen nomenclature of the question without >comment on its incorrectness. It would be a disservice to the >questioner. > And, I should add, a disservice to all the other readers of the response, not to mention a disservice to the general cause of clarity of discussion on the forum. 
From: Ron Levine <ron@do...>  20020427 20:41:17

Conor Stokes wrote: >Ron, you should actually note he said "converts a vector to pitch and yaw >angles" and he never used the phrase "pitch and yaw angles of a vector". > What's the difference? In the precise use of language "Converting a vector to angles" makes no sense at all. But it does make sense to speak of angles uniquely determined by a specifed vector in relation to a specified coordinate system, however you want to name those angles, and so those uniquely determined angles, in the usual practice of English semantics, would be said to be "of" that vector. I don't understand what point you are trying to make here, but it seems to me to be without content. The OP's language would have been more correctly put as "finding the pitch and yaw angles of a given vector", rather than "converting" the vector to anything. Similarly, people frequently speak of "converting a rotation matrix to a quaternion" or vice versa. More correct would be "finding a quaternion that represents the same rotation as a given matrix" and vice versa. Precision in language is important. Mathematics is nothing more nor less than the art of using language as precisely as possible (I have an essay on this subject which I might post sometimes soon). Imprecise use of language on mail lists and other forums frequently leads to endless nonsensical wrangling and wasted bandwidth. >I shake my head in sadness at the quality of flames that keep coming up from >what is supposed to be a relatively advanced flamer..... Here I will depart from my normal policy of ignoring flames, or at least not responding to them on public lists. But I do not have the time at the moment to carefully choose my words for this, because I am off to a picnic and softball game, but I might do it tonight. 
From: Ron Levine <ron@do...>  20020427 20:27:47

I wrote: >I take the liberty of violating etiquette by publicly posting a >private email send to me: >..... >... >The correct answer to the clarified question thus is > > altitude = tan(y/sqrt(x^2+z^2) > azimuth = atan2(z,x) > Ooops should be azimuth = atan2(x,z) Bet no one catches that before this. 
From: Ron Levine <ron@do...>  20020427 20:05:07

I wrote: >Daniel Vogel wrote: > >>You could try the following to convert a vector to yaw/pitch. >> >>Yaw = atan2(Y,X); >>Pitch = atan2(Z,sqrt(X*X+Y*Y)); >> > >Might be a good answer might not. It would be good if he is using >"yaw" incorrectly to mean heading (as is not uncommon) and pitch >incorrectly to mean "latitude" or "attitude" (as is not uncommon) > >AND if his zaxis is in the up direction, which is common in physics >but NOT at all common in graphics. So this answer might well be >leading him astraywe really don't know, do we? > On second thought, it wouldn't be a good answer even if you were correctly interpreting the question, because it would not be good to perpetuate the wrongly chosen nomenclature of the question without comment on its incorrectness. It would be a disservice to the questioner. 
From: Ron Levine <ron@do...>  20020427 19:55:33

I take the liberty of violating etiquette by publicly posting a private email send to me: On Sat, 27 Apr 2002 15:22:55 0300, "Christian Lykawka" <chris@...> wrote: > > Thanks for clarifying me about the answer i'm looking for, Ron. > > I have a lefthanded cartesian axes, where "y" means height, > "z" goes forward and "x" grows to right, as follows... > > y z >  / >  /___x > > I'd like to describe a vector in this space, as a pair of angles. > > One describes the angle this vector is in the plane XoZ > (that I called yaw, and you, azimuth). The second angle > describes the altitude of the vector, that I called pitch. > > In the program I'm writting, the north direction is in the > same direction the "z" axis is, so, the XoZ angle zero degrees > would be the vector (0, 0, 1) and ninety degrees would be > (1, 0, 0), which means west. > > I'm looking for two functions, one to convert from vector > to the pair of angles; and other to build the vector from > the angles. > > Am I clear enough? :) > > Thanks, > Christian > > This verifies that Daniel Vogel's interpretation of the question was presumptuous and so his response was incorrecta possibility that I pointed out in a post made a few minutes ago before reading this message. The correct answer to the clarified question thus is altitude = tan(y/sqrt(x^2+z^2) azimuth = atan2(z,x) and the "vice versa" answer is x = cos(altitude)sin(azimuth) y = sin(altitude) z = cos(altitude)cos(azimuth) Note that the minus signs occurs because he is using a positive angle for west of north. >> Christian Lykawka wrote: >> >> > >> > Does anyone have a function that converts a vector >> > to pitch and yaw angles, and viceversa? >> > >> >> Please define what you mean by "pitch and yaw angles of a vector"? >> These do not have standard definitions. Usually one uses the terms >> "pitch" and "yaw" in reference to a frame, not a single vector, and >> the most sensible meanings of these words pertain not to angles but to >> changes of orientation....not quite the same thing (although that does >> not prevent lots of folks from using them imprecisely, so >> nonmathematically). Specifically, the usual meanings of "pitch" and >> "yaw" pertain to changes in orientation of a body referred to a set of >> principal axes of that body. >> >> Probably, you mean what an astronomer calls "altitude and azimuth" in >> discussing the vector that tells where his telescope is pointing (for >> some types of telescope mounting) A geographer looking at the >> vector from the center of the earth to a point on the surface would >> call the same angles "latitude and longitude", although he would >> allow latitude to be negative, while the astronomer would not use a >> negative altitude (because he would be looking at the ground, not the >> sky). An aviator would call these angles "attitude and heading" >> and that aviator would give quite different meanings to "pitch and >> yaw", as would the captain of a vessel on the sea, or the captain of a >> spacecraft; namely, those three worthies would use "pitch and yaw" to >> refer to changes in orientation of the craft referred to the body axes >> of that craft. >> >> So, if you can describe in clear geometrical language, or commonly >> understood geographical, astronomical, or navigational terminology, >> what you mean by "pitch and yaw", and further tell how the cartesian >> axes are related to this geometrical description, then I will give you >> the function. >> >> (But not tonight, because I'm off to take my sweetie to a movie) >> >> >> >> >> >> >> >> _______________________________________________ >> GDAlgorithmslist mailing list >> GDAlgorithmslist@... >> https://lists.sourceforge.net/lists/listinfo/gdalgorithmslist >> Archives: >> http://sourceforge.net/mailarchive/forum.php?forum_id=6188 >> > 
From: Ron Levine <ron@do...>  20020427 19:36:20

Thatcher Ulrich wrote: >Finally, an answer :) Also, this could save you a few cycles: > >Pitch = asin(Z); > Only if the vector is a unit vector, a condition which he did not specify >On Apr 26, 2002 at 11:26 0400, Daniel Vogel wrote: >> You could try the following to convert a vector to yaw/pitch. >> >> Yaw = atan2(Y,X); >> Pitch = atan2(Z,sqrt(X*X+Y*Y)); >> >>  Daniel, Epic Games Inc. >> >> > Original Message >> > From: gdalgorithmslistadmin@... >> > [mailto:gdalgorithmslistadmin@...]On Behalf Of >> > Christian Lykawka >> > Sent: Friday, April 26, 2002 9:21 PM >> > To: gdalgorithmslist@... >> > Subject: [Algorithms] Vector to pitch and yaw >> > >> > >> > Hello, >> > >> > Does anyone have a function that converts a vector >> > to pitch and yaw angles, and viceversa? >> > >> > Thanks, >> > Christian >> > >> > >> > _______________________________________________ >> > GDAlgorithmslist mailing list >> > GDAlgorithmslist@... >> > https://lists.sourceforge.net/lists/listinfo/gdalgorithmslist >> > Archives: >> > http://sourceforge.net/mailarchive/forum.php?forum_id=6188 >> > >> >> _______________________________________________ >> GDAlgorithmslist mailing list >> GDAlgorithmslist@... >> https://lists.sourceforge.net/lists/listinfo/gdalgorithmslist >> Archives: >> http://sourceforge.net/mailarchive/forum.php?forum_id=6188 
From: Ron Levine <ron@do...>  20020427 19:34:39

Daniel Vogel wrote: >You could try the following to convert a vector to yaw/pitch. > >Yaw = atan2(Y,X); >Pitch = atan2(Z,sqrt(X*X+Y*Y)); > Might be a good answer might not. It would be good if he is using "yaw" incorrectly to mean heading (as is not uncommon) and pitch incorrectly to mean "latitude" or "attitude" (as is not uncommon) AND if his zaxis is in the up direction, which is common in physics but NOT at all common in graphics. So this answer might well be leading him astraywe really don't know, do we? Also, it does not complete the "vice versa" part of the query. So let me do that. Assuming that you are interpreting the illstated question correctly, the answer to the viceversa part is X = cos(theta) cos(phi) Y = cos(theta) sin(phi) Z = sin(theta) where theta is the lattitude, (what you incorrectly) call "yaw" and phi is the azimuth,(what you incorrectly call "pitch") I also might point out that the pitch equation can be simplified to atan(Z/sqrt(X*X+Y*Y) since the sqrt is positive and this gives an angle betwee pi/2 and pi/2 > >> Original Message >> From: gdalgorithmslistadmin@... >> [mailto:gdalgorithmslistadmin@...]On Behalf Of >> Christian Lykawka >> Sent: Friday, April 26, 2002 9:21 PM >> To: gdalgorithmslist@... >> Subject: [Algorithms] Vector to pitch and yaw >> >> >> Hello, >> >> Does anyone have a function that converts a vector >> to pitch and yaw angles, and viceversa? >> >> Thanks, >> Christian >> >> >> _______________________________________________ >> GDAlgorithmslist mailing list >> GDAlgorithmslist@... >> https://lists.sourceforge.net/lists/listinfo/gdalgorithmslist >> Archives: >> http://sourceforge.net/mailarchive/forum.php?forum_id=6188 >> > >_______________________________________________ >GDAlgorithmslist mailing list >GDAlgorithmslist@... >https://lists.sourceforge.net/lists/listinfo/gdalgorithmslist >Archives: >http://sourceforge.net/mailarchive/forum.php?forum_id=6188 
From: Brian Hook <brianhook@py...>  20020427 19:12:45

At 10:59 AM 4/27/2002 0700, Jason Dorie wrote: ><begin rant> Before this turns into a flame fest, the list moderators have been informed by numerous people that they're not happy with the tone of Ron's posts. We're aware of his tone and the grief it causes some others. BUT, if you have a complaint, please direct to the admins and/or Ron directly, but not to the list proper. That doesn't really help. That said, Ron, when not nit picking the simplest questions to death =), has demonstrated a certain degree of knowledgeability with his posts. He's a valued contributor, but that comes at a, uh, price. Tom has asked him to tone it down (again). But it's important to keep in mind that this list is about asking questions and, by extension, learning. In many ways, this means that most posts are an admittance of confusion or ignorance. Ridiculing or otherwise making others feel uncomfortable because they had the audacity to admit they aren't particularly well versed in an area is counter to the goals of mailing lists such as this. The last thing we want to see is people afraid to ask questions. So long as your question is ontopic and hasn't been answered to death in the archives and/or c.g.a FAQ, you shouldn't be ridiculed or condescended to just for posting. So all you brilliant types  keep in mind that others can't learn if you spend more time telling them how stupid they are instead of answering their questions. There are many ways to ask for clarification  or to make corrections  that don't make the other party feel one inch tall. Brian 
From: Willmott, Andrew <AWillmott@ma...>  20020427 19:05:45

Wow, what a great reply by Jon. (When I said pipeline stalls, I should = have been clearer and said FPU pipeline stalls.) Estrin's method is just a formal way of doing what he suggests below. It = rewrites the expression as a (balanced) binary tree using (An*x + An1) = factors and powers of x^2. So, P(7) =3D A7*x^7 + A6*x^6 + A5*x^5 + A4*x^4 + A3*x^3 + A2*x^2 + A1*x^1 = + A0 gets rewritten as, P(7) =3D ((A7*x + A6)*x^2 + (A5*x + A4))*x^4 + ((A3*x + A2)*x^2 + = (A1*x + A0)). I feel the need for appalling ascii art, so here goes: =20 (A7*x + A6) (A5*x + A4) (A3*x + A2) (A1*x + A0)     * x^2  * x^2  \____________/ \____________/ + +   * x^2  \______________________________/ +  P(7) (Sorry to be cryptic in my original reply  I assumed a Google search = would provide plenty of explanatory hits, but I see it doesn't.) So this approach gives good results for a highly parallel architecture: = all the original factors at the top can be evaluated in parallel. This all starts to get very architecture dependent. I've seen papers = where the authors basically generate all possible rewritings of an = expression, and then test them all to see which runs fastest on a = particular processor =3D). However, Horner's method is probably the mostly widely used in code = libraries etc. A. > As with any dependency stall, you can reduce the impact by rewriting=20 > the expression to provide more inherent parallelism, and thread each=20 > part of it ("schedule") at an instruction level. For example, for a=20 > polynomial of degree 4, you could say: >=20 > A0 + x(A1 + x*A2) + x*x*(A3 + x*A4) >=20 > (for different actual values of A0..4 than above, of course!) >=20 > You could then schedule the evaluation something like: >=20 > load r3, A0 > madd r4, x, A4 > madd r3, x, A2 > add r4, A3 > add r3, A1 > mul r5, x, x > mul r3, x > mul r4, r5 > add r3, r4 >=20 > (I'm running out of time, so this was not as=20 > actualmachinecodelike).=20 > As you see (once you expand out the loads :) there's slightly more=20 > breathing room in this expression than the previous. As you add more=20 > terms to your polynomial, you will find more opportunities=20 > for rewriting,=20 > parallelizing and scheduling. The compiler can't really do=20 > this, as the=20 > rewrites change the behavior of floatingpoint precision, which the=20 > compiler isn't at liberty to do. >=20 > Cheers, >=20 > / h+ >=20 >=20 > _______________________________________________ > GDAlgorithmslist mailing list > GDAlgorithmslist@... > https://lists.sourceforge.net/lists/listinfo/gdalgorithmslist > Archives: > http://sourceforge.net/mailarchive/forum.php?forum_id=3D6188 >=20 
From: Jason Dorie <Jason.Dorie@BlackBoxGames.com>  20020427 18:01:40

<begin rant> I've often wondered how you can see, what with your head so far up your own ass. It's pretty obvious what he was asking for. Not everyone is a math god, and there are likely people who are here to learn, as opposed to being here because they already know everything. In that context there will probably be a few simple, perhaps even seemingly obvious questions asked. Rather than publicly berating the poster about their supposed complete lack of ability, intelligence, or membership in humanity, either hold your tongue or give them a helpful answer. Being an arrogant prick really isn't helping anyone, nor is it improving anyone's opinion of you, unless you're trying to build a reputation as an asshole. <end rant> Jason Dorie  Original Message  From: "Ron Levine" <ron@...> To: "Christian Lykawka" <business@...> Cc: <gdalgorithmslist@...> Sent: Friday, April 26, 2002 8:07 PM Subject: Re: [Algorithms] Vector to pitch and yaw > Christian Lykawka wrote: > > > > > Does anyone have a function that converts a vector > > to pitch and yaw angles, and viceversa? > > > > Please define what you mean by "pitch and yaw angles of a vector"? > These do not have standard definitions. Usually one uses the terms > "pitch" and "yaw" in reference to a frame, not a single vector, and > the most sensible meanings of these words pertain not to angles but to > changes of orientation....not quite the same thing (although that does > not prevent lots of folks from using them imprecisely, so > nonmathematically). Specifically, the usual meanings of "pitch" and > "yaw" pertain to changes in orientation of a body referred to a set of > principal axes of that body. > > Probably, you mean what an astronomer calls "altitude and azimuth" in > discussing the vector that tells where his telescope is pointing (for > some types of telescope mounting) A geographer looking at the > vector from the center of the earth to a point on the surface would > call the same angles "latitude and longitude", although he would > allow latitude to be negative, while the astronomer would not use a > negative altitude (because he would be looking at the ground, not the > sky). An aviator would call these angles "attitude and heading" > and that aviator would give quite different meanings to "pitch and > yaw", as would the captain of a vessel on the sea, or the captain of a > spacecraft; namely, those three worthies would use "pitch and yaw" to > refer to changes in orientation of the craft referred to the body axes > of that craft. > > So, if you can describe in clear geometrical language, or commonly > understood geographical, astronomical, or navigational terminology, > what you mean by "pitch and yaw", and further tell how the cartesian > axes are related to this geometrical description, then I will give you > the function. > > (But not tonight, because I'm off to take my sweetie to a movie) 
From: Jon Watte <hplus@mi...>  20020427 15:23:22

> A0 + x(A1 + x(A2 + ... x(An)). Note that the As here are not the same values as when writing out the polynomial expanded on paper (the mapping should be obvious). > asking for and how to pose the question, then most likely he wouldn't be > asking it. Somebody said something, about this algorithm causing cache > stalls. I want to know why? Huh? Anything referencing memory will cause a stall because of a cache miss, if that's what you're talking about. That can be worked around with either prefetching, or prewarming of the cache. However, when people talk about "stalls," it's more often dependency stalls in the pipeline, rather than memory stalls. Horner's rule, as written, will indeed cause readafterwrite stalls because of the linear dependency. The code to solve it looks something like (pseudocode, starting from the right, going left): load r3, 0 load r1, x load r2, A(n) madd r3, r2, r1 load r2, A(n1) madd r3, r2, r1 load r2, A(n2) madd r3, r2, r1 load r2, A(n3) madd r3, r2, r1 ... load r2, A1 madd r3, r2, r1 load r2, A0 add r3, r2 As you can see, the multiplyadds need the previous value of r3, gotten only two instructions before (or three, if you need two instructions to do a madd). If the loads don't stall, it's likely that the calculations will. As with any dependency stall, you can reduce the impact by rewriting the expression to provide more inherent parallelism, and thread each part of it ("schedule") at an instruction level. For example, for a polynomial of degree 4, you could say: A0 + x(A1 + x*A2) + x*x*(A3 + x*A4) (for different actual values of A0..4 than above, of course!) You could then schedule the evaluation something like: load r3, A0 madd r4, x, A4 madd r3, x, A2 add r4, A3 add r3, A1 mul r5, x, x mul r3, x mul r4, r5 add r3, r4 (I'm running out of time, so this was not as actualmachinecodelike). As you see (once you expand out the loads :) there's slightly more breathing room in this expression than the previous. As you add more terms to your polynomial, you will find more opportunities for rewriting, parallelizing and scheduling. The compiler can't really do this, as the rewrites change the behavior of floatingpoint precision, which the compiler isn't at liberty to do. Cheers, / h+ 
From: Thatcher Ulrich <tu@tu...>  20020427 14:57:10

Finally, an answer :) Also, this could save you a few cycles: Pitch = asin(Z); On Apr 26, 2002 at 11:26 0400, Daniel Vogel wrote: > You could try the following to convert a vector to yaw/pitch. > > Yaw = atan2(Y,X); > Pitch = atan2(Z,sqrt(X*X+Y*Y)); > >  Daniel, Epic Games Inc. > > > Original Message > > From: gdalgorithmslistadmin@... > > [mailto:gdalgorithmslistadmin@...]On Behalf Of > > Christian Lykawka > > Sent: Friday, April 26, 2002 9:21 PM > > To: gdalgorithmslist@... > > Subject: [Algorithms] Vector to pitch and yaw > > > > > > Hello, > > > > Does anyone have a function that converts a vector > > to pitch and yaw angles, and viceversa? > > > > Thanks, > > Christian > > > > > > _______________________________________________ > > GDAlgorithmslist mailing list > > GDAlgorithmslist@... > > https://lists.sourceforge.net/lists/listinfo/gdalgorithmslist > > Archives: > > http://sourceforge.net/mailarchive/forum.php?forum_id=6188 > > > > _______________________________________________ > GDAlgorithmslist mailing list > GDAlgorithmslist@... > https://lists.sourceforge.net/lists/listinfo/gdalgorithmslist > Archives: > http://sourceforge.net/mailarchive/forum.php?forum_id=6188  Thatcher Ulrich <tu@...> http://tulrich.com 
From: Idahosa I. O. Edokpayi <idahosae@sw...>  20020427 08:03:31

Now that I understand the problem more and am in less of a hurry, I realize that what I wanted was Horner's rule. It looks something like this: A0 + x(A1 + x(A2 + ... x(An)). And I should have said polynomial evaluation. I think what everybody should realize is that if the person asking the question knew precisely what he was asking for and how to pose the question, then most likely he wouldn't be asking it. Somebody said something, about this algorithm causing cache stalls. I want to know why? Idahosa Edokpayi O2Cool Games Software Original Message From: gdalgorithmslistadmin@... [mailto:gdalgorithmslistadmin@...] On Behalf Of Ron Levine Sent: Friday, April 26, 2002 3:28 PM To: Willmott, Andrew Cc: gdalgorithmslist@... Subject: Re: [Algorithms] polynomial multiplication On Fri, 26 Apr 2002 12:39:23 0700, you wrote: >Except if your numbering of Ai is 1based. As his obviously is: > > For(A[n] to A[1] ) > >Perhaps you should read before spouting off? > You can be 1based or 0based but you have to be consistent for all the terms in the polynomial, which is not the case in his first form :D _______________________________________________ GDAlgorithmslist mailing list GDAlgorithmslist@... https://lists.sourceforge.net/lists/listinfo/gdalgorithmslist Archives: http://sourceforge.net/mailarchive/forum.php?forum_id=6188 
From: mark_me <mark_me@so...>  20020427 07:59:05

Right , The terms Pitch, Yaw , and Roll are used to describe incremental changes of orientation around body space axes. But they are widely and incorrectly used to describe heading and altitude ( in geometrical language , Heading is the angle between the projection of the vector over the world space XY plane and the world space XAxis , and Altitude is the angle between that same projection and the vector ). I even read a lot of games/graphics articles that uses Pitch , Roll and Yaw for Euler angles, which is a bigger mistake. Euler Angles could represent heading and altitude if they are applied in a certain sequence ( XYZ ) but they could never represent Pitch/Yaw ( well, unless if one of them is zero ). Original Message From: gdalgorithmslistadmin@... [mailto:gdalgorithmslistadmin@...]On Behalf Of Ron Levine Sent: April 26, 2002 8:08 PM To: Christian Lykawka Cc: gdalgorithmslist@... Subject: Re: [Algorithms] Vector to pitch and yaw Christian Lykawka wrote: > > Does anyone have a function that converts a vector > to pitch and yaw angles, and viceversa? > Please define what you mean by "pitch and yaw angles of a vector"? These do not have standard definitions. Usually one uses the terms "pitch" and "yaw" in reference to a frame, not a single vector, and the most sensible meanings of these words pertain not to angles but to changes of orientation....not quite the same thing (although that does not prevent lots of folks from using them imprecisely, so nonmathematically). Specifically, the usual meanings of "pitch" and "yaw" pertain to changes in orientation of a body referred to a set of principal axes of that body. Probably, you mean what an astronomer calls "altitude and azimuth" in discussing the vector that tells where his telescope is pointing (for some types of telescope mounting) A geographer looking at the vector from the center of the earth to a point on the surface would call the same angles "latitude and longitude", although he would allow latitude to be negative, while the astronomer would not use a negative altitude (because he would be looking at the ground, not the sky). An aviator would call these angles "attitude and heading" and that aviator would give quite different meanings to "pitch and yaw", as would the captain of a vessel on the sea, or the captain of a spacecraft; namely, those three worthies would use "pitch and yaw" to refer to changes in orientation of the craft referred to the body axes of that craft. So, if you can describe in clear geometrical language, or commonly understood geographical, astronomical, or navigational terminology, what you mean by "pitch and yaw", and further tell how the cartesian axes are related to this geometrical description, then I will give you the function. (But not tonight, because I'm off to take my sweetie to a movie) _______________________________________________ GDAlgorithmslist mailing list GDAlgorithmslist@... https://lists.sourceforge.net/lists/listinfo/gdalgorithmslist Archives: http://sourceforge.net/mailarchive/forum.php?forum_id=6188 
From: Charles Bloom <cbloom@cb...>  20020427 06:54:42

(in an attempt to return to sanity) ; in case you haven't seen it yet, the Siggraph 2002 preprints are out en masse. Lots of good stuff; I like "Geometry Images" and "Perspective Shadow Maps". http://www.cs.brown.edu/~tor/sig2002.html  Charles Bloom cb@... http://www.cbloom.com 
From: Conor Stokes <cstokes@tp...>  20020427 06:34:22

Ron, you should actually note he said "converts a vector to pitch and yaw angles" and he never used the phrase "pitch and yaw angles of a vector". I shake my head in sadness at the quality of flames that keep coming up from what is supposed to be a relatively advanced flamer. Not sad so much for the acidness that comes up, but sad for the way you do it. Really, if you're going to flame someone on the topic of language (especially when you pretty much understood what he was trying to say), at least take the time to quote them properly. I thought with the amount of pseudointellectual predatory wankspeak that came from your mouth you could at least get that one right. Really, it's elementary school flaming and I expect better. Conor Stokes 
From: Daniel Vogel <vogel@ep...>  20020427 03:27:11

You could try the following to convert a vector to yaw/pitch. Yaw = atan2(Y,X); Pitch = atan2(Z,sqrt(X*X+Y*Y));  Daniel, Epic Games Inc. > Original Message > From: gdalgorithmslistadmin@... > [mailto:gdalgorithmslistadmin@...]On Behalf Of > Christian Lykawka > Sent: Friday, April 26, 2002 9:21 PM > To: gdalgorithmslist@... > Subject: [Algorithms] Vector to pitch and yaw > > > Hello, > > Does anyone have a function that converts a vector > to pitch and yaw angles, and viceversa? > > Thanks, > Christian > > > _______________________________________________ > GDAlgorithmslist mailing list > GDAlgorithmslist@... > https://lists.sourceforge.net/lists/listinfo/gdalgorithmslist > Archives: > http://sourceforge.net/mailarchive/forum.php?forum_id=6188 > 
From: Ron Levine <ron@do...>  20020427 03:05:56

Christian Lykawka wrote: > > Does anyone have a function that converts a vector > to pitch and yaw angles, and viceversa? > Please define what you mean by "pitch and yaw angles of a vector"? These do not have standard definitions. Usually one uses the terms "pitch" and "yaw" in reference to a frame, not a single vector, and the most sensible meanings of these words pertain not to angles but to changes of orientation....not quite the same thing (although that does not prevent lots of folks from using them imprecisely, so nonmathematically). Specifically, the usual meanings of "pitch" and "yaw" pertain to changes in orientation of a body referred to a set of principal axes of that body. Probably, you mean what an astronomer calls "altitude and azimuth" in discussing the vector that tells where his telescope is pointing (for some types of telescope mounting) A geographer looking at the vector from the center of the earth to a point on the surface would call the same angles "latitude and longitude", although he would allow latitude to be negative, while the astronomer would not use a negative altitude (because he would be looking at the ground, not the sky). An aviator would call these angles "attitude and heading" and that aviator would give quite different meanings to "pitch and yaw", as would the captain of a vessel on the sea, or the captain of a spacecraft; namely, those three worthies would use "pitch and yaw" to refer to changes in orientation of the craft referred to the body axes of that craft. So, if you can describe in clear geometrical language, or commonly understood geographical, astronomical, or navigational terminology, what you mean by "pitch and yaw", and further tell how the cartesian axes are related to this geometrical description, then I will give you the function. (But not tonight, because I'm off to take my sweetie to a movie) 