Simple Asset Manager for MVC

January 25, 2012 at 12:23 PMDustin Horne

Lately I've been using a lot of jQuery and other custom javascript in my projects.  I like to use external CDNs when possible to load my script files.  In particular, I like to use the asp.net CDN for use with jQuery.  For much of this work I can simply put my script references in the layout pages, however there are times when I want specific scripts for specific pages.  There are also times when I want to be able to upgrade a script to a newer version.  This may require modifying multiple views.  Additionally, it would require modifying my HTML/Razor for at least my layout view and re-uploading it to the server. More...

Posted in: MVC (ASP .NET)

Tags: , , ,

Getting Color Data for a Texture2D in Silverlight 5 XNA

December 28, 2011 at 9:41 AMDustin Horne

I decided to finish out the year by converting my XNA Terrain series to work with Silverlight 5 and XNA but during the process of converting I ran into an interesting issue.  The Texture2D.GetData() method is oddly missing from the Silverlight 5 XNA implementation.  I came across several posts around the web asking for a workaround but found no solution so I decided to develop my own. More...

Posted in: Silverlight | XNA 4.0

Tags: , , ,

AJAX File Uploads with jQuery and MVC 3

November 16, 2011 at 2:32 PMDustin Horne

Recently I was working on a project that required upload of images.  I wanted to upload the images AJAX style without refreshing the page and thought jQuery would be a good fit.  Using jQuery to post standard forms is extremely simple, but when posting multi-part forms for uploading files it's not so intuitive.  This is due to browser security restrictions and sandboxing.  Today I'm going to show you how to fake an asynchronous upload without reloading the page and get a result back from the server. More...

Posted in: jQuery | MVC (ASP .NET)

Tags: , , , ,

XNA Terrain with LOD - Part 7: Better Culling With 2D Shapes

October 18, 2011 at 8:33 PMDustin Horne

Introduction

In previous sections of this series I mentioned better culling techniques.  I wasn't going to touch upon any of these until after the series but it continued to eat away at me until I finally decided to do so.  The result was hours and hours of trial and error and a lot of mistakes along the way.  Thanks to community contribution in the AppHub forums I was able to get many of my questions answered or at least get pointed in the right direction.  I ran into several issues along the way, but eventually came up with a working solution.  More...

Posted in: XNA 4.0

Tags: , , ,

XNA Terrain with LOD - Part 6: View Frustrum Culling

October 4, 2011 at 12:02 PMDustin Horne

So far in the terrain series we've learned how to create a heightmap based terrain, leverage a quadtree to navigate our terrain data, and add progressive level of detail by using our quadtree to step away our active vertices as we move further from the camera.  Today we're going to concentrate on view frustrum culling.  We're going to avoid drawing any geometry that is not in view of the camera.  If you haven't read through the first 5 parts of this tutorial you can find them on the Terrain Table of Contents page. More...

Posted in: XNA 4.0

Tags: , , ,

OmahaMTG QuadTree Demo

September 29, 2011 at 5:36 PMDustin Horne

I've made the files availble from tonight's QuadTree presentation at the OmahaMTG .NET user group meeting.  The zip file contains the powerpoint deck as well as a Visual Studio 2010 solution with Silverlight demo app as well as a generic QuadTree.  This was a quick and dirty solution so many things can be improved.  The TreeObject could be converted to a container that holds the actual object you're storing in the tree.  This would eliminate the need for you to inherit from the TreeObject with your objects.  You would simply store them inside the tree object using a Generic List and a TreeObject.Add<T>(T object) method.

For a demo of the QuadTree in action:  http://www.dustinhorne.com/quadtreedemo.html

Download Here

 

Also, check out Brian Legg's introduction to XNA 4.

 

Posted in: Silverlight

Tags:

XNA Terrain with LOD - Part 5: LODing the Terrain

September 28, 2011 at 2:45 PMDustin Horne

Up to this point in the series we have accomplished a few major milestones.  We've created a set of data objects to hold the information needed by our terrain, we've constructed a quad tree to allow efficient traversal through different portions of our terrain, and we've implemented the logic to draw our terrain at different levels of detail.  In this part of the series we're going to explore adding LOD to our terrain.  The level of detail code we're going to implement will be simple and linear. 

Only the deepest node containing our camera will be drawn at highest detail and it will step away the detail one unit at a time as it gets further from the camera.  As you'll soon see, this leads to some decent but less desirable results.  Terrain drawn in the distance will be subject to some visible "popping" as the LOD transition changes and vertices not visible to the user will still be drawn, however we will address these issues in the next parts of the series.  For now, our goal is to simply implement a system that allows a transition of detail from our target point outward.  More...

Posted in: XNA 4.0

Tags: , , ,

HDC (Heartland Developer's Conference) 2011

September 8, 2011 at 5:43 PMDustin Horne

I just wanted to post a quick update.  I'm on a bit of a hiatus from my XNA Terrain tutorial series for a few days as I'm attending the Heartland Developer's Conference in Omaha, NE.  One more day remains and so far the conference has been outstanding.  I had the pleasure of having lunch with Scott Hanselman today as well as attending his keynote and off-the-cuff presentations.  There are some exciting things coming out of the Microsoft stack soon and I'm sure I'll be blogging about them as I dive into them.

If you've never been to HDC I would highly recommend it.  The atmosphere is fantastic, the networking opportunities are phenomenal and the presentations are both informative and entertaining.  If you've never had a chance to see Hanselman speak I would highly recommend that as well.  He has a real knack for providing great information in a humorous and entertaining manner.  Here's a picture I had taken with Scott outside of the conference center:

 

Scott Hanselman and I at HDC 2011

Posted in:

Tags:

XNA Terrain with LOD - Part 4: Drawing the Base Terrain

August 30, 2011 at 12:58 AMDustin Horne

UPDATE:  If you've been following this terrain series you have probably seen some bugs and a few things that I've overlooked.  I spent the last few days following my own tutorial, updating the series text, and fixing and refactoring the code.  If you don't want to start the tutorial over just to find the few changes I've made, you can download the complete solution for parts 1 through 4 here: Terrain Solution Parts 1 through 4

In the first three parts of this tutorial we examined creating the basic data structures to hold our terrain data and structuring our QuadTree.  In this part of the tutorial I'm going to show you how to activate different depths of the terrain and draw it based on which vertices are active.  We won't get into dynamic LOD until the next section, but when we do you'll have a good idea of how we're going to output our indices and draw our specific triangles.  If you haven't already read the first three sections of this tutorial, please visit the table of contents page and check them out. More...

Posted in: XNA 4.0

Tags: , , , , , , ,

XNA Terrain with LOD - Part 3: Structuring the QuadTree

August 28, 2011 at 4:30 PMDustin Horne

In Part 2 of the terrain series we looked at how to build the basic data storage containers that we'll be using to hold our vertex related data.  In this segment we're going to examine the QuadTree we'll be using to manage our terrain.  The QuadTree aids us in efficiently determining where we are in the terrain.  We'll also be using it to determine which individual vertices to display and which groups of vertices will be active. More...

Posted in: XNA 4.0

Tags: , , ,