Archive for category xna

TechEd 2010 Academic Day Slides

As promised, here are my slides for my presentation on Windows Phone 7 during Academic Day at TechEd 2010.

, , , , , , ,

View Comments

Tech Ed Australia 2010 Day 1

I was recently invited to speak on a pre-day for faculty and students at TechEd Australia, held on the Gold Coast. The plan is to write up a little bit about each day, although it might not be up the same day, depending on internet availability.

So today was Academic Day, in particular, for faculty members, who had been invited to hear about what students want, directly from students. (That was the theme)

A couple of weeks previously, Andrew Parsons (@MrAndyPuppy), the local Academic Developer Evangelist asked me to do a presentation on Windows Phone 7, with a split between the experience promised by Microsoft, and developing for the phone. After I learned that I really cannot do a reasonable phone demo in 10 minutes, I cut it down to a demo of pre-made code.

Either way, some big highlights arose today. I managed to get Andy to let me see and use a developer phone, and I must say, awesome, however I cannot go into specifics, nor can I take photos unfortunately.

The other highlight was the awesome keynote presented by Michael Kordahi (@delic8genius) with a special appearance by August De Los Reyos (@augustdlr) presenting his experiences developing User experiences on the Surface, and even the Windows key on the keyboard. Some awesome demos for a theoretical Foxtel experience (Cable TV in Australia) that uses all devices, including a Surface table (jeez they love that thing). They then showed off the big devices for this year, Kinect and Windows Phone 7, and seeing this in person was really awesome. I cannot wait for next week when I will get to try out a device. (Unfortunately they took the device back to Sydney right after the keynote.)

Photos will follow as I can sort them out, and maybe videos depending on what I’m allowed to post, and what connection I can get.

Exciting days remain ahead, I have to present Windows Phone 7 to students on Thursday, and of course I must experience the great TechEd sessions.

, , , , , ,

View Comments

Reconstructing Position from Depth for Fullscreen Quads

Recently I found an issue with an older article of mine that covered this topic, so I pulled it down until I could find the time to understand and fix the issue. After a bit of work I have fixed it and present this refresh.

The key to deferred rendering and other techniques is the ability to use a depth map to store world position. As we know a depth map consists of floating point values (optimally) and so normally we would use those values with our Clip Space coordinates and the Inverse of the ViewProjection matrix to get the position in World Space.

However there is another way to do this, and the big benefit is that it does not require a matrix multiplication to do so.

Presented by Crytek during a presentation on Atmospheric Scattering, this method uses just a Multiply + Add to get the position in World Space from our depth value at that point. To do this we need to get the far view frustum corners, in View Space, and pass them to the shader.

Read the rest of this entry »

, , , , ,

View Comments

Status June 2010

Hi all, not dead.

Apologies for the lack of updates, I am in the process of finishing an internship required for my university course, and it is a challenge to find good time to tackle some XNA issues and write posts.

I am currently working on Directional light shadows for my engine, I have cascaded shadow maps implemented, and now I am just tackling some issues I have encountered, which is taking a while – I also need to find a good filtering method.

If I get bored of trying to fix those annoying issues, I will probably jump into re-implementing point lights, and spotlights, and write something about those.

Some housekeeping notes:

I encountered a pretty big issue with the “Reconstructing position from depth” technique, and I have taken that article down from the blog for now. At the moment my own code uses the old “Multiply my the Inverse of the View Projection matrix”, and probably will continue to until I have time to solve that problem.

I have also updated this blog to WordPress 3.0, so let me know if you encounter any issues.

Back to work.

, , , ,

View Comments

[LPP] Ambient Lights

Ambient lights are used in modern games to fake the indirect illumination that exists in the real world. By adding a generally very weak light to the scene, we can avoid the 100% black shadows that really should not exist, all at a very low cost compared to proper indirect illumination or baked ambient light maps.

I have found that the simplest way to integrate these ambient lights into the Light Pre Pass system, and allow for other elements to change the lights throughout the game is to create a new light type that fits into the normal lighting model.

This is probably the simplest type out there, you just create a full screen quad and render it using a shader that writes the colour information directly to the light buffer. All we have to pass to the shader is the colour and intensity. (you could always pre-compute this, but beware of the byte->int32 auto promotion C# does)

Read the rest of this entry »

, ,

View Comments

XNA 4.0 – Reach/HiDef & My Article(s)

Shawn Hargreaves just posted this: http://blogs.msdn.com/shawnhar/archive/2010/03/12/reach-vs-hidef.aspx

I suggest you have a read through it if you are interested in the kinds of things I post on this blog, especially the Light Pre Pass technique.

One of the key parts of Shawn’s article are the changes that will be made to Render Targets, and the bucketing of the RenderTarget/Texture formats into the Reach and HiDef profiles.

It would be safe to say that future articles here will require the HiDef feature set. I make use of some of the Render Targets that do not exist in Reach, and while there may be a way to use a Reach Render Target, for the purposes of conveying the technique, I will not be adding extra code to support it. I may however note where alternatives can be used, and hint or mention how to use them.

I know I have previously used BGRA formats in my sample, and in future this will become RGBA, no big deal. I won’t change the 3.1 sample for now, but if I need to change other things to upgrade it to 4.0, then that will be “fixed”.

This shouldn’t be much of a problem, if you are going to be using the articles I plan to write, then you’ll have a computer that works with HiDef, or an XBOX.

As a side note, I no longer have a valid Creators Club subscription, so I have not tested the recent Light Pre-Pass article on the XBOX. If anyone has any issues let me know and I will try and look into it. I plan to get a premium subscription soon and test future articles on the XBOX.

, ,

View Comments

Light Pre-Pass Round 2

Those who have been following this blog know that I wrote an article about implementing a Light Pre-Pass renderer last year. Since then I have made numerous improvements and fixes as I have tried the system over different PC configurations.

This time around I will be including those changes into the implementation, and also releasing sample code for educational use. If you feel you have learned enough from the previous article, then feel free to skip this. For those new to the topic, please use this article instead of the older one.

Read the rest of this entry »

, ,

View Comments

Blogging from Word 2010

Just trying out the blogging features in Word 2010. Previously I used Live Writer for blogging, however there are some nice features like Insert Screenshot in Word 2010 that I would like to use.

I am almost done with the LPP article, just one more section and the sample to finish. If you are interested in more timely and fast updates, follow me on twitter: @quandtm

One thing I am missing from Writer is tag support, if anyone knows how to get it in Word, please let me know; or conversely if you know of a great plugin for automatically taking and inserting screenshots of the desktop for writer, let me know as well. (I know about the snipping tool, I currently use it, but it has a few steps in between that I don’t really want)

View Comments

An update on LPP + Sample

Hi everyone, first of all apologies for the delay. there has been quite a lot going on in my life, but I am working hard on getting the sample done. This time around I wanted to make sure I had a sample ready to go with the article, especially since the article will focus on the technique and theory and have little to no code – although I will certainly focus on XNA when it comes to mentioning issues and benefits to certain parts.

One of the main delays was getting the sample code out of my engine, and cleaning it up so it can be used as a learning tool. Unfortunately most of the code was hacked on as I fixed issues in the LPP renderer, and added features.

I have a fair bit of the article written, however recently I was implementing shadows and realised that I never thought about how they would integrate into the system, so I decided to rewrite my own renderer (which should not take long) and at the same time keep the code clean so it can serve as a sample as well.

This means I will probably also have Directional Light shadows in the sample. This then allows me to write about point lights, and spotlights later on, and include shadows for both.

So again, sorry for the delay, I am working hard to get it out soon.

As an aside, I noticed that Game Programming Gems is getting an 8th Edition, something I was not expecting, so with that, GPU Pro, and Game Engine Gems, I might be able to find some more cool things to write about.

Thank You for your patience.

, , , , ,

View Comments

Autodesk Student Subscriptions [Freebies]

I know that many of you will want to make use of either Blender or the nice free version of Softimage (Previously XSI) on the Creators Club website, however for those interested in expanding their skill set, perhaps with the intention of entering the industry, getting access to 3ds Max or Maya can be quite hard to do.* (legitimately)

I recently found that if you are a student and have an email address with your institution (.edu) then you can get access to licenses for Max, Maya, even AutoCAD and Revit for free using the Autodesk Student subscription.

Just go to http://students.autodesk.com to see if you qualify and register.

* I am not implying that 3ds Max + Maya are the only tools the industry uses, however they are the focus of this post.

Side Note: There are way too many versions of AutoCAD.

, , ,

View Comments