<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.2.1" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: Plücker coordinates considered harmful!</title>
	<link>http://realtimecollisiondetection.net/blog/?p=13</link>
	<description>Coding wisdom and rants of Christer Ericson</description>
	<pubDate>Fri, 10 Sep 2010 22:32:50 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>

	<item>
		<title>By: realtimecollisiondetection.net - the blog &#187; Chunky triangle soup</title>
		<link>http://realtimecollisiondetection.net/blog/?p=13#comment-133</link>
		<author>realtimecollisiondetection.net - the blog &#187; Chunky triangle soup</author>
		<pubDate>Thu, 13 Dec 2007 07:13:09 +0000</pubDate>
		<guid>http://realtimecollisiondetection.net/blog/?p=13#comment-133</guid>
		<description>[...] tests are needed. The sidedness tests are done using scalar triple products (as I described in the Plücker post a while ago). For those needing more information, I talk about line vs. quad being the same cost as [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] tests are needed. The sidedness tests are done using scalar triple products (as I described in the Plücker post a while ago). For those needing more information, I talk about line vs. quad being the same cost as [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: &#187; Another blog Cedrick Collomb blog</title>
		<link>http://realtimecollisiondetection.net/blog/?p=13#comment-27</link>
		<author>&#187; Another blog Cedrick Collomb blog</author>
		<pubDate>Sat, 15 Sep 2007 18:56:30 +0000</pubDate>
		<guid>http://realtimecollisiondetection.net/blog/?p=13#comment-27</guid>
		<description>[...] usually move on without leaving comments on blogs, but the subject of Plucker Coordinates was interesting since Christer made similar observations that I made few years ago, but only [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] usually move on without leaving comments on blogs, but the subject of Plucker Coordinates was interesting since Christer made similar observations that I made few years ago, but only [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: christer</title>
		<link>http://realtimecollisiondetection.net/blog/?p=13#comment-25</link>
		<author>christer</author>
		<pubDate>Sun, 09 Sep 2007 22:54:19 +0000</pubDate>
		<guid>http://realtimecollisiondetection.net/blog/?p=13#comment-25</guid>
		<description>Hi Cedrick! Yes, you can typically reduce the total number of floating-point operations by expressing something using Plücker coordinates and storing the P-Q and PxQ terms. (I didn't mention it above, but I talked about this briefly on pp187-188 of my book.) Of course, trading saving a few flops for extra storage is rarely the right thing to do these days, with flops at around 1 cycle and cache misses approaching 1000 cycles. Then again, if the target machine is some low-end hardware it might be a worthwhile tradeoff and people should definitely be aware of this so they can make that value judgement.</description>
		<content:encoded><![CDATA[<p>Hi Cedrick! Yes, you can typically reduce the total number of floating-point operations by expressing something using Plücker coordinates and storing the P-Q and PxQ terms. (I didn&#8217;t mention it above, but I talked about this briefly on pp187-188 of my book.) Of course, trading saving a few flops for extra storage is rarely the right thing to do these days, with flops at around 1 cycle and cache misses approaching 1000 cycles. Then again, if the target machine is some low-end hardware it might be a worthwhile tradeoff and people should definitely be aware of this so they can make that value judgement.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Cedrick</title>
		<link>http://realtimecollisiondetection.net/blog/?p=13#comment-24</link>
		<author>Cedrick</author>
		<pubDate>Sun, 09 Sep 2007 20:11:28 +0000</pubDate>
		<guid>http://realtimecollisiondetection.net/blog/?p=13#comment-24</guid>
		<description>I went through similar reasoning in 2002 when working on optimizing the raytracing routines of a game. At the time people mentionned to me the Plucker coordinates name, and I had simple formulas without a need for a name. Finding out that they matched was amusing :D

Your strike 2 point did not really explain where the two parts formula came from and the potential value of it.

If you have a segment (AB) and you want to see if the other segment (SE) is on the right side. You can simply consider the plane (ABS) and the dot of SE and its normal SA^SB therefore the value d = SE.(SA^SB) = SE.((A-S)^(B-S) = SE.(A^B-S^B-A^S) [reminder S^S=0]
then d = SE.(A^B+AB^S) = SE.(A^B) + AB.(S^SE) [rotation on the left of the triple product]
S^SE=S^(E-S)=S^E
therefore d = SE.(A^B) + AB.(S^E) = U1.V2 + U2.V1

Now this is not completely nor always useless, you replace your formula (D - C). (A - C)^(B - C) which is 4 reads, 3 subs, 1 cross, 1 dot by U1.V2 + U2.V1 which is 4 reads, 2 dots and one add as long as you prestore AB and A^B for every segment.

I might have forgotten other details since it has been a long time, but I hope this helps.</description>
		<content:encoded><![CDATA[<p>I went through similar reasoning in 2002 when working on optimizing the raytracing routines of a game. At the time people mentionned to me the Plucker coordinates name, and I had simple formulas without a need for a name. Finding out that they matched was amusing :D</p>
<p>Your strike 2 point did not really explain where the two parts formula came from and the potential value of it.</p>
<p>If you have a segment (AB) and you want to see if the other segment (SE) is on the right side. You can simply consider the plane (ABS) and the dot of SE and its normal SA^SB therefore the value d = SE.(SA^SB) = SE.((A-S)^(B-S) = SE.(A^B-S^B-A^S) [reminder S^S=0]<br />
then d = SE.(A^B+AB^S) = SE.(A^B) + AB.(S^SE) [rotation on the left of the triple product]<br />
S^SE=S^(E-S)=S^E<br />
therefore d = SE.(A^B) + AB.(S^E) = U1.V2 + U2.V1</p>
<p>Now this is not completely nor always useless, you replace your formula (D - C). (A - C)^(B - C) which is 4 reads, 3 subs, 1 cross, 1 dot by U1.V2 + U2.V1 which is 4 reads, 2 dots and one add as long as you prestore AB and A^B for every segment.</p>
<p>I might have forgotten other details since it has been a long time, but I hope this helps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: LiAR isn&#8217;t a raytracer &#187; Blog Archive &#187; Plücker coordinates not so good for you?</title>
		<link>http://realtimecollisiondetection.net/blog/?p=13#comment-8</link>
		<author>LiAR isn&#8217;t a raytracer &#187; Blog Archive &#187; Plücker coordinates not so good for you?</author>
		<pubDate>Tue, 17 Jul 2007 16:49:45 +0000</pubDate>
		<guid>http://realtimecollisiondetection.net/blog/?p=13#comment-8</guid>
		<description>[...] author of Real-Time Collision Detection has written a little article on Plücker coordinates and why they are considered harmful. It&#8217;s great. I never really understood what all the fuss was about, as I could do the [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] author of Real-Time Collision Detection has written a little article on Plücker coordinates and why they are considered harmful. It&#8217;s great. I never really understood what all the fuss was about, as I could do the [&#8230;]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
