Robbie Bach Uni Talk

Robbie Bach, President of Microsoft’s Entertainment and Devices division is giving a public talk at the University of Sydney on Tuesday 9th February 2010.

For any readers who are in Sydney, this would be a great event to attend. E&D covers everything from the XBOX to the Surface, even Keyboards + Mice from MS hardware.

Hopefully there will be a Natal unit on display, and maybe a demo, although no confirmation yet.

RSVP by emailing kumarman[at]microsoft.com

 

SydUniRobbieBachTalk9thFeb

, , , , , , ,

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.

, , ,

Comments

Action Based Input Manager w/Events in XNA

I recently completed an action based Input system for my own engine that allows me to create named actions which support the GamePad, Keyboard and Mouse.

The system uses events to notify the game of changes in input state, which makes it really easy to use, and the system supports XML serialisation so key assignments can be saved and loaded.

Supports:

  • Thumbsticks (Analog)
  • Triggers (Analog)
  • GamePad Buttons (incl Trigger “Buttons”)
  • Keyboard
  • Mouse (Analog)
  • Mouse Buttons

The system also supports Gamepad, Mouse and Keyboard assignments for each action, so you can support both the GamePad and Keyboard at the same time.

It also supports disabling of certain GamePads, so you can find the active GamePad and only accept input from that one, via a really simply array of booleans.

You can specify a single direction or axis for the Thumbstick and Mouse, so that the events will only be triggered if there is movement “up” on the Thumbstick.

You can download the InputManager and InputAction classes below:

AxialInput Sample

Feel free to use these classes in your own project, although if you do make use of them, it would be nice to get a mention.

If you notice any problems, or have any suggestions/feedback, feel free to post them in the comments.

Note/Disclaimer:
This sample/code is provided as is. I am not responsible for any problems you may have, and you use the code at your own risk.
I am available to answer questions about the code through the comment system on this website – although this is not guaranteed.
This code was intended for personal use, however I have decided to share it with the community to help out newer developers.

, ,

Comments

Disqus Comments Added

Just letting everyone know I added Disqus commenting to this site, so if you have a profile with them, use that, otherwise they offer many other ways to login via Facebook, Twitter, Yahoo etc.

This adds some more commenting features, and should make the experience better overall. All previous comments should have imported correctly into Disqus.

,

Comments

Happy New Year

Happy New Year everyone, hope you all have a great 2010.

I for one know that my new years resolution will be to get more content up. Once I am better of course, I caught a cold + ear infection at #ozgamecamp and haven’t been in the mood to do much development or writing over the past two weeks. Expect content as that clears up (It is slowly going away) and things get started again for 2010.

Enjoy!

Comments

Rewrite of LPP Article Planned

I recently went about making the current Light Pre Pass system run on the XBOX 360, and had to fix some issues that appeared there. As a result, the next article to go up will be a rewrite with all of these fixes included. I should also be able to provide the sample code at the same time.

This time around I will cover Point, Ambient and Directional lights in the same post, as well as including information about an alternate light buffer format that allows for improved specular + per-material specular.

Expect this either during the weekend of 20-21st Dec, or shortly after that.

Unfortunately I could not test the code on the XBOX the first time around due to subscription issues, however everything is fine now, and I can and will test on both XBOX and my desktop PC beforehand. (Perhaps also other PC configs depending on who I can find online at the time, and what other machines I have on hand ;) )

, ,

Comments

Get Great Benefits from the MSP Program

headerLogo Just a quick break from the regular programming (haha) to let every reader of this blog know that the Microsoft Student Partner program is open for signups.

If you are a student in tertiary education (University etc) then you can apply for the role by going to http://student-partners.com and following the instructions there.

Benefits vary per country, however the common one seems to be that you get a free MSDN Universal subscription, which gives you access to every piece of MS software you could want. (As long as it relates to development)

I have been a student partner for 2 years now, and I am really enjoying the experience. you meet like minded students from your country and get into some really awesome and at times exclusive events. Here in Australia we get free access to TechEd AU, and even get into exclusive XBOX parties. One big event of note this year was the local Windows 7 launch, which many MSPs from Sydney attended.

Tons of benefits, and plenty of reasons to join, so why don’t you?

, , ,

Comments

Important Additions & Fixes to LPP Implementation

I have finally tracked down an issue that I was having with the Light Pre Pass implementation, and as a result have had to make some changes to the implementation.

Firstly, I would recommend ensuring RenderState.AlphaTestEnable is false before rendering materials, it appears this is set (at least in my sample) somewhere and it corrupts the light buffer.

Secondly, move the postProjToScreen and halfPixel calls from the vertex shader in blinnphong.fx, to the pixel shader. Some GPUs (like my laptop’s) do not correctly interpolate the adjusted screen coordinates, and this ensures it is correctly interpolated per pixel.

gfx.SetRenderTarget(0, light);
gfx.SetRenderTarget(1, null);
depthImage = depth.GetTexture();
normImage = normals.GetTexture();
gfx.RenderState.AlphaTestEnable = false;

Finally, when writing the Normal in the vertex shader for def_depthnorm.fx, swap the parameters of mul(input.Normal, World) to mul(World, input.Normal).

That should be all, if you notice any other issues, feel free to post them in the comments, it would be greatly appreciated.

Comments

A Note on Sample Code

Just a quick note about the sample code download for the current Light Pre Pass tutorial, and probably future tutorials. I am in the process of cleaning up and commenting the code, and hope to have it out really soon. I am to have a complete tutorial with all the information on the page, however in some cases I don’t explicitly provide every bit of code, to prevent the tutorial from becoming too long.

As this implementation and sample is a part of my own engine, I need to split the code from the main project and ensure it is readable and in a suitable educational state. This should not take too long, so if you are watching this blog, I will post when this code is available, and link to it in the original article as well.

Sorry for any inconvenience, I hope the article will satisfy your LPP needs in the meanwhile. As usual if you have any questions, post them in the comments of the respective article and I will answer them as soon as possible.

, ,

Comments

Light Pre Pass in XNA: Basic Implementation

In this part I will cover how to implement the basic form of the Light Pre Pass renderer, with support for point lights, and the basic Blinn-Phong shader, including Albedo texture support.

As this article is fairly advanced in nature, I have to make certain assumptions about my audience, so that I do not spend half my time explaining basics. Firstly, you should have an understanding of basic concepts such as Cameras, Fullscreen Quads (including how to render one) and rendering a mesh with custom effects.

This pretty much means that as long as you have done some 3D work before, you should be fine. It would be best if you also knew XNA, as I will be using that to write this implementation, however as long as you can translate from C# and get the basic idea, that should be enough.

As you can see from these requirements, this article is not aimed at beginners, and if you are looking for tutorials on how to get started with XNA for 3D development, I would recommend you visit some great sites such as:

Those sites will help you get started with XNA, and once you are familiar and comfortable with the concepts behind 3D graphics, you can return here to learn an advanced renderer implementation.

My focus in this article will be on the implementation of the renderer, as a result, I will not be referring to the implementation of cameras or scene graphs.

Now that the housekeeping is out of the way, we can begin.

Read the rest of this entry »

, ,

Comments