<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Integration Basics</title>
	<atom:link href="http://gafferongames.com/game-physics/integration-basics/feed/" rel="self" type="application/rss+xml" />
	<link>http://gafferongames.com</link>
	<description>Glenn Fiedler&#039;s Game Development Articles and Tutorials</description>
	<lastBuildDate>Tue, 07 Sep 2010 17:03:11 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Glenn Fiedler</title>
		<link>http://gafferongames.com/game-physics/integration-basics/#comment-257</link>
		<dc:creator>Glenn Fiedler</dc:creator>
		<pubDate>Wed, 14 Jul 2010 22:26:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.gaffer.org/wordpress/integration-basics/#comment-257</guid>
		<description>yes, you are correct</description>
		<content:encoded><![CDATA[<p>yes, you are correct</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Vango</title>
		<link>http://gafferongames.com/game-physics/integration-basics/#comment-256</link>
		<dc:creator>James Vango</dc:creator>
		<pubDate>Wed, 14 Jul 2010 14:39:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.gaffer.org/wordpress/integration-basics/#comment-256</guid>
		<description>Thanks so much for a very informative article. It has been incredibly useful. I think I may have found a slight typo, but please correct me if I&#039;m wrong. I think that:

         Derivative a = evaluate(state, t, 0.0f, Derivative());
         Derivative b = evaluate(state, t+dt*0.5f, dt*0.5f, a);
         Derivative c = evaluate(state, t+dt*0.5f, dt*0.5f, b);
         Derivative d = evaluate(state, t+dt, dt, c);

Should read:

         Derivative a = evaluate(state, t, 0.0f, Derivative());
         Derivative b = evaluate(state, t, dt*0.5f, a);
         Derivative c = evaluate(state, t, dt*0.5f, b);
         Derivative d = evaluate(state, t, dt, c);

Thanks again!</description>
		<content:encoded><![CDATA[<p>Thanks so much for a very informative article. It has been incredibly useful. I think I may have found a slight typo, but please correct me if I&#8217;m wrong. I think that:</p>
<p>         Derivative a = evaluate(state, t, 0.0f, Derivative());<br />
         Derivative b = evaluate(state, t+dt*0.5f, dt*0.5f, a);<br />
         Derivative c = evaluate(state, t+dt*0.5f, dt*0.5f, b);<br />
         Derivative d = evaluate(state, t+dt, dt, c);</p>
<p>Should read:</p>
<p>         Derivative a = evaluate(state, t, 0.0f, Derivative());<br />
         Derivative b = evaluate(state, t, dt*0.5f, a);<br />
         Derivative c = evaluate(state, t, dt*0.5f, b);<br />
         Derivative d = evaluate(state, t, dt, c);</p>
<p>Thanks again!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Glenn Fiedler</title>
		<link>http://gafferongames.com/game-physics/integration-basics/#comment-255</link>
		<dc:creator>Glenn Fiedler</dc:creator>
		<pubDate>Tue, 06 Jul 2010 14:57:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.gaffer.org/wordpress/integration-basics/#comment-255</guid>
		<description>agreed</description>
		<content:encoded><![CDATA[<p>agreed</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adriano Macchietto</title>
		<link>http://gafferongames.com/game-physics/integration-basics/#comment-254</link>
		<dc:creator>Adriano Macchietto</dc:creator>
		<pubDate>Tue, 06 Jul 2010 00:35:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.gaffer.org/wordpress/integration-basics/#comment-254</guid>
		<description>Euler can be perfectly fine if your ODE is not stiff. At the end of the day the maximum timestep you can integrate has to be the draw frequency of the interactive simulation. That means that if you&#039;re using RK4 on a non-stiff ODE there reaches a point where the accuracy benefits of RK4 become imperceptible and you begin wasting CPU time.

In my simulations I use a linearizing control scheme for my characters which makes my ODE non-stiff. I can integrate at 100 Hz using forward Euler and achieve stability for most cases. I find that RK2 works best overall when the passive non-linear centrifugal forces kick in.</description>
		<content:encoded><![CDATA[<p>Euler can be perfectly fine if your ODE is not stiff. At the end of the day the maximum timestep you can integrate has to be the draw frequency of the interactive simulation. That means that if you&#8217;re using RK4 on a non-stiff ODE there reaches a point where the accuracy benefits of RK4 become imperceptible and you begin wasting CPU time.</p>
<p>In my simulations I use a linearizing control scheme for my characters which makes my ODE non-stiff. I can integrate at 100 Hz using forward Euler and achieve stability for most cases. I find that RK2 works best overall when the passive non-linear centrifugal forces kick in.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben</title>
		<link>http://gafferongames.com/game-physics/integration-basics/#comment-253</link>
		<dc:creator>Ben</dc:creator>
		<pubDate>Fri, 16 Apr 2010 11:17:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.gaffer.org/wordpress/integration-basics/#comment-253</guid>
		<description>Nice article...though euler is not as crappy as u describe it...or have u ever worked in a perturbed environment using RK methods? No? Why? Cause it wont work :) Thats when u can only use euler....</description>
		<content:encoded><![CDATA[<p>Nice article&#8230;though euler is not as crappy as u describe it&#8230;or have u ever worked in a perturbed environment using RK methods? No? Why? Cause it wont work <img src='http://gafferongames.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Thats when u can only use euler&#8230;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Glenn Fiedler</title>
		<link>http://gafferongames.com/game-physics/integration-basics/#comment-252</link>
		<dc:creator>Glenn Fiedler</dc:creator>
		<pubDate>Sun, 14 Mar 2010 00:43:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.gaffer.org/wordpress/integration-basics/#comment-252</guid>
		<description>It&#039;s not used but it could be for forces which are functions of time, eg. sinusoidal wobble for a rocket thrust</description>
		<content:encoded><![CDATA[<p>It&#8217;s not used but it could be for forces which are functions of time, eg. sinusoidal wobble for a rocket thrust</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter</title>
		<link>http://gafferongames.com/game-physics/integration-basics/#comment-250</link>
		<dc:creator>Peter</dc:creator>
		<pubDate>Sat, 13 Mar 2010 17:50:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.gaffer.org/wordpress/integration-basics/#comment-250</guid>
		<description>Nice article. Anyway, I don&#039;t quite get, why the function accelerate() has the parameter float t - it&#039;s not used in the function body at all.</description>
		<content:encoded><![CDATA[<p>Nice article. Anyway, I don&#8217;t quite get, why the function accelerate() has the parameter float t &#8211; it&#8217;s not used in the function body at all.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: pgd</title>
		<link>http://gafferongames.com/game-physics/integration-basics/#comment-249</link>
		<dc:creator>pgd</dc:creator>
		<pubDate>Wed, 17 Feb 2010 10:35:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.gaffer.org/wordpress/integration-basics/#comment-249</guid>
		<description>Hey Glenn,
Thanks very much for clearing that up. Much appreciated.</description>
		<content:encoded><![CDATA[<p>Hey Glenn,<br />
Thanks very much for clearing that up. Much appreciated.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Glenn Fiedler</title>
		<link>http://gafferongames.com/game-physics/integration-basics/#comment-248</link>
		<dc:creator>Glenn Fiedler</dc:creator>
		<pubDate>Tue, 16 Feb 2010 17:15:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.gaffer.org/wordpress/integration-basics/#comment-248</guid>
		<description>Yes everything here is force driven. In an impulsed based simulation you&#039;d probably be much better off using a simpler integrator - really the only reason why a higher order integrator is useful here is because I&#039;m attempting to do everything via forces and the integrator lets me have stiffer springs for a given timestep

cheers</description>
		<content:encoded><![CDATA[<p>Yes everything here is force driven. In an impulsed based simulation you&#8217;d probably be much better off using a simpler integrator &#8211; really the only reason why a higher order integrator is useful here is because I&#8217;m attempting to do everything via forces and the integrator lets me have stiffer springs for a given timestep</p>
<p>cheers</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Glenn Fiedler</title>
		<link>http://gafferongames.com/game-physics/integration-basics/#comment-247</link>
		<dc:creator>Glenn Fiedler</dc:creator>
		<pubDate>Tue, 16 Feb 2010 17:13:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.gaffer.org/wordpress/integration-basics/#comment-247</guid>
		<description>It&#039;s interesting, theoretically you could have a closed form solution which although being entirely accurate (up to floating point accuracy) has so many terms that it&#039;s actually slower than integrating directly

Generally, folks use the closed form solution when they don&#039;t want to worry about drift over time accumulating values in an integrator. It&#039;s not always an option, for example consider that if you have player input affecting the solution, I&#039;m not sure that you could actually get a closed form solution for that -- the function of player input is unknown at compile time! :)

But yeah, for stuff like stiff springs, suspension etc. I&#039;ve heard a lot of people used closed form here for specific cases, just not the &quot;general&quot; case if you get me

cheers</description>
		<content:encoded><![CDATA[<p>It&#8217;s interesting, theoretically you could have a closed form solution which although being entirely accurate (up to floating point accuracy) has so many terms that it&#8217;s actually slower than integrating directly</p>
<p>Generally, folks use the closed form solution when they don&#8217;t want to worry about drift over time accumulating values in an integrator. It&#8217;s not always an option, for example consider that if you have player input affecting the solution, I&#8217;m not sure that you could actually get a closed form solution for that &#8212; the function of player input is unknown at compile time! <img src='http://gafferongames.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>But yeah, for stuff like stiff springs, suspension etc. I&#8217;ve heard a lot of people used closed form here for specific cases, just not the &#8220;general&#8221; case if you get me</p>
<p>cheers</p>
]]></content:encoded>
	</item>
</channel>
</rss>
