XNA Tutorials, Samples and Thoughts
- February 2012 (1)
- September 2011 (1)
- June 2011 (2)
- March 2011 (1)
- February 2011 (1)
- January 2011 (2)
- December 2010 (1)
- July 2010 (1)
- May 2010 (1)
- April 2010 (1)
- November 2009 (1)
- October 2009 (2)
- September 2009 (2)
- August 2009 (1)
- July 2009 (1)
- June 2009 (4)
- April 2009 (3)
- March 2009 (2)
- February 2009 (2)
- January 2009 (5)
- December 2008 (1)
- November 2008 (2)
- October 2008 (4)
- September 2008 (5)
- August 2008 (1)
- July 2008 (7)
- June 2008 (1)
- May 2008 (4)
- April 2008 (3)
- March 2008 (3)
- February 2008 (4)
- January 2008 (2)
- Small pre-pre-beta shadow mapping lirary (37)
- Working on shadows… (34)
- My technique for the shader-based dynamic 2D shadows (34)
- 2D Skeletal Animations (25)
- April Sample Online! (20)
- School Projects with XNA (17)
- Mass Effect Dialogue Sample (17)
- Welcome! (14)
- My experience with Toon Boom Studio (13)
- Adding softness to shadows (12)
recovery act internet,broadband recovery act: recovery act internet,broadband recovery act... [...]2D Skeletal Animations[...]...
gennicknyt: I think it's good idea to do it
entrada del sabio: entrada del sabio... [...]2D Skeletal Animations[...]...
загрузки: загрузки... [...]2D Skeletal Animations[...]...
Exercises To Lose Man Breasts Fast: Exercises To Lose Man Breasts Fast... [...]2D Skeletal Animations[...]...
I hate shadows! | Void Star: [...] follow Catalin‘s crazy idea without trying to understand [...]
Steve Lillis: Hi Catalin, First of all; thank you! This is the only solution I have seen of such elegance made...
Hieronimus.le@hotmail.com: thanks, i've been looking at it, and it has some interesting things. Your solution is more...

about 3 years ago
Hey man, Your tutorials on terrain through GPU are great, I was wondering if you can post some sort of GRID SETUP for geoClipmap or optimize terrain performance tutorial for the terrain part.
Thanks
about 3 years ago
I did not work with geoclipmaps so far, so I cannot help you on that one. Besides, the popular form of geoclipmaps (as seen on the pages I linked to) on the GPU using vertex textures is patented for now.
Sorry.
about 3 years ago
Hello. Could you tell me if is it possible to get somehow terrain height Y at position X,Y from shader or from morph texture? I was thinking about using your terrain in my game but I have to find somehow collisions?
Cheers
about 3 years ago
Well, you could theoretically do GetData on the morph texture, but I’m not sure how performant that is.
about 3 years ago
In my computor, when I double click the *.sln file, a diagbox is poped-up ,showing that the *.csproj cannot be opend and the project type is not supported by this installation.
My compile enviroment is Microsoft studio 2005, XNA Game Studio 2.0.
I have also setup Microsoft Visual C# 2008 and XNA Game Studio 3.0
None of these can open your project
I have one XNA 2.0 demo project,and it is OK.
about 3 years ago
Your vertex textures work well for smaller terrains like in your example but how about much larger ones (4097×4097)? I have the foundation for an answer but I can’t get it to work yet.
Part of the idea is to have the nodes of a quadtree maintain a Rectangle structure so that the leaves can have their own subset of the main texture:
private Texture2D BuildTex()
{
Rectangle texArea = _region.Augment(1,1);
int xl = texArea.Width;
int yl = texArea.Height;
Color[] data = new Color[xl*yl];
_root.Map.GetData(0, texArea, data, 0, data.Length);
Texture2D tex = new Texture2D(_root.Game.GraphicsDevice, xl, yl);
tex.SetData(data);
return tex;
}
QuadTerrain _root is the parent tree object reference for the nodes, and it maintains a Game reference and the main Texture2D Map. _region is the Rectangle and the Augment method is a custom extension method:
public static Rectangle Augment(this Rectangle r, int dx, int dy)
{
return new Rectangle(r.X, r.Y, r.Width + dx, r.Height + dy);
}
The patchwork textures need common edges to stitch together properly.
During update each node checks itself for frustum visibility:
QuadNode:
public virtual void Update(BoundingFrustum cone)
{
_enabled = cone.Intersects(_boundary);
if (_enabled)
for (int c = 0; c < 4; c++) _children.Update(cone);
}
QuadLeaf :: QuadNode:
public override void Update(BoundingFrustum cone)
{
_enabled = cone.Intersects(_boundary);
}
The QuadTerrain, as a GameComponent, sets things in motion:
public override void Update(GameTime gameTime)
{
_root.Update(_cam.Frustum);
base.Update(gameTime);
}
My problem is that the leaves are not referencing separate pieces of the map as intended but are all showing the same part, and that part varies with camera location and direction! Each leaf has a separate effect cloned from the parent in QuadTerrain and its own texture clipped from the original, so this should not happen.
The frustum culling works, BTW.
I originally wrote because I was getting no terrain at all, but adding the Update method to QuadTerrain fixed that.
I have way too much material for a more detailed disclosure right here. I can send you what I have minus the big map textures (25 MB and nearly incompressible), but you will need to email me with a return address first.
about 2 years ago
the Ziggyware link is broken…
about 2 years ago
Thats because ziggyware is gone, its been down for a while now and apparently for good
about 2 years ago
Sorry.
I’ll try to repost it on my site when I get some free time.
about 2 years ago
Hi,
I think I really need your VTF article.
Since I googled and can’t found reliable article abaut VTF in XNA, especially abaout implementing VTF in particle rendering.
I hope you repost your article soon.
Thank you.
Regards
about 2 years ago
This looked good, hope you get time to repost this.
about 1 year ago
I found the original files here: http://catalinzima.spaces.live.com/blog/cns!3D9ECAE1F2DC56EF!267.entry
It’s on an old xna version, making it hard to understand and use. Hopefully you’ll find the time to upgrade those.
about 1 year ago
http://web.archive.org/web/20080102024317/http://www.ziggyware.com/readarticle.php?article_id=127