<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel xmlns:blog="http://www.dotnetnuke.com/blog/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
    <title>DigitalRune Blog</title>
    <description>The blog of the DigitalRune team.</description>
    <link>http://www.digitalrune.com/Support/Blog/tabid/719/BlogId/11/Default.aspx</link>
    <language>en-US</language>
    <webMaster />
    <pubDate>Sat, 19 May 2012 04:42:51 GMT</pubDate>
    <lastBuildDate>Sat, 19 May 2012 04:42:51 GMT</lastBuildDate>
    <docs>http://backend.userland.com/rss</docs>
    <generator>Blog RSS Generator Version 4.1.0.0</generator>
    <item>
      <title>Research: Augmented Reality with Microsoft Kinect</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/155/Research-Augmented-Reality-with-Microsoft-Kinect.aspx</link>
      <description>&lt;p&gt;&lt;em&gt;This is a guest post by Kairat Aitpayev.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Augmented Reality (AR) technology allows adding virtual object to the real world using special markers. By merging it with Microsoft Kinect I have created new approach which allows users to use their own body as a collision object in the 3D world and interact with augmented objects.&lt;/p&gt;  &lt;h2&gt;Video&lt;/h2&gt;  &lt;p&gt;Here the presentation of the demo application which by itself is a part of bigger project related with online sport education:&lt;/p&gt;  &lt;p&gt;&lt;iframe height="281" src="http://player.vimeo.com/video/41662499" frameborder="0" width="500" allowfullscreen="allowfullscreen" mozallowfullscreen="mozallowfullscreen" webkitallowfullscreen="webkitallowfullscreen"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;p&gt;(Full video of entire project: See &lt;a title="Kinect in Sport Education" href="https://vimeo.com/41136278"&gt;https://vimeo.com/41136278&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;The project was created in the MultiMedia Lab of Kazakh-British Technical University (Kazakhstan) in collaboration with University of Technology of Belfort-Montbeliard (France).&lt;/p&gt;  &lt;p&gt;DigitalRune libraries are used to improve the interaction between the real and the virtual world.&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/5/Default.aspx">Collision Detection</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/6/Default.aspx">Physics</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/155/Research-Augmented-Reality-with-Microsoft-Kinect.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/155/Research-Augmented-Reality-with-Microsoft-Kinect.aspx</guid>
      <pubDate>Tue, 01 May 2012 14:21:03 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=155</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/53/Default.aspx">Kinect</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/7/Default.aspx">Collision Detection</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/52/Default.aspx">Motion Capture</blog:tag>
    </item>
    <item>
      <title>Real-Time Motion Capture using Kinect and XNA (Part 2)</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/154/Real-Time-Motion-Capture-using-Kinect-and-XNA-Part-2.aspx</link>
      <description>&lt;p&gt;Our last &lt;a href="http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/152/Real-Time-Motion-Capture-using-Kinect-and-XNA.aspx"&gt;post about real-time motion capture using Kinect&lt;/a&gt; seems to be pretty popular. And for the small amount of time (only a few hours) that we put into this example, the results are satisfying – but we can do better! We have updated the project and included a brand new sample. The new sample uses skeleton mapping to animate 3D models using Kinect. The code is much simpler, and exchanging the 3D model is a lot easier. We have also updated the example application to use Kinect SDK v1.0 instead of Kinect SDK beta2. You can download the sample project (including the source code) at the end of this post.&lt;/p&gt;  &lt;h2&gt;Video&lt;/h2&gt;  &lt;p&gt;Here are the results of the new sample application:&lt;/p&gt;  &lt;p align="left"&gt;&lt;object width="425" height="272"&gt; &lt;param name="movie" value="http://www.youtube.com/v/_-AbIHcuSgI?version=3&amp;hl=en_US&amp;rel=0"&gt;&lt;/param&gt; &lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt; &lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt; &lt;param name="wmode" value="transparent"&gt;&lt;/param&gt; &lt;embed src="http://www.youtube.com/v/_-AbIHcuSgI?version=3&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" width="425" height="272" allowscriptaccess="always" allowfullscreen="true" wmode="transparent"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;/p&gt;  &lt;p align="left"&gt;…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/6/Default.aspx">Physics</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/4/Default.aspx">Animation</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/154/Real-Time-Motion-Capture-using-Kinect-and-XNA-Part-2.aspx#Comments</comments>
      <slash:comments>15</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/154/Real-Time-Motion-Capture-using-Kinect-and-XNA-Part-2.aspx</guid>
      <pubDate>Tue, 03 Apr 2012 14:12:02 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=154</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/53/Default.aspx">Kinect</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/6/Default.aspx">XNA</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/5/Default.aspx">Animation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/52/Default.aspx">Motion Capture</blog:tag>
    </item>
    <item>
      <title>Real-Time Motion Capture using Kinect and XNA</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/152/Real-Time-Motion-Capture-using-Kinect-and-XNA.aspx</link>
      <description>&lt;p&gt;A while ago we discussed in the &lt;a href="http://www.digitalrune.com/Support/Forum/tabid/586/forumid/20/threadid/2581/scope/posts/Default.aspx"&gt;Forum&lt;/a&gt; how to use the &lt;a href="http://kinectforwindows.org/"&gt;Microsoft Kinect SDK&lt;/a&gt; to animate a character model in real-time and how to apply movement constraints (e.g. joint rotation limits). Yesterday our company got a new Kinect device and I figured I might spend the rest of the afternoon trying to write a small XNA sample. &lt;/p&gt;  &lt;p&gt;Here is the result: (You can download the source code below the video.)&lt;/p&gt;  &lt;p align="left"&gt;&lt;object width="425" height="272"&gt; &lt;param name="movie" value="http://www.youtube.com/v/77Qw1vZhNYA?version=3&amp;hl=en_US&amp;rel=0"&gt;&lt;/param&gt; &lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt; &lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt; &lt;param name="wmode" value="transparent"&gt;&lt;/param&gt; &lt;embed src="http://www.youtube.com/v/77Qw1vZhNYA?version=3&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" width="425" height="272" allowscriptaccess="always" allowfullscreen="true" wmode="transparent"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;/p&gt;  &lt;p&gt;…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/4/Default.aspx">Animation</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/6/Default.aspx">Physics</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/152/Real-Time-Motion-Capture-using-Kinect-and-XNA.aspx#Comments</comments>
      <slash:comments>19</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/152/Real-Time-Motion-Capture-using-Kinect-and-XNA.aspx</guid>
      <pubDate>Tue, 03 Jan 2012 11:15:56 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=152</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/5/Default.aspx">Animation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/52/Default.aspx">Motion Capture</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/53/Default.aspx">Kinect</blog:tag>
    </item>
    <item>
      <title>Happy New Year!</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/151/Happy-New-Year.aspx</link>
      <description>&lt;p&gt;Here are few thoughts about 2011, the coming year and one uncommented video…&lt;/p&gt;  &lt;p align="left"&gt;&lt;object width="425" height="272"&gt; &lt;param name="movie" value="http://www.youtube.com/v/dpGqK8Do7RY?version=3&amp;hl=en_US&amp;rel=0"&gt;&lt;/param&gt; &lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt; &lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt; &lt;param name="wmode" value="transparent"&gt;&lt;/param&gt; &lt;embed src="http://www.youtube.com/v/dpGqK8Do7RY?version=3&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" width="425" height="272" allowscriptaccess="always" allowfullscreen="true" wmode="transparent"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/2/Default.aspx">WPF</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/8/Default.aspx">Miscellaneous</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/151/Happy-New-Year.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/151/Happy-New-Year.aspx</guid>
      <pubDate>Sat, 31 Dec 2011 17:53:14 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=151</trackback:ping>
    </item>
    <item>
      <title>How to Build an Animated, State-Based Game Menu in XNA (Part 3)</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/149/How-to-Build-an-Animated-State-Based-Game-Menu-in-XNA-Part-3.aspx</link>
      <description>&lt;p&gt;It is time to make the game menu built in the previous two blog posts (&lt;a href="http://www.digitalrune.comhttp://www.digitalrune.com/Support/Blog/tabid/719/EntryId/147/How-to-Build-an-Animated-State-Based-Game-Menu-in-XNA-Part-1.aspx"&gt;Part 1&lt;/a&gt;, &lt;a href="http://www.digitalrune.comhttp://www.digitalrune.comhttp://www.digitalrune.com/Support/Blog/tabid/719/EntryId/148/How-to-Build-an-Animated-State-Based-Game-Menu-in-XNA-Part-2.aspx"&gt;Part 2&lt;/a&gt;) more dynamic. Currently all screens are static. When another game screen is opened the change is instant – there is no transition phase between screens.&lt;/p&gt;  &lt;p&gt;This is what we want to achieve:&lt;/p&gt;  &lt;p&gt;&lt;object width="425" height="272"&gt; &lt;param name="movie" value="http://www.youtube.com/v/nF1QTe56t20?version=3&amp;hl=en_US&amp;rel=0"&gt;&lt;/param&gt; &lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt; &lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt; &lt;param name="wmode" value="transparent"&gt;&lt;/param&gt; &lt;embed src="http://www.youtube.com/v/nF1QTe56t20?version=3&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" width="425" height="272" allowscriptaccess="always" allowfullscreen="true" wmode="transparent"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;/p&gt;  &lt;p&gt;The &lt;a href="http://www.digitalrune.com/Products/GameEngine/Animation.aspx"&gt;DigitalRune Animation&lt;/a&gt; library provides an animation system for animating objects. In &lt;a href="http://www.digitalrune.comhttp://www.digitalrune.com/Support/Blog/tabid/719/EntryId/147/How-to-Build-an-Animated-State-Based-Game-Menu-in-XNA-Part-1.aspx"&gt;Part 1&lt;/a&gt; and &lt;a href="http://www.digitalrune.comhttp://www.digitalrune.comhttp://www.digitalrune.com/Support/Blog/tabid/719/EntryId/148/How-to-Build-an-Animated-State-Based-Game-Menu-in-XNA-Part-2.aspx"&gt;Part 2&lt;/a&gt;&lt;font style="background-color: #ffff00"&gt;&lt;/font&gt; the animation system has already been set up and is ready to be used. &lt;/p&gt;  &lt;p&gt;Animations can be applied to objects that implement the interface &lt;a href="http://www.digitalrune.com/Documentation/?topic=html/58812efb-838c-b735-4cc7-97ff368daa12.htm"&gt;IAnimatableObject&lt;/a&gt; and properties that implement &lt;a href="http://www.digitalrune.com/Documentation/?topic=html/12daff40-617d-de91-038e-142e7cc14993.htm"&gt;IAnimatableProperty&lt;T&gt;&lt;/a&gt;. The UI controls, used for rendering the screens, already implement the required interfaces.&lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;Animating the Start Text&lt;/h2&gt;  &lt;p&gt;First, we want to improve the “Start” screen. When the loading process is complete, the text “Loading…” changes to “Press Start button”. We can animate the text to draw the player’s attention to it. The easiest way is to animate the opacity of the &lt;a href="http://www.digitalrune.comhttp://www.digitalrune.com/Documentation/?topic=html/d4da839e-436e-2442-64a0-419cafdae031.htm"&gt;TextBlock&lt;/a&gt;.&lt;/p&gt;  &lt;pre class="brush: csharp;"&gt;/// &lt;summary&gt;
/// Called when "Start" state is entered.
/// &lt;/summary&gt;
private void OnEnterStartScreen(object sender, StateEventArgs eventArgs)
{
  // Show the "Press Start button" text centered on the screen.
  _startTextBlock = new TextBlock
  {
    Name = "StartTextBlock",
    Text = "Press Start button",
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Center,
  };
  _screen.Children.Add(_startTextBlock);

  // The text should pulse to indicate that a user interaction is required.
  // To achieve this we can animate the opacity of the TextBlock.
  var opacityAnimation = new SingleFromToByAnimation
  {
    From = 1,                             // Animate from opaque (Opacity == 1)
    To = 0.25f,                           // to nearly transparent (Opacity == 0.25)
    Duration = TimeSpan.FromSeconds(0.5), // over a duration of 0.5 seconds.
    EasingFunction = new SineEase { Mode = EasingMode.EaseInOut }
  };

  // A SingleFromToByAnimation plays only once, but the animation should be 
  // played back-and-forth until the user presses a button.
  // We need to wrap the SingleFromToByAnimation in an AnimationClip or TimelineClip.
  // Animation clips can be used to cut and loop other animations.
  var loopingOpacityAnimation = new AnimationClip&lt;float&gt;(opacityAnimation)
  {
    LoopBehavior = LoopBehavior.Oscillate,  // Play back-and-forth.
    Duration = TimeSpan.MaxValue            // Loop forever.
  };

  // We want to apply the animation to the "Opacity" property of the TextBlock.
  // All "game object properties" of a UIControl can be made "animatable".      
  // First, get a handle to the "Opacity" property.
  var opacityProperty = _startTextBlock.Properties.Get&lt;float&gt;(TextBlock.OpacityPropertyId);

  // Then cast the "Opacity" property to an IAnimatableProperty. 
  var animatableOpacityProperty = opacityProperty.AsAnimatable();

  // Start the pulse animation.
  var animationController = _animationService.StartAnimation(loopingOpacityAnimation, animatableOpacityProperty);

  // Enable "automatic recycling". This step is optional. It ensures that the
  // associated resources are recycled when either the animation is stopped or
  // the target object (the TextBlock) is garbage collected.
  // (The associated resources will be reused by future animations, which will
  // reduce the number of required memory allocations at runtime.)
  animationController.AutoRecycle();
}&lt;/pre&gt;

&lt;h2&gt;Playing a Fade-Out Animation&lt;/h2&gt;

&lt;p&gt;Once the player has pressed the Start button, we want to smoothly fade-out the &lt;a href="http://www.digitalrune.comhttp://www.digitalrune.com/Documentation/?topic=html/d4da839e-436e-2442-64a0-419cafdae031.htm"&gt;TextBlock&lt;/a&gt;. Instead of triggering the transition from the “Start” screen to the “Menu” screen right away, we first play the fade-out animation. &lt;/p&gt;

&lt;p&gt;This is the new update method of the “Start” screen:&lt;/p&gt;

&lt;pre class="brush: csharp;"&gt;private bool _exitAnimationIsPlaying;                 // true if fade-out animation is playing.
private AnimationController _exitAnimationController; // Controls the fade-out animation.

/// &lt;summary&gt;
/// Called every frame when "Start" state is active.
/// &lt;/summary&gt;
private void OnUpdateStartScreen(object sender, StateEventArgs eventArgs)
{
  if (_exitAnimationIsPlaying)
    return;

  bool transitionToMenu = false;

  // Check if the user presses A or START on any connected gamepad.
  for (var controller = PlayerIndex.One; controller &lt;= PlayerIndex.Four; controller++)
  {
    if (_inputService.IsDown(Buttons.A, controller) || _inputService.IsDown(Buttons.Start, controller))
    {
      // A or START was pressed. Assign this controller to the first "logical player".
      _inputService.SetLogicalPlayer(LogicalPlayerIndex.One, controller);
      transitionToMenu = true;
    }
  }

  if (_inputService.IsDown(MouseButtons.Left)
      || _inputService.IsDown(Keys.Enter)
      || _inputService.IsDown(Keys.Escape)
      || _inputService.IsDown(Keys.Space))
  {
    // The users has pressed the left mouse button or a key on the keyboard. 
    if (!_inputService.GetLogicalPlayer(LogicalPlayerIndex.One).HasValue)
    {
      // No controller has been assigned to the first "logical player". Maybe 
      // there is no gamepad connected.
      // --&gt; Just guess which controller is the primary player and continue.
      _inputService.SetLogicalPlayer(LogicalPlayerIndex.One, PlayerIndex.One);
    }

    transitionToMenu = true;
  }

  if (transitionToMenu)
  {
    // Play a fade-out animation which changes the opacity from its current value to 0.
    var fadeOutAnimation = new SingleFromToByAnimation
    {
      To = 0,                               // Animate the opacity from the current value to 0
      Duration = TimeSpan.FromSeconds(0.5), // over a duration of 0.5 seconds.
    };
    var opacityProperty = _startTextBlock.Properties.Get&lt;float&gt;(TextBlock.OpacityPropertyId).AsAnimatable();
    _exitAnimationController = _animationService.StartAnimation(fadeOutAnimation, opacityProperty);

    // When the fade-out animation finished trigger the transition from the "Start" 
    // screen to the "Menu" screen.
    _exitAnimationController.Completed += (s, e) =&gt; _stateMachine.States.ActiveState.Transitions["StartToMenu"].Fire();

    _exitAnimationIsPlaying = true;
  }
}&lt;/pre&gt;

&lt;p&gt;When we exit the “Start” state, we can stop the animation:&lt;/p&gt;

&lt;pre class="brush: csharp;"&gt;/// &lt;summary&gt;
/// Called when "Start" state is exited.
/// &lt;/summary&gt;
private void OnExitStartScreen(object sender, StateEventArgs eventArgs)
{
  // Clean up.
  _exitAnimationController.Stop();
  _exitAnimationController.Recycle();
  _exitAnimationIsPlaying = false;

  _screen.Children.Remove(_startTextBlock);
  _startTextBlock = null;
}&lt;/pre&gt;

&lt;h2&gt;Animating the Menu Items&lt;/h2&gt;

&lt;p&gt;The menu items should dynamically slide in from the left. To achieve this effect we can animate the opacity and the &lt;a href="http://www.digitalrune.comhttp://www.digitalrune.com/Documentation/?topic=html/9ee6bda7-cff7-734f-edae-b4b3e624d3cc.htm"&gt;RenderTranslation&lt;/a&gt; of the Button controls. The &lt;a href="http://www.digitalrune.comhttp://www.digitalrune.com/Documentation/?topic=html/9ee6bda7-cff7-734f-edae-b4b3e624d3cc.htm"&gt;RenderTranslation&lt;/a&gt; is an offset which is only applied during rendering. (It does not affect the layout of the controls on the screen.)&lt;/p&gt;

&lt;p&gt;The same animation effect can be applied to the “SubMenu” screen, therefore we put the code in a general helper method:&lt;/p&gt;

&lt;pre class="brush: csharp;"&gt;/// &lt;summary&gt;
/// Called when "Menu" state is entered.
/// &lt;/summary&gt;
private void OnEnterMenuScreen(object sender, StateEventArgs eventArgs)
{
  // Show a main menu consisting of several buttons.
  ...

  // Slide the buttons (contained in the stack panel) in from the left to make 
  // the screen look more dynamic.
  AnimateFrom(stackPanel.Children, 0, new Vector2F(-300, 0));
}

/// &lt;summary&gt;
/// Animates the opacity and offset of a group of controls from the specified value to their 
/// current value.
/// &lt;/summary&gt;
/// &lt;param name="controls"&gt;The UI controls to be animated.&lt;/param&gt;
/// &lt;param name="opacity"&gt;The initial opacity.&lt;/param&gt;
/// &lt;param name="offset"&gt;The initial offset.&lt;/param&gt;
private void AnimateFrom(IList&lt;UIControl&gt; controls, float opacity, Vector2F offset)
{
  TimeSpan duration = TimeSpan.FromSeconds(0.8);

  // First, let's define the animation that is going to be applied to a control.
  // Animate the "Opacity" from the specified value to its current value.
  var opacityAnimation = new SingleFromToByAnimation
  {
    TargetProperty = "Opacity",
    From = opacity,
    Duration = duration,
    EasingFunction = new CubicEase { Mode = EasingMode.EaseOut },
  };

  // Animate the "RenderTranslation" property from the specified offset to 
  // its current value, which is usually (0, 0).
  var offsetAnimation = new Vector2FFromToByAnimation
  {
    TargetProperty = "RenderTranslation",
    From = offset,
    Duration = duration,
    EasingFunction = new CubicEase { Mode = EasingMode.EaseOut },
  };

  // Group the opacity and offset animation together using a TimelineGroup.
  var timelineGroup = new TimelineGroup();
  timelineGroup.Add(opacityAnimation);
  timelineGroup.Add(offsetAnimation);

  // Run the animation on each control using a slight delay to give the first controls
  // a slight head start.
  var numberOfControls = controls.Count;
  for (int i = 0; i &lt; controls.Count; i++)
  {
    var clip = new TimelineClip(timelineGroup)
    {
      Delay = TimeSpan.FromSeconds(-0.04 * (numberOfControls - i)),
      FillBehavior = FillBehavior.Stop,   // Stop and remove the animation when it is done.
    };
    var animationController = _animationService.StartAnimation(clip, controls[i]);

    // Enable "auto-recycling" to ensure that the animation resources are recycled once
    // the animation stops or the target objects are garbage collected.
    animationController.AutoRecycle();
  }
}&lt;/pre&gt;

&lt;p&gt;Previously, in the “Start” screen, we have applied the animation directly to the opacity property. In this case we are animating two properties at once. The opacity animation and the position animation are grouped together and the combined animation is applied to the target object. The animation system takes care of the rest and applies the animations to the correct UI control properties.&lt;/p&gt;

&lt;h2&gt;And so forth…&lt;/h2&gt;

&lt;p&gt;The remaining animation and screens are similar, so I will skip any further explanations. &lt;/p&gt;

&lt;p&gt;This article concludes the three part series. I tried to keep explanations brief and I am aware that I skipped some of the details. I recommend you check out the sample, if you haven’t already. The source code contains a lot of additional comments. It is included in the download package of the &lt;a href="http://www.digitalrune.com/Products/GameEngine.aspx"&gt;DigitalRune Engine&lt;/a&gt; (see folder &lt;font face="Consolas"&gt;&lt;InstallationFolder&gt;\&lt;/font&gt;&lt;font face="Consolas"&gt;Samples\DigitalRune.Game.UI\GameStatesSample&lt;/font&gt;).&lt;/p&gt;

&lt;p&gt;My original goal, when initially writing the sample, was to introduce the &lt;a href="http://www.digitalrune.com/Documentation/?topic=html/90d223b3-20b0-4e86-227f-e77944c78f71.htm"&gt;StateMachine&lt;/a&gt; offered by &lt;a href="http://www.digitalrune.com/Products/GameEngine/Game.aspx"&gt;DigitalRune Game&lt;/a&gt;. In &lt;a href="http://www.digitalrune.comhttp://www.digitalrune.comhttp://www.digitalrune.com/Support/Blog/tabid/719/EntryId/148/How-to-Build-an-Animated-State-Based-Game-Menu-in-XNA-Part-2.aspx"&gt;Part 2&lt;/a&gt; we have used the state machine to separate the logic of different game screens. But this actually only scratches the surface. The state machine has a lot more to offer, such as nested states, parallel states, timed transitions, etc. I am curious whether you will find it helpful.&lt;/p&gt;&lt;br /&gt;&lt;a href=http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/149/How-to-Build-an-Animated-State-Based-Game-Menu-in-XNA-Part-3.aspx&gt;More ...&lt;/a&gt;</description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/149/How-to-Build-an-Animated-State-Based-Game-Menu-in-XNA-Part-3.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/149/How-to-Build-an-Animated-State-Based-Game-Menu-in-XNA-Part-3.aspx</guid>
      <pubDate>Wed, 30 Nov 2011 17:11:51 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=149</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/6/Default.aspx">XNA</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/40/Default.aspx">DigitalRune Game UI</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/5/Default.aspx">Animation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/41/Default.aspx">GUI</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/47/Default.aspx">DigitalRune Animation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/42/Default.aspx">Input</blog:tag>
    </item>
    <item>
      <title>How to Build an Animated, State-Based Game Menu in XNA (Part 2)</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/148/How-to-Build-an-Animated-State-Based-Game-Menu-in-XNA-Part-2.aspx</link>
      <description>&lt;p&gt;This is the second part of the step-by-step tutorial for building a simple game menu in XNA. Previously we have set up the project, the game loop, and added the UI theme. Now it’s time to implement the game logic…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/148/How-to-Build-an-Animated-State-Based-Game-Menu-in-XNA-Part-2.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/148/How-to-Build-an-Animated-State-Based-Game-Menu-in-XNA-Part-2.aspx</guid>
      <pubDate>Tue, 29 Nov 2011 15:56:50 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=148</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/6/Default.aspx">XNA</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/40/Default.aspx">DigitalRune Game UI</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/5/Default.aspx">Animation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/41/Default.aspx">GUI</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/47/Default.aspx">DigitalRune Animation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/42/Default.aspx">Input</blog:tag>
    </item>
    <item>
      <title>How to Build an Animated, State-Based Game Menu in XNA (Part 1)</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/147/How-to-Build-an-Animated-State-Based-Game-Menu-in-XNA-Part-1.aspx</link>
      <description>&lt;p&gt;The latest release of the &lt;a href="http://www.digitalrune.com/Products/GameEngine.aspx"&gt;DigitalRune Engine&lt;/a&gt; contains a new sample called &lt;font face="Consolas"&gt;GameStatesSample&lt;/font&gt; which covers a some of the basics:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;How to set up the game loop. &lt;/li&gt;    &lt;li&gt;How to define a theme for rendering the user-interface. &lt;/li&gt;    &lt;li&gt;How to create a game menu which can be controlled via gamepad, mouse, and keyboard. &lt;/li&gt;    &lt;li&gt;How to manage different game screens using a state machine. &lt;/li&gt;    &lt;li&gt;How to transition between screens using animations. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The result is a stripped down XNA application – no fancy graphics, no gameplay, just a few screens and menus. Take a look:&lt;/p&gt;  &lt;p&gt;&lt;object width="425" height="272"&gt; &lt;param name="movie" value="http://www.youtube.com/v/nF1QTe56t20?version=3&amp;hl=en_US&amp;rel=0"&gt;&lt;/param&gt; &lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt; &lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt; &lt;param name="wmode" value="transparent"&gt;&lt;/param&gt; &lt;embed src="http://www.youtube.com/v/nF1QTe56t20?version=3&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" width="425" height="272" allowscriptaccess="always" allowfullscreen="true" wmode="transparent"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;/p&gt;  &lt;p&gt;...&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/4/Default.aspx">Animation</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/147/How-to-Build-an-Animated-State-Based-Game-Menu-in-XNA-Part-1.aspx#Comments</comments>
      <slash:comments>1</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/147/How-to-Build-an-Animated-State-Based-Game-Menu-in-XNA-Part-1.aspx</guid>
      <pubDate>Mon, 28 Nov 2011 11:42:27 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=147</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/6/Default.aspx">XNA</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/40/Default.aspx">DigitalRune Game UI</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/5/Default.aspx">Animation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/41/Default.aspx">GUI</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/47/Default.aspx">DigitalRune Animation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/42/Default.aspx">Input</blog:tag>
    </item>
    <item>
      <title>Upcoming Mono Support for the DigitalRune Engine</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/145/Upcoming-Mono-Support-for-the-DigitalRune-Engine.aspx</link>
      <description>&lt;p&gt;In the last months we have received a few requests about Mono support for our DigitalRune Engine libraries. I have spent some time to get familiar with Mono, and to see what implications Mono support would have.&lt;/p&gt;  &lt;h2&gt;About Mono&lt;/h2&gt;  &lt;p&gt;If you are not familiar with Mono: &lt;a href="http://www.mono-project.com/"&gt;Mono&lt;/a&gt; is an open source implementation of Microsoft’s .NET Framework. It makes the .NET framework available under Linux and Mac OS X. …&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/145/Upcoming-Mono-Support-for-the-DigitalRune-Engine.aspx#Comments</comments>
      <slash:comments>2</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/145/Upcoming-Mono-Support-for-the-DigitalRune-Engine.aspx</guid>
      <pubDate>Wed, 16 Nov 2011 16:41:34 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=145</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/51/Default.aspx">Mono</blog:tag>
    </item>
    <item>
      <title>Creating an XNA Tree View Control</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/144/Creating-an-XNA-Tree-View-Control.aspx</link>
      <description>&lt;p&gt;This article is a step-by-step description of my first attempt to create a tree view control. I spent less than 4 hours of work on the control and this was the result: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.digitalrune.com/Portals/0/Blog/Files/11/144/Windows-Live-Writer-Creating-a-TreeView-Control_BA06-image_16.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px auto; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="/Portals/0/Blog/Files/11/144/Windows-Live-Writer-Creating-a-TreeView-Control_BA06-image_thumb_6.png" width="244" height="166" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In this article I will explain the development steps, as well as my thought process. At the end of the article you can download the source code.&lt;/p&gt;  &lt;p&gt;…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/144/Creating-an-XNA-Tree-View-Control.aspx#Comments</comments>
      <slash:comments>4</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/144/Creating-an-XNA-Tree-View-Control.aspx</guid>
      <pubDate>Fri, 07 Oct 2011 17:29:20 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=144</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/40/Default.aspx">DigitalRune Game UI</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/41/Default.aspx">GUI</blog:tag>
    </item>
    <item>
      <title>DigitalRune Game UI: GUI Input Handling</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/143/DigitalRune-Game-UI-GUI-Input-Handling.aspx</link>
      <description>&lt;p&gt;This time we take a look at how the &lt;a href="http://www.digitalrune.com/Products/GameEngine/GameUI.aspx"&gt;DigitalRune Game UI library&lt;/a&gt; handles input. &lt;/p&gt;  &lt;h2&gt;Overview&lt;/h2&gt;  &lt;p&gt;Here is a class diagram showing only the types and type members related to input processing:&lt;/p&gt;  &lt;p&gt;…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/143/DigitalRune-Game-UI-GUI-Input-Handling.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/143/DigitalRune-Game-UI-GUI-Input-Handling.aspx</guid>
      <pubDate>Tue, 04 Oct 2011 15:39:32 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=143</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/40/Default.aspx">DigitalRune Game UI</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/41/Default.aspx">GUI</blog:tag>
    </item>
    <item>
      <title>DigitalRune Game UI: The UIRenderer</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/142/DigitalRune-Game-UI-The-UIRenderer.aspx</link>
      <description>&lt;p&gt;While we discussed the &lt;a href="http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/141/DigitalRune-Game-UI-The-GUI-Rendering-Process.aspx"&gt;GUI rendering process in the last article&lt;/a&gt;, we left out any details about the default UI renderer. if you plan to create custom controls, you will want to extend the standard renderer, and this blog post will hopefully provide the missing explanations.&lt;/p&gt;  &lt;p&gt;…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/9/Default.aspx">Graphics</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/142/DigitalRune-Game-UI-The-UIRenderer.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/142/DigitalRune-Game-UI-The-UIRenderer.aspx</guid>
      <pubDate>Fri, 30 Sep 2011 09:00:54 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=142</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/40/Default.aspx">DigitalRune Game UI</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/41/Default.aspx">GUI</blog:tag>
    </item>
    <item>
      <title>DigitalRune Game UI: The GUI Rendering Process</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/141/DigitalRune-Game-UI-The-GUI-Rendering-Process.aspx</link>
      <description>&lt;p&gt;In the last article about the DigitalRune Game UI we examined how the size and position of a GUI control is determined. Yet we have not discussed where and how the controls are drawn to the screen. This the topic of this article. – This &lt;font style="style"&gt;will &lt;/font&gt;be another rather dry article, but we are trying to get a lot of information and knowledge across for those who want to extend or learn from our DigitalRune Game UI library. So let’s jump right in…&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/9/Default.aspx">Graphics</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/141/DigitalRune-Game-UI-The-GUI-Rendering-Process.aspx#Comments</comments>
      <slash:comments>2</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/141/DigitalRune-Game-UI-The-GUI-Rendering-Process.aspx</guid>
      <pubDate>Wed, 28 Sep 2011 18:37:53 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=141</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/40/Default.aspx">DigitalRune Game UI</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/41/Default.aspx">GUI</blog:tag>
    </item>
    <item>
      <title>DigitalRune Game UI: The GUI Layout Process</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/139/DigitalRune-Game-UI-The-GUI-Layout-Process.aspx</link>
      <description>&lt;p&gt;Here is another in-depth article about the &lt;a href="http://www.digitalrune.com/Products/GameEngine/GameUI.aspx"&gt;DigitalRune Game UI&lt;/a&gt;. This article discusses the layout process of GUI controls.&lt;/p&gt;  &lt;p&gt;…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/139/DigitalRune-Game-UI-The-GUI-Layout-Process.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/139/DigitalRune-Game-UI-The-GUI-Layout-Process.aspx</guid>
      <pubDate>Mon, 26 Sep 2011 19:48:30 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=139</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/40/Default.aspx">DigitalRune Game UI</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/41/Default.aspx">GUI</blog:tag>
    </item>
    <item>
      <title>DigitalRune Game UI: UI Control Properties</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/138/DigitalRune-Game-UI-UI-Control-Properties.aspx</link>
      <description>&lt;p&gt;So you need a custom control in your XNA game? A new control that is not yet supported in the &lt;a href="http://www.digitalrune.com/Products/GameEngine/GameUI.aspx"&gt;DigitalRune Game UI&lt;/a&gt;? - No problem. There are many ways to extend the DigitalRune Game UI library - as we will discuss in this and upcoming blog posts. We will start by describing a few core concepts that you need to understand before you can take full advantage of the DigitalRune Game UI library. &lt;/p&gt;
&lt;p&gt;In this first post we will discuss the concept of &lt;em&gt;UI control properties and events&lt;/em&gt;. &lt;/p&gt;</description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/138/DigitalRune-Game-UI-UI-Control-Properties.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/138/DigitalRune-Game-UI-UI-Control-Properties.aspx</guid>
      <pubDate>Wed, 21 Sep 2011 23:00:00 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=138</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/40/Default.aspx">DigitalRune Game UI</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/41/Default.aspx">GUI</blog:tag>
    </item>
    <item>
      <title>Jumping is hard</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/132/Jumping-is-hard.aspx</link>
      <description>&lt;p&gt;Recently &lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;I made some improvements to the character controller in &lt;a href="http://www.digitalrune.com/Products/Physics/Overview.aspx"&gt;DigitalRune Physics&lt;/a&gt;. I became aware of some issues while reading the article “Jump To It” (Game Developer Magazine, issue 11/2008, pp. 38). &lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;It &lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;turns out that the jumping mechanic can be improved.&lt;/p&gt;  &lt;h2&gt;What is wrong with the current implementation?&lt;/h2&gt;  &lt;p&gt;The &lt;a href="http://www.digitalrune.com/Documentation/?topic=html/7e5379a6-e6d3-0775-c465-2c53c8b1fc2f.htm"&gt;KinematicCharacterController&lt;/a&gt; can be used to control the movement of a player character. The character controller handles moving, sliding along obstacles, walking slopes, stepping over obstacles, … and jumping. (Reminder: If you &lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;have &lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;an Indie or Standard license of DigitalRune Physics, you can download the source code of the character controllers from the &lt;a href="http://www.digitalrune.com/Downloads.aspx"&gt;Downloads&lt;/a&gt; page. See “Additional Downloads”.)&lt;/p&gt;  &lt;p&gt;Jumping works fine in most cases. That is, …&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/6/Default.aspx">Physics</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/132/Jumping-is-hard.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/132/Jumping-is-hard.aspx</guid>
      <pubDate>Thu, 15 Sep 2011 10:03:38 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=132</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/23/Default.aspx">DigitalRune Physics</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/12/Default.aspx">Character Controller</blog:tag>
    </item>
    <item>
      <title>Character Animation Compression</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/131/Character-Animation-Compression.aspx</link>
      <description>&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Skeletal_animation"&gt;Skeletal animation&lt;/a&gt; is the most common way to animate a 3D character: Transformations are applied to a set of bones (skeleton), which is then used to deform the mesh (skin) of the character. When using key frame animations the bone transforms need to be stored at certain key times. Depending on the complexity of the character and the length of the animation, the required amount of data can become quite large. Let’s see what we can do to reduce the amount of data.&lt;/p&gt;  &lt;p&gt;…&lt;/p&gt;  &lt;p align="center"&gt;&lt;object width="425" height="272"&gt; &lt;param name="movie" value="http://www.youtube.com/v/GgzzNuA-cMY?version=3&amp;hl=en_US&amp;rel=0"&gt;&lt;/param&gt; &lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt; &lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt; &lt;param name="wmode" value="transparent"&gt;&lt;/param&gt; &lt;embed src="http://www.youtube.com/v/GgzzNuA-cMY?version=3&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" width="425" height="272" allowscriptaccess="always" allowfullscreen="true" wmode="transparent"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/4/Default.aspx">Animation</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/131/Character-Animation-Compression.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/131/Character-Animation-Compression.aspx</guid>
      <pubDate>Wed, 31 Aug 2011 10:57:38 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=131</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/50/Default.aspx">Compression</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/5/Default.aspx">Animation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/47/Default.aspx">DigitalRune Animation</blog:tag>
    </item>
    <item>
      <title>Visualization of a Model Skeleton</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/129/Visualization-of-a-Model-Skeleton.aspx</link>
      <description>&lt;p&gt;Here is a code snippet that draws the bones of a 3D character skeleton for debugging (similar to the original &lt;a href="http://www.digitalrune.com/Documentation/?topic=html/34e12373-6220-96fb-3ba9-3f6cb7937bba.htm"&gt;SkeletonHelper.DrawBones&lt;/a&gt; method). The result looks like this:&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://www.digitalrune.com/Portals/0/Blog/Files/11/129/Windows-Live-Writer-Skeleton-Debug-Rendering_9654-Skeleton_Debug_Visualization_4.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px auto; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Skeleton_Debug_Visualization" border="0" alt="Skeleton_Debug_Visualization" src="/Portals/0/Blog/Files/11/129/Windows-Live-Writer-Skeleton-Debug-Rendering_9654-Skeleton_Debug_Visualization_thumb_1.jpg" width="244" height="149" /&gt;&lt;/a&gt; (Click image to enlarge.)&lt;/p&gt;  &lt;p&gt;Here is the code:&lt;/p&gt;  &lt;p&gt;…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/4/Default.aspx">Animation</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/129/Visualization-of-a-Model-Skeleton.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/129/Visualization-of-a-Model-Skeleton.aspx</guid>
      <pubDate>Thu, 11 Aug 2011 23:00:00 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=129</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/47/Default.aspx">DigitalRune Animation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/5/Default.aspx">Animation</blog:tag>
    </item>
    <item>
      <title>How to Create Ragdolls</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/128/How-to-Create-Ragdolls.aspx</link>
      <description>&lt;p&gt;Manually creating good ragdolls in code can be tough. This blog post takes you on a hands-on ragdoll creation journey and provides several tips. &lt;/p&gt;  &lt;p&gt;&lt;object width="425" height="272"&gt; &lt;param name="movie" value="http://www.youtube.com/v/a47gy2p7bV0?version=3&amp;hl=en_US&amp;rel=0"&gt;&lt;/param&gt; &lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt; &lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt; &lt;param name="wmode" value="transparent"&gt;&lt;/param&gt; &lt;embed src="http://www.youtube.com/v/a47gy2p7bV0?version=3&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" width="425" height="272" allowscriptaccess="always" allowfullscreen="true" wmode="transparent"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;/p&gt;  &lt;p&gt;…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/4/Default.aspx">Animation</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/6/Default.aspx">Physics</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/5/Default.aspx">Collision Detection</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/128/How-to-Create-Ragdolls.aspx#Comments</comments>
      <slash:comments>2</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/128/How-to-Create-Ragdolls.aspx</guid>
      <pubDate>Thu, 11 Aug 2011 14:33:14 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=128</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/29/Default.aspx">Ragdoll</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/5/Default.aspx">Animation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/47/Default.aspx">DigitalRune Animation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/3/Default.aspx">Physics</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/23/Default.aspx">DigitalRune Physics</blog:tag>
    </item>
    <item>
      <title>Visualization of Ragdoll Joints</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/124/Visualization-of-Ragdoll-Joints.aspx</link>
      <description>&lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 8px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="Ragdoll with joints" border="0" alt="Ragdoll with joints" align="right" src="/Portals/0/Blog/Files/11/124/Windows-Live-Writer-Visualization-of-Ragdoll-Limits_A5B8-Ragdoll_with_Limits_5.jpg" width="124" height="175" /&gt;The &lt;a href="http://www.digitalrune.com/Products/GameEngine/Animation.aspx"&gt;DigitalRune Animation&lt;/a&gt; library supports ragdolls. DigitalRune Animation has a lot of helpful methods for character animation and ragdoll creation, but it does not yet have a method that visualizes ragdoll constraints. Choosing good joint limits and correct joint orientations can be really difficult without a visualization. – But do not fear, constraint visualization is here!&lt;/p&gt;  &lt;h2&gt;Download&lt;/h2&gt;  &lt;p&gt;The following .zip archive contains a “RagdollHelper” class that draws constraints for a ragdoll. It also contains an updated “DudeRagdollCreator.cs”. &lt;/p&gt;  &lt;p&gt;…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/4/Default.aspx">Animation</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/6/Default.aspx">Physics</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/124/Visualization-of-Ragdoll-Joints.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/124/Visualization-of-Ragdoll-Joints.aspx</guid>
      <pubDate>Sun, 07 Aug 2011 09:50:08 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=124</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/47/Default.aspx">DigitalRune Animation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/5/Default.aspx">Animation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/29/Default.aspx">Ragdoll</blog:tag>
    </item>
    <item>
      <title>Motion Retargeting in XNA</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/113/Motion-Retargeting-in-XNA.aspx</link>
      <description>&lt;p&gt;In &lt;strong&gt;DigitalRune Animation&lt;/strong&gt;&lt;em&gt;, motion retargeting&lt;/em&gt; (or more precise: &lt;em&gt;animation retargeting&lt;/em&gt;) is the process of transferring the animations of one character to another character with a different skeleton topology. &lt;/p&gt;  &lt;h2&gt;Video&lt;/h2&gt;  &lt;p&gt;In the video below, the walk animation of the &lt;a href="http://create.msdn.com/en-US/education/catalog/sample/skinned_model"&gt;Dude model&lt;/a&gt; (left) is applied to the &lt;a href="http://xnanimation.codeplex.com/"&gt;PlayerMarine model&lt;/a&gt; (right).&lt;/p&gt;  &lt;p&gt;&lt;object width="425" height="272"&gt; 	&lt;param name="movie" value="http://www.youtube.com/v/9TRPSabQpNQ?version=3&amp;hl=en_US&amp;rel=0"&gt;&lt;/param&gt; 	&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt; 	&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt; 	&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt; 	&lt;embed src="http://www.youtube.com/v/9TRPSabQpNQ?version=3&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" width="425" height="272" allowscriptaccess="always" allowfullscreen="true" wmode="transparent"&gt;&lt;/embed&gt; 	&lt;/object&gt;&lt;/p&gt;  &lt;h2&gt;Description&lt;/h2&gt;  &lt;p&gt;At the first look the models seem similar, but a look at skeletal structure reveals a number of differences:   &lt;br /&gt;…&lt;/p&gt;    </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/4/Default.aspx">Animation</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/113/Motion-Retargeting-in-XNA.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/113/Motion-Retargeting-in-XNA.aspx</guid>
      <pubDate>Fri, 29 Jul 2011 16:39:16 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=113</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/47/Default.aspx">DigitalRune Animation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/5/Default.aspx">Animation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/49/Default.aspx">Motion Retargeting</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/29/Default.aspx">Ragdoll</blog:tag>
    </item>
    <item>
      <title>Inverse Kinematics in XNA: Foot IK Solver</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/112/Inverse-Kinematics-in-XNA-Foot-IK-Solver.aspx</link>
      <description>&lt;p&gt;This time we take a look at the &lt;a href="http://www.digitalrune.com/Documentation/?topic=html/ac1a0734-9844-61c9-92d7-9773c190e6ca.htm"&gt;TwoJointIKSolver&lt;/a&gt; class of &lt;a href="http://www.digitalrune.com/About/Press/tabid/706/EntryId/108/Physics-Bundle-Updated-New-XNA-Animation-Library-Available.aspx"&gt;DigitalRune Animation.&lt;/a&gt; This IK solver can be used to control an arm or a leg. In the following video the IK solver is used for foot placement:&lt;/p&gt;  &lt;h2&gt;Video&lt;/h2&gt;  &lt;p align="center"&gt;&lt;/p&gt;  &lt;p align="center"&gt;&lt;iframe height="272" src="http://www.youtube.com/embed/z-JpNCPUS2U?rel=0" frameborder="0" width="425" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;h2&gt;Description&lt;/h2&gt;  &lt;p&gt;…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/4/Default.aspx">Animation</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/112/Inverse-Kinematics-in-XNA-Foot-IK-Solver.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/112/Inverse-Kinematics-in-XNA-Foot-IK-Solver.aspx</guid>
      <pubDate>Tue, 26 Jul 2011 19:12:52 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=112</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/47/Default.aspx">DigitalRune Animation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/5/Default.aspx">Animation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/48/Default.aspx">Inverse Kinematics</blog:tag>
    </item>
    <item>
      <title>Inverse Kinematics in XNA: Look-At Inverse Kinematics Solver</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/111/Inverse-Kinematics-in-XNA-Look-At-Inverse-Kinematics-Solver.aspx</link>
      <description>&lt;p&gt;The &lt;a href="http://www.digitalrune.com/About/Press/tabid/706/EntryId/108/Physics-Bundle-Updated-New-XNA-Animation-Library-Available.aspx"&gt;DigitalRune Animation library&lt;/a&gt; contains several inverse kinematics (IK) controllers that can be used to procedurally animate a 3D character. This blog post demonstrates the &lt;a href="http://www.digitalrune.com/Documentation/?topic=html/108645c6-2245-9605-ce89-eb0a77e2e51a.htm"&gt;Look-At IK solver&lt;/a&gt;. So, have a look:&lt;/p&gt;  &lt;h2&gt;Video&lt;/h2&gt;  &lt;p align="center"&gt;&lt;/p&gt;  &lt;p align="center"&gt;&lt;iframe height="272" src="http://www.youtube.com/embed/jzDCvlWvhfY?rel=0" frameborder="0" width="425" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;h2&gt;Description&lt;/h2&gt;  &lt;p&gt;…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/4/Default.aspx">Animation</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/111/Inverse-Kinematics-in-XNA-Look-At-Inverse-Kinematics-Solver.aspx#Comments</comments>
      <slash:comments>2</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/111/Inverse-Kinematics-in-XNA-Look-At-Inverse-Kinematics-Solver.aspx</guid>
      <pubDate>Mon, 25 Jul 2011 14:44:23 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=111</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/47/Default.aspx">DigitalRune Animation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/5/Default.aspx">Animation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/48/Default.aspx">Inverse Kinematics</blog:tag>
    </item>
    <item>
      <title>Changes in DigitalRune Game UI v1.0Alpha2</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/110/Changes-in-DigitalRune-Game-UI-v1-0Alpha2.aspx</link>
      <description>&lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 8px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="Complex-ToolTip" border="0" alt="Complex-ToolTip" align="right" src="/Portals/0/Blog/Files/11/110/Windows-Live-Writer-5d726fc65021_7F39-Complex-ToolTip_8.jpg" width="204" height="136" /&gt;Together with yesterday’s update we have also put a new version of &lt;strong&gt;DigitalRune Game UI&lt;/strong&gt; online. Below you can find a list of a few things that have changed.&lt;/p&gt;  &lt;h2&gt;Support for Animations&lt;/h2&gt;  &lt;p&gt;The most important – though maybe not obvious – change is that all GUI controls can now be animated using our new &lt;strong&gt;DigitalRune Animation&lt;/strong&gt; library. Properties such as foreground color, background color, x, y, width, height, opacity, etc. can easily be controlled using animations. A new sample is included which demonstrates some of the possibilities.&lt;/p&gt;  &lt;p&gt;…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/110/Changes-in-DigitalRune-Game-UI-v1-0Alpha2.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/110/Changes-in-DigitalRune-Game-UI-v1-0Alpha2.aspx</guid>
      <pubDate>Fri, 22 Jul 2011 12:56:00 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=110</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/6/Default.aspx">XNA</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/40/Default.aspx">DigitalRune Game UI</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/41/Default.aspx">GUI</blog:tag>
    </item>
    <item>
      <title>New XNA Animation library is packed with features!</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/105/New-XNA-Animation-library-is-packed-with-features.aspx</link>
      <description>&lt;p&gt;We are about to release the first (alpha) version of our new animation library for XNA: &lt;strong&gt;DigitalRune Animation&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;I am currently working on the documentation and have just finished writing the summary of all features. This library is packed with features! I dare to say that this is the most comprehensive animation library for .NET and XNA to date.&lt;/p&gt;  &lt;p&gt;(I am personally really excited about this new product. It is the result of months – actually years – of research and hard work.)&lt;/p&gt;  &lt;h2&gt;Features in DigitalRune Animation&lt;/h2&gt;  &lt;p&gt;…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/4/Default.aspx">Animation</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/105/New-XNA-Animation-library-is-packed-with-features.aspx#Comments</comments>
      <slash:comments>6</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/105/New-XNA-Animation-library-is-packed-with-features.aspx</guid>
      <pubDate>Thu, 14 Jul 2011 12:08:13 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=105</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/5/Default.aspx">Animation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/4/Default.aspx">.NET</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/6/Default.aspx">XNA</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/47/Default.aspx">DigitalRune Animation</blog:tag>
    </item>
    <item>
      <title>XNA GUI Animation Test</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/104/XNA-GUI-Animation-Test.aspx</link>
      <description>&lt;p&gt;The current alpha release of the &lt;a href="http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/93/DigitalRune-Game-UI-Alpha-Version-Available.aspx"&gt;DigitalRune Game UI&lt;/a&gt; does not not have built-in support for animations. This will change when we release our DigitalRune Animation library. Here is a preview video of an XNA application with animated GUI controls: &lt;/p&gt;  &lt;p align="center"&gt;&lt;iframe height="272" src="http://www.youtube.com/embed/7WOjmrKb0-c?rel=0" frameborder="0" width="425" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href=http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/104/XNA-GUI-Animation-Test.aspx&gt;More ...&lt;/a&gt;</description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/4/Default.aspx">Animation</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/104/XNA-GUI-Animation-Test.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/104/XNA-GUI-Animation-Test.aspx</guid>
      <pubDate>Wed, 13 Jul 2011 12:19:41 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=104</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/40/Default.aspx">DigitalRune Game UI</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/5/Default.aspx">Animation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/47/Default.aspx">DigitalRune Animation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/6/Default.aspx">XNA</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/41/Default.aspx">GUI</blog:tag>
    </item>
    <item>
      <title>Creating a New UI Theme for the DigitalRune Game UI</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/103/Creating-a-New-UI-Theme-for-the-DigitalRune-Game-UI.aspx</link>
      <description>&lt;p&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="ControlsSampe-with-BlendBlue-Theme" border="0" alt="ControlsSampe-with-BlendBlue-Theme" align="right" src="/Portals/0/Blog/Files/11/103/Windows-Live-Writer-Creating-a-New-UI-Theme-for-the-DigitalR_8DA0-ControlsSampe-with-BlendBlue-Theme_5.png" width="117" height="175" /&gt;The &lt;a href="http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/93/DigitalRune-Game-UI-Alpha-Version-Available.aspx"&gt;DigitalRune Game UI&lt;/a&gt; is a very flexible XNA GUI library that can be used in games for Windows, Xbox 360 and Windows Phone 7. The library can be used to create a simple menu in a console game or a complex GUI in a game editor. &lt;/p&gt;  &lt;p&gt;It contains several predefined UI themes. Yesterday, we have created a new theme that will be included in the next release. This blog post shows the necessary steps to create a new UI theme. &lt;/p&gt;  &lt;p&gt;…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/103/Creating-a-New-UI-Theme-for-the-DigitalRune-Game-UI.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/103/Creating-a-New-UI-Theme-for-the-DigitalRune-Game-UI.aspx</guid>
      <pubDate>Tue, 12 Jul 2011 12:15:57 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=103</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/6/Default.aspx">XNA</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/40/Default.aspx">DigitalRune Game UI</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/41/Default.aspx">GUI</blog:tag>
    </item>
    <item>
      <title>CSS Syntax Highlighting in the DigitalRune Text Editor Control</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/102/CSS-Syntax-Highlighting-in-the-DigitalRune-Text-Editor-Control.aspx</link>
      <description>&lt;p&gt;Richard Moss (&lt;a title="http://cyotek.com/" href="http://cyotek.com/"&gt;http://cyotek.com/&lt;/a&gt;) has written a very good article about how to add CSS syntax highlighting to the &lt;a href="http://www.digitalrune.com/Products/TextEditorControl/Overview.aspx"&gt;DigitalRune Text Editor Control&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Check it out: &lt;a href="http://cyotek.com/blog/css-syntax-highlighting-in-the-digitalrune-text-editor-control"&gt;CSS Syntax Highlighting in the DigitalRune Text Editor Control (by cyotek.com&lt;/a&gt;)&lt;/p&gt;&lt;br /&gt;&lt;a href=http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/102/CSS-Syntax-Highlighting-in-the-DigitalRune-Text-Editor-Control.aspx&gt;More ...&lt;/a&gt;</description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/10/Default.aspx">Windows Forms</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/102/CSS-Syntax-Highlighting-in-the-DigitalRune-Text-Editor-Control.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/102/CSS-Syntax-Highlighting-in-the-DigitalRune-Text-Editor-Control.aspx</guid>
      <pubDate>Sun, 10 Jul 2011 14:23:39 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=102</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/4/Default.aspx">.NET</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/45/Default.aspx">Windows Forms</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/46/Default.aspx">Text Editor</blog:tag>
    </item>
    <item>
      <title>Scattered Interpolation using Radial Basis Functions</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/101/Scattered-Interpolation-using-Radial-Basis-Functions.aspx</link>
      <description>&lt;p&gt;&lt;a href="http://www.digitalrune.com/Portals/0/Blog/Files/11/101/Windows-Live-Writer-Scattered-Interpolation--Implementation_11A5D-clip_image00232.gif"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 8px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image00232" border="0" alt="clip_image00232" align="right" src="/Portals/0/Blog/Files/11/101/Windows-Live-Writer-Scattered-Interpolation--Implementation_11A5D-clip_image00232_thumb.gif" width="274" height="59" /&gt;&lt;/a&gt;As shown in the last posts, we can use scattered interpolation for &lt;a href="http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/99/Scattered-Interpolation-ndash-Example-1-Smooth-Height-Fields.aspx"&gt;height field creation&lt;/a&gt; or to &lt;a href="http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/100/Scattered-Interpolation-ndash-Example-2-Interpolation-of-Animation.aspx"&gt;animate a hand model with a data glove&lt;/a&gt;. Now, it is time to dive into the mathematics. Especially, we examine &lt;em&gt;scattered interpolation using radial basis functions&lt;/em&gt;. &lt;/p&gt;  &lt;p&gt;…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/101/Scattered-Interpolation-using-Radial-Basis-Functions.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/101/Scattered-Interpolation-using-Radial-Basis-Functions.aspx</guid>
      <pubDate>Tue, 07 Jun 2011 23:00:00 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=101</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/31/Default.aspx">Mathematics</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/43/Default.aspx">Interpolation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/44/Default.aspx">Scattered Interpolation</blog:tag>
    </item>
    <item>
      <title>Scattered Interpolation &amp;ndash; Example 2: Interpolation of Animation</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/100/Scattered-Interpolation-ndash-Example-2-Interpolation-of-Animation.aspx</link>
      <description>&lt;p&gt;&lt;a href="http://www.digitalrune.com/Portals/0/Blog/Files/11/100/Windows-Live-Writer-Scatter_12B54-Data-Glove_5.png"&gt;&lt;img style="margin: 0px 0px 0px 9px; display: inline; float: right" title="Data-Glove" alt="Data-Glove" align="right" src="/Portals/0/Blog/Files/11/100/Windows-Live-Writer-Scatter_12B54-Data-Glove_thumb_1.png" width="240" height="162" /&gt;&lt;/a&gt;In the last blog post (&lt;a href="http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/99/Scattered-Interpolation-ndash-Example-1-Smooth-Height-Fields.aspx"&gt;Scattered Interpolation – Example 1: Smooth Height Fields&lt;/a&gt;) we introduced the concept of scattered interpolation, how scattered interpolation is supported in DigitalRune Mathematics, and how it can be used to create smooth height fields. Here is another example that shows how useful this technique is. The mathematical details of scattered interpolation will follow in the next blog post.&lt;/p&gt;  &lt;p&gt;…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/4/Default.aspx">Animation</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/100/Scattered-Interpolation-ndash-Example-2-Interpolation-of-Animation.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/100/Scattered-Interpolation-ndash-Example-2-Interpolation-of-Animation.aspx</guid>
      <pubDate>Mon, 06 Jun 2011 12:30:03 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=100</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/31/Default.aspx">Mathematics</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/43/Default.aspx">Interpolation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/44/Default.aspx">Scattered Interpolation</blog:tag>
    </item>
    <item>
      <title>Scattered Interpolation &amp;ndash; Example 1: Smooth Height Fields</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/99/Scattered-Interpolation-ndash-Example-1-Smooth-Height-Fields.aspx</link>
      <description>&lt;p&gt;&lt;em&gt;Scattered Interpolation&lt;/em&gt; is a very useful mathematical method, but it is not widely known among game developers. Once you understand it, it can solve many problems. Creating smooth height fields from random points or smoothly interpolating animations are only two examples. It is definitely worth to dig through a bit of mathematics to add a handy new tool to your toolbox. This tool is also readily available in the &lt;a href="http://www.digitalrune.com/Products/Mathematics/Overview.aspx"&gt;DigitalRune Mathematics&lt;/a&gt; library. &lt;/p&gt;  &lt;p&gt;In this post we are going to look at an examples. In future blog posts, we will look at other examples and explain Scattered Interpolation with all the scary mathematics.&lt;/p&gt;  &lt;p&gt;…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/99/Scattered-Interpolation-ndash-Example-1-Smooth-Height-Fields.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/99/Scattered-Interpolation-ndash-Example-1-Smooth-Height-Fields.aspx</guid>
      <pubDate>Fri, 03 Jun 2011 12:13:20 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=99</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/31/Default.aspx">Mathematics</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/43/Default.aspx">Interpolation</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/44/Default.aspx">Scattered Interpolation</blog:tag>
    </item>
    <item>
      <title>3D Math Conventions</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/98/3D-Math-Conventions.aspx</link>
      <description>&lt;p&gt;Do you multiply matrices and quaternions from the left or from the right? Do you use a left-handed or a right handed coordinate system? How do you define the &lt;em&gt;front-side &lt;/em&gt;of a triangle? What units of measurement do you use? – This blog post explores the math conventions that we use and a few more helpful details…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/98/3D-Math-Conventions.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/98/3D-Math-Conventions.aspx</guid>
      <pubDate>Tue, 31 May 2011 12:18:13 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=98</trackback:ping>
    </item>
    <item>
      <title>Input Handling in XNA Games &amp;ndash; Part 3</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/97/Input-Handling-in-XNA-Games-ndash-Part-3.aspx</link>
      <description>&lt;p&gt;In the last articles (&lt;a href="http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/95/Input-Handling-in-XNA-Games-ndash-Part-1.aspx"&gt;Part 1&lt;/a&gt; and &lt;a href="http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/96/Input-Handling-in-XNA-Games-ndash-Part-2.aspx"&gt;Part 2&lt;/a&gt;), we have introduced our input service and commonly used functions of the input service. In this post we will delve into more advanced functions. We will discuss how we &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;use &lt;em&gt;logical players&lt;/em&gt; to let the user play with any connected controller, &lt;/li&gt;    &lt;li&gt;control the order of input handling and preemption &lt;font style="background-color: #ffffff"&gt;when&lt;/font&gt; several components handle device input, &lt;/li&gt;    &lt;li&gt;allow the player to re-configure the input. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/97/Input-Handling-in-XNA-Games-ndash-Part-3.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/97/Input-Handling-in-XNA-Games-ndash-Part-3.aspx</guid>
      <pubDate>Thu, 19 May 2011 10:44:02 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=97</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/40/Default.aspx">DigitalRune Game UI</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/42/Default.aspx">Input</blog:tag>
    </item>
    <item>
      <title>Input Handling in XNA Games &amp;ndash; Part 2</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/96/Input-Handling-in-XNA-Games-ndash-Part-2.aspx</link>
      <description>&lt;p&gt;&lt;a href="http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/95/Input-Handling-in-XNA-Games-ndash-Part-1.aspx"&gt;In the last post&lt;/a&gt;, we introduced the (still empty) input service interface. Now it is time to add a few functions. This blog post describes&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;how to detect button clicks and double-clicks, &lt;/li&gt;    &lt;li&gt;how to add key repetition for held down keys, &lt;/li&gt;    &lt;li&gt;how to enable mouse centering for relative mouse input.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/96/Input-Handling-in-XNA-Games-ndash-Part-2.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/96/Input-Handling-in-XNA-Games-ndash-Part-2.aspx</guid>
      <pubDate>Thu, 12 May 2011 08:37:14 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=96</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/40/Default.aspx">DigitalRune Game UI</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/42/Default.aspx">Input</blog:tag>
    </item>
    <item>
      <title>Input Handling in XNA Games &amp;ndash; Part 1</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/95/Input-Handling-in-XNA-Games-ndash-Part-1.aspx</link>
      <description>&lt;p&gt;&lt;img style="margin: 0px 0px 0px 8px; display: inline; float: right" align="right" src="/Documentation/media/Game.Input.png" width="240" height="195" /&gt;XNA makes input handling very easy. It provides one static class for each input device: &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.input.keyboard.aspx"&gt;Keyboard&lt;/a&gt;, &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.input.mouse.aspx"&gt;Mouse&lt;/a&gt;, and &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.input.gamepad.aspx"&gt;GamePad&lt;/a&gt;. In each frame, you can query the device states and examine the current key and button states. But sooner or later you discover that there are a few tasks that are not supported: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;detecting button clicks, &lt;/li&gt;    &lt;li&gt;detecting double-clicks, &lt;/li&gt;    &lt;li&gt;keeping track of which of the 4 controllers the user is using,&lt;/li&gt;    &lt;li&gt;making the controls configurable,&lt;/li&gt;    &lt;li&gt;and more.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This becomes especially apparent when you create a game with a complex user interface (windows, text boxes, etc.). &lt;/p&gt;  &lt;p&gt;And to be clear: It is ok that these tasks are not supported because the XNA Framework is not a game engine! &lt;/p&gt;  &lt;p&gt;While creating our XNA GUI library (see &lt;a href="http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/93/DigitalRune-Game-UI-Alpha-Version-Available.aspx"&gt;DigitalRune Game UI&lt;/a&gt;), we have identified several commonly needed tasks and packed them into an input service. This and the next blog posts describe our input service design.&lt;/p&gt;  &lt;p&gt;…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/95/Input-Handling-in-XNA-Games-ndash-Part-1.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/95/Input-Handling-in-XNA-Games-ndash-Part-1.aspx</guid>
      <pubDate>Tue, 10 May 2011 15:16:47 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=95</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/40/Default.aspx">DigitalRune Game UI</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/42/Default.aspx">Input</blog:tag>
    </item>
    <item>
      <title>DigitalRune Game UI (Alpha Version) Available!</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/93/DigitalRune-Game-UI-Alpha-Version-Available.aspx</link>
      <description>&lt;p&gt;&lt;img style="margin: 0px 0px 0px 8px; display: inline; float: right" title="ThemeAero" alt="ThemeAero" align="right" src="/Portals/0/Blog/Files/11/93/Windows-Live-Writer-9d4c58ffd3ce_D694-ThemeAero_5.png" width="196" height="212" /&gt;The &lt;strong&gt;DigitalRune Game UI&lt;/strong&gt; package is a set of .NET libraries that help to &lt;em&gt;handle device input &lt;/em&gt;and &lt;em&gt;create graphical user interfaces (GUIs) in XNA&lt;/em&gt;. The libraries support Windows, Xbox 360 and Windows Phone 7. The GUI can be controlled using mouse, keyboard, gamepad or touch input.&lt;/p&gt;  &lt;p&gt;With the DigitalRune Game UI you can create a simple game menu for your Xbox 360 or Windows Phone 7 game. Or, you can create a complex user interface for your MMORPG or your game editor. The GUI can be a normal 2D user interface, but is also possible to project the GUI onto 3D surfaces to create in-game user interfaces.&lt;/p&gt;  &lt;p&gt;…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/93/DigitalRune-Game-UI-Alpha-Version-Available.aspx#Comments</comments>
      <slash:comments>4</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/93/DigitalRune-Game-UI-Alpha-Version-Available.aspx</guid>
      <pubDate>Fri, 06 May 2011 12:57:38 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=93</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/40/Default.aspx">DigitalRune Game UI</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/4/Default.aspx">.NET</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/6/Default.aspx">XNA</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/41/Default.aspx">GUI</blog:tag>
    </item>
    <item>
      <title>Character Controller Improvements</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/92/Character-Controller-Improvements.aspx</link>
      <description>&lt;p&gt;We have made several improvements to our 3D character controller, which we want to discuss in this post. (Reminder: A &lt;em&gt;character controller &lt;/em&gt;is the game module that computes the movement of a player character, including walking, jumping, climbing, etc.)&lt;/p&gt;  &lt;p&gt;Following video shows the new character controllers in action. (The code is included in the &lt;a href="http://www.digitalrune.com/Downloads.aspx"&gt;DigitalRune Physics Bundle&lt;/a&gt;).&lt;/p&gt;  &lt;p align="center"&gt;&lt;iframe title="YouTube video player" height="269" src="http://www.youtube.com/embed/LJp2NnKj1X4?rel=0" frameborder="0" width="425" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;h2&gt;Changes &amp; Source Code&lt;/h2&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;p&gt;…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/6/Default.aspx">Physics</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/92/Character-Controller-Improvements.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/92/Character-Controller-Improvements.aspx</guid>
      <pubDate>Thu, 14 Apr 2011 15:27:11 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=92</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/23/Default.aspx">DigitalRune Physics</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/12/Default.aspx">Character Controller</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/6/Default.aspx">XNA</blog:tag>
    </item>
    <item>
      <title>Car Physics for 3D Games</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/91/Car-Physics-for-3D-Games.aspx</link>
      <description>&lt;p&gt;We have recently added 3D vehicle physics to our DigitalRune Physics library. In this post we will explain how the car physics works, so that you can either create your own car physics, or you can understand and tune the car physics that comes with our libraries.&lt;/p&gt;  &lt;h2&gt;Our Goal&lt;/h2&gt;  &lt;p&gt;Let’s have a look at what we want to achieve. Following Vehicle Sample is an XNA example project that is included in the DigitalRune Physics Bundle:&lt;/p&gt;  &lt;p align="center"&gt;&lt;iframe title="YouTube video player" height="349" src="http://www.youtube.com/embed/u0kZiti67h4" frameborder="0" width="425" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;h2&gt;Requirements&lt;/h2&gt;  &lt;p&gt;…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/6/Default.aspx">Physics</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/5/Default.aspx">Collision Detection</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/91/Car-Physics-for-3D-Games.aspx#Comments</comments>
      <slash:comments>1</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/91/Car-Physics-for-3D-Games.aspx</guid>
      <pubDate>Mon, 11 Apr 2011 17:08:46 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=91</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/39/Default.aspx">Vehicle Physics</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/23/Default.aspx">DigitalRune Physics</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/6/Default.aspx">XNA</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/3/Default.aspx">Physics</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/13/Default.aspx">Convex Hull</blog:tag>
    </item>
    <item>
      <title>DigitalRune Helper Library: Multithreading in XNA</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/89/DigitalRune-Helper-Library-Multithreading-in-XNA.aspx</link>
      <description>&lt;p&gt;The .NET Framework 4 contains the &lt;a href="http://msdn.microsoft.com/en-us/library/dd537609.aspx"&gt;Task Parallel Library (TPL)&lt;/a&gt;. It introduces the concept of &lt;em&gt;tasks&lt;/em&gt;. Tasks represent asynchronous operations that can be executed concurrently. Developers no longer have to manage threads or thread pool work items directly. The library provides a higher-level API for writing multi-threaded application or games. The only negative thing we can say about the TPL is that it is not supported on the .NET Compact Framework and is therefore not available on the Xbox 360 (or the WP7).&lt;/p&gt;  &lt;p&gt;When we added multithreading support for our libraries, we looked for an easy-to-use, cross-platform threading library. After evaluating a lot of solutions we found the &lt;a href="http://paralleltasks.codeplex.com/"&gt;ParallelTasks&lt;/a&gt; library on &lt;a href="http://www.codeplex.com/"&gt;CodePlex&lt;/a&gt;. The library is a lightweight replacement for the TPL. It offers all relevant features such as …&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/5/Default.aspx">Collision Detection</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/6/Default.aspx">Physics</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/89/DigitalRune-Helper-Library-Multithreading-in-XNA.aspx#Comments</comments>
      <slash:comments>5</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/89/DigitalRune-Helper-Library-Multithreading-in-XNA.aspx</guid>
      <pubDate>Wed, 23 Mar 2011 18:06:09 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=89</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/4/Default.aspx">.NET</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/6/Default.aspx">XNA</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/38/Default.aspx">Multithreading</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/20/Default.aspx">DigitalRune Geometry</blog:tag>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/23/Default.aspx">DigitalRune Physics</blog:tag>
    </item>
    <item>
      <title>DigitalRune Helper Library: Hierarchical Profiler</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/88/DigitalRune-Helper-Library-Hierarchical-Profiler.aspx</link>
      <description>&lt;p&gt;&lt;img style="margin: 0px 6px; display: inline; float: right" title="image_thumb2" alt="image_thumb2" align="right" src="/Portals/0/Blog/Files/11/88/Windows-Live-Writer-4016c6985ddc_CDD3-image_thumb2_3.png" width="240" height="140" /&gt;The new version of the &lt;a href="http://www.digitalrune.com/Documentation/?topic=html/dc44c3a5-8545-4253-9da1-62258a00607c.htm"&gt;DigitalRune Helper Library&lt;/a&gt; (DigitalRune.dll, which is part of DigitalRune Physics Bundle) has not 1 but 2 profiler classes. The “simple profiler” class was introduced in the &lt;a href="http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/87/A-Simple-Profiler-Class.aspx"&gt;previous blog post&lt;/a&gt;. In this blog post, we talk about the second profiler, which is a “hierarchical profiler”. It was inspired by the article &lt;a href="http://www.amazon.com/gp/product/1584502339/ref=as_li_ss_tl?ie=UTF8&amp;tag=digitalcom-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1584502339"&gt;Real-Time Hierarchical Profiling (Game Programming Gems 3)&lt;/a&gt;&lt;img style="border-bottom: medium none; border-left: medium none; margin: 0px; border-top: medium none; border-right: medium none" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=&amp;l=as2&amp;o=1&amp;a=1584502339" width="1" height="1" /&gt;.&lt;/p&gt;  &lt;p&gt;Do we really need another profiler class? – Yes, really! This class has slightly different goals. The main goal is to measure the timing of nested method calls. This is extremely helpful in many applications – in particular if you need to optimize your game loop. An important difference between the simple profiler and the hierarchical profiler is that the hierarchical profiler does not work across multiple threads. That’s why we still need the simple profiler. The simple profiler can be used to collect values and to profile code in multi-threaded scenarios.&lt;/p&gt;  &lt;p&gt;…&lt;/p&gt;    </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/7/Default.aspx">XNA</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/88/DigitalRune-Helper-Library-Hierarchical-Profiler.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/88/DigitalRune-Helper-Library-Hierarchical-Profiler.aspx</guid>
      <pubDate>Tue, 15 Mar 2011 18:49:47 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=88</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/37/Default.aspx">Profiling</blog:tag>
    </item>
    <item>
      <title>DigitalRune Helper Library: Simple Profiler</title>
      <link>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/87/DigitalRune-Helper-Library-Simple-Profiler.aspx</link>
      <description>&lt;p&gt;&lt;img style="margin: 0px 6px 6px; display: inline; float: right" title="Profiler-Class-Diagram" alt="Profiler-Class-Diagram" align="right" src="/Portals/0/Blog/Files/11/87/Windows-Live-Writer-4a7fbe9d68c9_BCDD-Profiler-Class-Diagram_3.png" width="240" height="127" /&gt;Here is a short description of a new &lt;a href="http://www.digitalrune.com/Documentation/?topic=html/e356680a-750a-d33c-897e-560994e93c71.htm"&gt;Profiler class&lt;/a&gt; that comes with the new release of the &lt;a href="http://www.digitalrune.com/Documentation/?topic=html/dc44c3a5-8545-4253-9da1-62258a00607c.htm"&gt;DigitalRune Helper Library&lt;/a&gt; (DigitalRune.dll, which is part of DigitalRune Physics Bundle).&lt;/p&gt;  &lt;h2&gt;Simple Profiler Features&lt;/h2&gt;  &lt;p&gt;The Profiler class provides following features:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Measure code execution time. &lt;/li&gt;    &lt;li&gt;Collect interesting values, like “How many collisions happened in this frame?”, “How many iterations did this algorithm make?”, etc. &lt;/li&gt;    &lt;li&gt;Compute minimum, average and maximum values. &lt;/li&gt;    &lt;li&gt;Thread-safety. &lt;/li&gt;    &lt;li&gt;Do not influence performance in release builds – only in profiling builds of the game. &lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;Overview&lt;/h2&gt;  &lt;p&gt;…&lt;/p&gt;  </description>
      <author />
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/1/Default.aspx">.NET Framework</category>
      <category domain="http://www.digitalrune.com/Support/Blog/tabid/719/CatID/3/Default.aspx">Game Programming</category>
      <comments>http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/87/DigitalRune-Helper-Library-Simple-Profiler.aspx#Comments</comments>
      <slash:comments>0</slash:comments>
      <guid isPermaLink="true">http://www.digitalrune.com/Support/Blog/tabid/719/EntryId/87/DigitalRune-Helper-Library-Simple-Profiler.aspx</guid>
      <pubDate>Thu, 10 Mar 2011 17:56:44 GMT</pubDate>
      <trackback:ping>http://www.digitalrune.comDesktopModules/BlogTrackback.aspx?id=87</trackback:ping>
      <blog:tag blog:url="http://www.digitalrune.com/Support/Blog/tabid/719/TagID/37/Default.aspx">Profiling</blog:tag>
    </item>
  </channel>
</rss>
