DXT compression for normalmaps

If you apply DXT compression to a normal map texture, the results are usually pretty awful. But there are some simple things you can do to improve the quality. First off, notice how in a tangent space normalmap, the Z component always faces roughly outwards (which is why tangent space normalmaps have a bluish tint)….


Is DXT texture compression worth it?

Artists don’t like lossy compression. They particularly don’t like DXT texture compression. "I spent hours slaving away to create this beautiful, pristine image, and now you want to do WHAT to it?" But the thing is, you don’t get to make a simple choice between uncompressed vs. lossy compressed textures. Consoles like Xbox 360 only…


Texture compression

If you are doing 3D graphics with the XNA Framework, you are probably already using compressed textures, even if you don’t realize it. It occurred to me it might be interesting to explain what these are and how they work. Note that texture compression is not the same thing as the new .xnb compression feature…


Instances and indices and vfetch – oh my!

I’m cross posting this discussion from an internal Microsoft mailing list, because I’m so awesomely cool that I just can’t bear the thought of everything I ever wrote not being indexed and archived for posterity 🙂   My reply to a question about hardware instancing on Xbox 360: The 360 doesn’t support vertex stream frequency…


Dishwasher localization

The latest post from James Silva discusses the drudgeful process of localizing Dishwasher. This triggered a range of incoherent and rambling thoughts, which for some reason I am inspired to post here. It is amazing how much work can be involved in finishing a game, even one like Dishwasher that was already looking great a…


SendDataOptions.Chat in XNA Game Studio 3.0

Xbox LIVE encrypts all network traffic. This makes it hard for people to cheat by intercepting and modifying packets. However, communication data is required to be sent via an unencrypted channel. Because of this, each LIVE packet contains two sections. The first part contains encrypted gameplay data, while the second contains unencrypted voice or text…