<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet href="http://rss.icerocket.com/rss.css" type="text/css"?>

<rss version="2.0"><channel>
<title><![CDATA[Riemer's XNA Tutorials]]></title>
<link><![CDATA[http://www.riemers.net]]></link>
<description><![CDATA[The largest set of 3D XNA Tutorials on the net!]]></description>
<ttl><![CDATA[60]]></ttl>
<language>en-us</language>
<generator>IceRocket RSS Builder 1.0 http://rss.icerocket.com</generator>
<item>
<title><![CDATA[Particle Engine]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series2D/Particle_engine.php]]></link><description><![CDATA[The last chapter on 2D Particle systems has been uploaded. The maths contained in this chapter should be fairly easy to fully understand for everyone.]]></description>
<pubDate><![CDATA[Wed, 24 Sep 2008 12:47:44 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[9acc463304cb605108c6f42aa4f10738]]></guid>
</item>
<item>
<title><![CDATA[2D Collision Detection Finished!]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series2D/Putting_CD_into_practice.php]]></link><description><![CDATA[By uploading 2 more chapters, the 2D series now contains fully working collision detection.

Don't be mistaken by the 2D label: this is some pretty advanced stuff. The per-pixel transformed collision detection works on the finest level of detail, no matter which rotation/scaling/transformation has been set on both images. 

I've putten quite some effort in these chapters. If you think some parts deserve some more explanation, let me know in the forum.

Coming next in the 2D series: particle systems!]]></description>
<pubDate><![CDATA[Tue, 16 Sep 2008 15:37:45 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[08054d748d739ba683bf27c9ed51fc20]]></guid>
</item>
<item>
<title><![CDATA[2D Collision Detection Overview]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series2D/Coll_Detection_Overview.php]]></link><description><![CDATA[Finally, we have arrived at the interesting part of 2D game programming!

Now you know everything about rendering your images to the screen, it's time we move over to something more advanced and fun. And there certainly are more advanced things to discuss in 2D game programming, one of them being collision detection.

The 2D per-pixel transformed collision detection mechanism discussed in this series is the most complete kind of 2D collision detection, so you can use it for any 2D game you want to create. As a result, I've spent lots of time in the texts and images of these 3 chapters. 

I want you to give feedback on them, where the explanations could be improved and which images are not fully understandable.

Today I've posted the first chapters, the following 2 chapters will be posted Saturday and Monday.]]></description>
<pubDate><![CDATA[Thu, 11 Sep 2008 15:10:21 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[8d1409d9b21d0333fa76be23c11ec6e3]]></guid>
</item>
<item>
<title><![CDATA[New chapters in the 2D Series]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series2D/Texture_to_Colors.php]]></link><description><![CDATA[The past few days I have uploaded 4 new chapters to the 2D series:

- Smoke trail: a gentle introduction to particles
- Manual texture creation: 2D Array of Colors to Texture2D
- Random terrain: adding smooth randomness using sines
- Texture to Colors: Texture2D to 2D Array of Colors

Enjoy!
]]></description>
<pubDate><![CDATA[Tue, 9 Sep 2008 03:29:23 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[840e6690673fd7978418585d3d830add]]></guid>
</item>
<item>
<title><![CDATA[2 new chapters in the XNA 2D Series]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series2D/Direction_to_Angle.php]]></link><description><![CDATA[Today I've posted 2 new chapters in the XNA 2D series: one that I should have posted yesterday, together with tomorrow's chapter.

Both chapters deal with something quite important in game programming: the relationship between an "angle" and a "direction". This was applied to the rocket, which happens to be a nice example of why and whem you need both.]]></description>
<pubDate><![CDATA[Sat, 30 Aug 2008 07:00:07 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[1fcb11600f6901f20f4c8c6eb4d01f3c]]></guid>
</item>
<item>
<title><![CDATA[Writing text to the screen in XNA]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series2D/Writing_text.php]]></link><description><![CDATA[The last 2 articles are quite basic, but necessary when you want to create your own 2D game since they deal with keyboard input and rendering text to the screen.

By now, the 2D series contains all you need to code a basic 2D game. The 2 following chapters will show how to find a rotation corresponding to an angle and vice versa, demonstrated by our rocket.]]></description>
<pubDate><![CDATA[Wed, 27 Aug 2008 14:07:02 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[b41c6bcb3387a95a269d0b2fff1c3453]]></guid>
</item>
<item>
<title><![CDATA[2D Image Rotation]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series2D/Rotation.php]]></link><description><![CDATA[The latest chapter in the 2D series explains the various ways of rotating a 2D image before it is rendered to the screen.]]></description>
<pubDate><![CDATA[Sat, 23 Aug 2008 15:40:46 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[7cef1c26bf72945a5a5eeac1ad6e9029]]></guid>
</item>
<item>
<title><![CDATA[First 4 chapters of 2D series online!]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series2D/SpriteBatch.Draw.php]]></link><description><![CDATA[8 days ago I promised to release a new article every other day, which makes that today I've uploaded the 4th chapter in the brand new XNA - 2D series.

By now, the series explains in full detail how to 
- start a new XNA project
- import and draw a 2D image
- position, scale and manipulate the colors of this image before rendering it.

I put special efforts in explaining all techniques from the ground up, so everyone should be able to fully understand what's going on.]]></description>
<pubDate><![CDATA[Thu, 21 Aug 2008 15:15:48 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[007ccbfb64051b8970141307d8ef697b]]></guid>
</item>
<item>
<title><![CDATA[Upcoming Series: 2D Game Programming]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/series2d.php]]></link><description><![CDATA[That's right, I'm putting the 3D series on hold for a short time to add some 2D content to the site. There are a few simple reasons:

- more people will find this useful than another advanced 3D series
- almost all 2D programming aspects can be covered in a single series
- it's much easier to write some 2D content!

The second reason already shows that the new series will cover a lot of ground: from the first image, over transformed per-pixel collision detection and 2D particle engines!

And for those of you that are looking for some more advanced 3D topics: there's a book I can highly recommend you ... ;)

Expect a new chapter every other day! ]]></description>
<pubDate><![CDATA[Wed, 13 Aug 2008 16:07:38 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[7b671886d392e54b253ebaaaa6b2c6c8]]></guid>
</item>
<item>
<title><![CDATA[Gradient Skybox]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series4/Gradient_skybox.php]]></link><description><![CDATA[All stories must come to an end - which is ofcourse also true for tutorials.

I have uploaded the final chapter of Series 4, where the 2D Perlin Noise map created earlier is used to add some shape-shifting clouds to our sky. The simple effect also adds a gradient color to our skybox.

Series 4 is now completed. With multitextured terrain, moving, reflecting and refracting water, billboarded trees and shape-shifting clouds it includes some more advanced effects that can be created with XNA in combination with HLSL.

I'll be on a sailing trip the coming week. Expect more news the first week of August!]]></description>
<pubDate><![CDATA[Thu, 24 Jul 2008 11:17:15 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[28a2d837407d87d6dd03abb68c98ec3e]]></guid>
</item>
<item>
<title><![CDATA[Perlin noise]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series4/Perlin_noise.php]]></link><description><![CDATA[Noise is quite important in game programming. Thus far in Series4, we've been using noisemaps to cover our SkyDome, and to grow forests on our terrain.

In this chapter, we see how we can create such noise maps on the fly. Since this is done in HLSL, the calculations are done by the GPU.]]></description>
<pubDate><![CDATA[Mon, 21 Jul 2008 05:48:04 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[a29bbe774cebc945ab9730006fa85cdc]]></guid>
</item>
<item>
<title><![CDATA[Billboarding – 2 Pass Alpha Blending Renderstates]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series4/Billboarding_renderstates.php]]></link><description><![CDATA[When billboarding transparent images, you'll run into trouble as some of your billboards will be hidden by others rendered in front of them.

This chapter explains the origin of this problem, and discusses an elegant solution.]]></description>
<pubDate><![CDATA[Sat, 19 Jul 2008 07:44:28 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[095c31c64ec7b1e230a319f9924bc525]]></guid>
</item>
<item>
<title><![CDATA[Region growing]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series4/Region_growing.php]]></link><description><![CDATA[When creating a game, you'll often need to create a region. An example of this might be the boundaries of a city, or a forest.

This 16th chapter of Series 4 shows how this can be done very easily using a noise map. As an example, a few hundreds of trees are rendered in forest patches.]]></description>
<pubDate><![CDATA[Wed, 16 Jul 2008 15:49:31 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[7a33d2233e3c70806cb56d987f96c4f6]]></guid>
</item>
<item>
<title><![CDATA[HLSL Cylindrical Billboarding]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series4/Billboarding.php]]></link><description><![CDATA[This new entry shows how you can add trees to a terrain. Instead of overloading our graphics card by rendering real 3D trees, we'll simply render a few 2D images. 

There's one catch: our vertex shader needs to manipulate the corners so the image is always facing the camera..]]></description>
<pubDate><![CDATA[Mon, 14 Jul 2008 13:54:46 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[343dddbde89b820a53bde9be8365b83d]]></guid>
</item>
<item>
<title><![CDATA[XNA Series4 - Chapter 14: Specular Highlights]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series4/Specular_highlights.php]]></link><description><![CDATA[After more than a year, I uploaded a brand new chapter to Series 4!

The chapter finalizes the water technique, by adding specular highlights to it. Specular highlights are areas of high reflectivity, such as on water or metal surfaces.

Expect more new chapters every other day!]]></description>
<pubDate><![CDATA[Sat, 12 Jul 2008 17:00:21 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[81f8ace2b75b35388dca7b3ae3662745]]></guid>
</item>
<item>
<title><![CDATA[Updated XNA Series 4 to XNA 2.0]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/series4.php]]></link><description><![CDATA[I finally found the time to update Series 4 to XNA 2.0.
Other than making sure the code is XNA 2.0-compatible, I also adjusted the code so the +Y vector is now the Up direction, as it should be.
Here and there an extended explanation, and a better way of setting the direction of the scrolling waves.

With all XNA code on my site finally updated to XNA 2.0, we're finally ready to finish the 4th series! You can expect 5 more chapters, covering things like specular reflections, billboarding and perlin noise.

Expect a new chapter every other day. Stay tuned!]]></description>
<pubDate><![CDATA[Thu, 10 Jul 2008 15:57:52 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[cd28a850c35dd4e702c965d9108d42c4]]></guid>
</item>
<item>
<title><![CDATA[XNA 2.0 Recipes Published!]]></title>
<link><![CDATA[http://www.riemers.net/eng/recipes.php]]></link><description><![CDATA[My book "XNA 2.0 Game Programming Recipes" has been published!
From today on, you should be able to find it in all specialist computer book stores, as Apress is one of the largest PC book publishers. Probably a faster and cheaper way would be to buy the book through Amazon! Click on the book image at the top-left on my site to go there.

I've also added an accompanying section to my site, discussing the contents of the book. This is also where you can download the code for the book.]]></description>
<pubDate><![CDATA[Thu, 3 Jul 2008 16:07:02 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[a51becf2d8323e9ee82d06fbf35d9cde]]></guid>
</item>
<item>
<title><![CDATA[XNA Series 3: HLSL Intro updated to XNA 2.0]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/series3.php]]></link><description><![CDATA[I've updated my third series of XNA 3D tutorials to XNA 2.0.

The code now (finally) uses the Y axis as Up direction, and the code has been made more robust and consistent.]]></description>
<pubDate><![CDATA[Thu, 12 Jun 2008 16:39:34 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[a3cd832063d1cb49635cb9c68e159bc1]]></guid>
</item>
<item>
<title><![CDATA[XNA Series 2: Flightsim ported to XNA2.0]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/series2.php]]></link><description><![CDATA[I've updated my second series of XNA 3D tutorials to XNA 2.0.

Besides making the code compatible with XNA 2.0, I've added some major adjustments to the Series:
 - extensive use of XNA's BoundingBoxes and BoundingSpheres for automated collision detection
 - +Y as Up axis (instead of +Z as it used to be)
 - new graphics for the 3D City!

I've also added an additional chapter, which adds a small lag to the camera which allows for cooler camera movement.]]></description>
<pubDate><![CDATA[Tue, 27 May 2008 14:46:00 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[7a4e974f59cc68e8bf913fd0d2287dcb]]></guid>
</item>
<item>
<title><![CDATA[Simplified SetUpIndices method]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series1/Terrain_basics.php]]></link><description><![CDATA[I added some names to the indices used in the SetUpIndices method, this should make the method more understandable.

To solve the problems regarding indices on some lower-end graphics cards, a week ago during the upgrade from XNA 1.0 to 2.0 I adjusted the SetUpIndices method so it uses shorts instead of ints to store the indices.
As I can see from some forum posts, there seem to be more people that want to create huge terrains than there are old graphics cards ... so we'll be using ints again.]]></description>
<pubDate><![CDATA[Mon, 19 May 2008 15:39:29 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[ab7c24d3d00fcc35e78ab9afb3b7e126]]></guid>
</item>
<item>
<title><![CDATA[XNA Series 1 ported to XNA2.0]]></title>
<link><![CDATA[www.riemers.net]]></link><description><![CDATA[Finally, I have found the time to port the first XNA series to XNA 2.0. All code has been updated & verified.

Besides the version update, I've made some minor adjustments to the series:
 - I've kept the VertexBuffer and IndexBuffer stuff for the end, as this was only making easy code more difficult.
 - The code now uses the default XNA axes, where the Y axis is the Up direction and the negative Z axis is the Forward direction.
 - The heightmap is now loaded using the default Content Pipeline. This allowed my to drop the ugly .bmp code and makes the project compatible with other image file formats as well.]]></description>
<pubDate><![CDATA[Sat, 10 May 2008 19:05:59 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[5abc6e309399f093cb1b27c8679f1092]]></guid>
</item>
<item>
<title><![CDATA[Series 1 for Directx - C++]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/DirectX/C++/series1.php]]></link><description><![CDATA[Now I've finished the final corrections on my book, I've found some time to update my site!
I'm being helped by Richard Sharpe, who's been porting the final chapters of Series 1 to C++. These chapters have already been ported by Richard:
 - Importing .bmp files
 - Adding colors
 - DirectX Light basics
Stay tuned for many more updates!]]></description>
<pubDate><![CDATA[Wed, 7 May 2008 15:38:35 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[f31dc4e0f4e2ece4c427a8e1323def63]]></guid>
</item>
<item>
<title><![CDATA[The Fresnel]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series4/The_Fresnel_term.php]]></link><description><![CDATA[When you know both the reflective and refractive color for each pixel of the water, how do you find the blending weight?

Also, a dull water color is added for a bit more realism ]]></description>
<pubDate><![CDATA[Mon, 26 Mar 2007 14:17:50 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[cb28577c593ca985f825a3e282817d37]]></guid>
</item>
<item>
<title><![CDATA[Ripples]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series4/Ripples.php]]></link><description><![CDATA[Learn how we can create the illusion of ripples going through our water, all done by the pixel shader!]]></description>
<pubDate><![CDATA[Thu, 22 Mar 2007 14:49:59 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[735d73d8320f3ccc35c37bb407c6d49c]]></guid>
</item>
<item>
<title><![CDATA[Perfect mirror]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series4/Perfect_mirror.php]]></link><description><![CDATA[Have you ever wondered how the rear mirrors are created in a car game? This chapter will show how to create a perfect mirror. As water is some sort of a mirror, it is also the next step of our 4th series.]]></description>
<pubDate><![CDATA[Wed, 21 Mar 2007 13:52:36 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[277ea271b2975d3147f64f6357b8f1f2]]></guid>
</item>
<item>
<title><![CDATA[Reflection Map]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series4/Reflection_map.php]]></link><description><![CDATA[A bit tougher than making a refraction map, this chapter is the next step towards making our water look as realistic as possible.]]></description>
<pubDate><![CDATA[Mon, 19 Mar 2007 13:59:46 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[855be9dd9513d389fe508e71f859b437]]></guid>
</item>
<item>
<title><![CDATA[Clip Planes -- Creating the Refraction Map]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series4/Refraction_map.php]]></link><description><![CDATA[Learn how to create and set User Clip Planes, in this first step to creating realistic looking water by rendering the refraction map into a texture]]></description>
<pubDate><![CDATA[Fri, 16 Mar 2007 05:20:53 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[885d6d3d0db9fc7c36955b794c77c08d]]></guid>
</item>
<item>
<title><![CDATA[Series 4!]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/series4.php]]></link><description><![CDATA[Coding on the 4th series has been finished! Series 4 covers a some more advanced terrain rendering techniques. At this moment, the 7 first tutorials have been published. More to come soon!]]></description>
<pubDate><![CDATA[Thu, 15 Mar 2007 15:29:15 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[0e19a209a942e6e2f5203abba8809d00]]></guid>
</item>
<item>
<title><![CDATA[Series 2 Update: Quaternion tutorials]]></title>
<link><![CDATA[http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series2/Quaternions.php]]></link><description><![CDATA[The dynamics of Series 2 have been updated so it uses quaternions. Sound like something terribly difficult, but it's actually pretty simple and makes our project free of any sin & cos maths. Enables looping the xwing.]]></description>
<pubDate><![CDATA[Thu, 15 Mar 2007 15:18:25 CDT]]></pubDate>
<guid isPermaLink="false"><![CDATA[a443b082dcbefe8e9ca0c0ef966c51dc]]></guid>
</item>
</channel>
</rss>
