XNA for C#
DirectX 9 for C#
DirectX 9 for C++
DirectX 9 for VB
My XNA Book
       Go to section on this site

Additional info

Latest Forum posts

 Account settings
  Posted by: Anonymous
  When: 07/05/2014 at 09:48:39

 forced subtitle
  Posted by: Applefly
  When: 07/05/2014 at 06:00:48

 convert DVD into PMS
  Posted by: Applefly
  When: 07/05/2014 at 05:55:25

 DVD to Digital Copy easily
  Posted by: VIKIVannessa
  When: 05/05/2014 at 06:52:29

 DVD on Xbox 360/Xbox One Console
  Posted by: VIKIVannessa
  When: 05/05/2014 at 06:51:47

 Extract .Srt Subtitles
  Posted by: Applefly
  When: 04/05/2014 at 03:54:38

 Encode Movie collection
  Posted by: Applefly
  When: 04/05/2014 at 03:52:41

 Convert DVD to WMV
  Posted by: Applefly
  When: 29/04/2014 at 05:53:50

 rip DVDs into digital files
  Posted by: Applefly
  When: 29/04/2014 at 05:51:20

 iTunes movies/music to Kindle Fire
  Posted by: ciciyu80
  When: 29/04/2014 at 05:10:20


XNA Tutorial using C# and HLSL Series 4 – Overview

-- This second part of this series is brand new, so if you encounter any mistake/error, be so kind to report it in the forum. Thanks, riemer --

Welcome to this 4th instalment of my XNA Tutorials for C#. In the first series, we’ve seen how to create a terrain. This Series we’ll go over that again – only this time using a totally different approach. Since we’ve learned (a bit beyond) the basics of HLSL in Series 3, let’s put that knowledge to good use.

How excellent your latest idea for a new game might be, you’ll hardly impress anyone if you can only move some self-drawn crosses or dots over a 2D board. In this Series, we’ll be creating a terrain that you can use immediately as a start for your game. As this series relies heavily on HLSL, you will like to go through Series 3 before you start reading on this one.

Because a terrain looks a lot nicer fullscreen that it does in a window, you can have a look at this fullscreenshot or at this one. And yes, the water moves and the clouds change shape ;)
So, in a nutshell, what will be covered in this series?

  • First-person mouse camera
  • Multitexturing with high resolution textures close to the camera
  • Realistic, moving water with reflections-refractions
  • Bump mapping
  • Specular reflections
  • Perlin noise
  • Shape-changing clouds
  • HLSL cylindrical billboarding
  • Region growing

    During this series you will need to download the following resources:
  • Starting code: Series4Effects.fx
  • Starting code: heightmap.bmp
  • Textured terrain: grass.dds
  • Multitexturing: sand.dds
  • Multitexturing: rocks.dds
  • Multitexturing: snow.dds
  • Skydome: dome.x
  • Skydome: cloudMap.jpg
  • Ripples: waterbump.dds
  • Billboarding: bbEffect.fx
  • Billboarding: tree.dds
  • Region growing: treeMap.jpg

    Before you move on to the first chapter, you can find a few more screenshots below.


    If you appreciate the amount of time I spend creating and updating
    these pages, feel free to donate -- any amount is welcome !

    - Website design & XNA + DirectX code : Riemer Grootjans -
    ©2003 - 2011 Riemer Grootjans
  • Translations

    This site in English
    This site in Korean
    This site in Czech

    Microsoft MVP Award

    2007 - 2011 MVP Award
    DirectX - XNA


    XNA 2.0 Recipes Book (8)
    XNA 3.0 Recipes Book (8)
    Extra Reading (3)
    Matrices: geometrical
    Matrix Mathematics
    Homogenous matrices
    Community Projects (1)
    Tutorials (160)
    XNA 4.0 using C# (89)
    2D Series: Shooters (22)
    3D Series 1: Terrain (13)
    3D Series 2: Flightsim (14)
    3D Series 3: HLSL (18)
    3D Series 4: Adv. terrain (19)
    Starting code
    Mouse camera
    Textured terrain
    Adding detail
    The water technique
    Refraction map
    Reflection map
    Perfect mirror
    The Fresnel term
    Moving water
    Specular highlights
    Region growing
    Billboarding renderstates
    Perlin noise
    Gradient skybox
    Short Tuts (3)
    DirectX using C# (54)
    DirectX using C++ (15)
    DirectX using VB (2)
    -- Expand all --

    Thank you!

    Support this site --
    any amount is welcome !

    Stay up-to-date

    I don't have the time to keep a News section, so stay informed about the updates by clicking on this RSS file!