FX Composer rocks!

I had NVIDIA’s FX Composer installed on my PC for a long time now, as part of my development tools, but rarely used it after installing it.

Usually, when I want to experiment with a new shader, I boot up XNA GS, add a random model to the scene, add a new Effect file, apply the Effect on the model, and then start experimenting with the shader code.

Today, I decided to implement a idea I had for next month’s sample, but instead of going my usual route, I decided to click the FX Composer icon. After about 5 minutes of figuring out the menus and various operations you can do, I was in shader-prototyping heaven.

For a simple comparison: you probably know how when writing native DirectX/OpenGL applications, you have to write some window management code and game loop code before you can get to writing your game, while XNA GS simply lets you write the game. This is exactly what FX Composer does for me.

You can go directly to writing your shader, without bothering with scene management and objects. The changes you make to the shaders are reflected in the rendering window with a single click, and it even provides toolbar buttons to add some basic models in the scene and test your shaders on them. (and that’s a giant understatement of the features available in FX Composer)

The only thing I would like improved at this moment is some IntelliSense-like features beyond simple syntax highlighting. But given the fact that even in Visual Studio you have notepad-like features for shaders (unless you use InteliShade), I’ll take what is given to me.

So I wholeheartedly recommend FX Composer to anyone interested in shader prototyping/development. It’s a great tool.

Categorized: HLSL
  • http://www.hilva.com Mahdi Khodadadi Fard

    You read my mind Catalin. Today i was telling to myself “Wish InteliShade had some intelisence for variales and functions”.

  • http://www.myspace.com/matthewcoreyproductions Matt C

    Hey this might seem random, trust me it is haha My name’s Matt, I am a 23 year old musician and I have my own home studio where I produce and record bands including my own and many many others but more importantly, I do alot of rap beats, my own dance project, music for an indie film, and now want to get into doing XNA games.

    I left Kyle Schouviller’s (also a random find) blog basically the same message- just that I’m not really looking for money, but if you are in need of music for XNA games or know someone who needs it, please have them contact me. There are several samples of my creative and other capabilities on my website (I’ll have a non-myspace website soon i hope ;o) haha) and can send some other examples that I have that are more appropriate for video games.


  • http://www.catalinzima.com Catalin Zima

    Funny how you got to both me and Kyle, since we worked together on a game before 🙂

    Thank you for your message. Right now I’m not in need of any music, but I will hopefully start working more on games soon, and then I will most certainly need any help I can get in the music department.
    I will keep your address handy, and contact you at the right moment.

    Until then, there are lots of XNA developers who would welcome help with their project. The safest way to get developers to contact you is to post a message in the Help Wanted / Offered forums on the xna site, and specify what you can offer, if you need compensations, give the link to your site, and provide a email address so people can contact you. The forum can be found here: http://forums.xna.com/forums/42.aspx

  • Jerry T

    Hey Catalin,
    Nice blog first of all, keep it up :).
    I’ve been using FX Composer for shaders in XNA, but I found it rather difficult to expose certain variables to the GUI so that an artist can use FX Composer with my shader to fiddle with it. The hard part is that you have to expand shader code with the proper semantics and especially with the proper annotations. I would want to know what your experiences are with including annotations into shader code 🙂

  • http://www.catalinzima.com Catalin Zima

    I’m currently away from my development PC for a few days, but I’m sure the FX Composer Help/Documentation has a section about annotations that you can use to expose parameters to the UI. I usually did this by examples. I looked through the shader library, and saw the annotations they used to expose certain parameters to the UI.

    I can’t say my experience is very vast, because as I mentioned in this post, I only recently began actually using FX Composer. Up until now, I did it all in Visual Studio, just like writing text.

  • nih

    Did you have to make any changes to the shader to get it to run in XNA? I’m trying to test a blinn-bump-reflect and XNA is saying the following contains an unexpected token: (the DisableCulling bit)

    RasterizerState DisableCulling
    CullMode = NONE;

  • http://www.catalinzima.com Catalin Zima

    The RasterizerState bit seems rather odd to me.
    you can achieve the same effect by moving the CullMode = none instruction in the technique definition, or simply set it inside C# using
    GraphicsDevice.RenderState.CullMode = CullMode.None.

    also, make sure you are using HLSL shaders in FXComposer, and not other languages, like CGFx, or GLSL.

  • nih

    I did a bit of legwork and it’s just DX10 shader code. I reverted it all back to it’s DX9 equivalent and it worked pretty good.

    Have you tried Mental Mill? It’s a little bit buggy and I haven’t quite managed to get a shader to work in XNA yet but the concept is kickass.

  • http://www.catalinzima.com Catalin Zima

    No, I haven’t tried Mental Mill yet.

  • Byron Nelson

    I’ve spent, all together, several hours with FX composer could not accomplish anything. That is, I couldn’t get anything to work. I guess I’m getting old!

  • Pingback: make hip hop beat

  • http://10463-6349 Dusty Blazon


  • http://JE1s-Pasadena-Home.skyrock.com JE1s-Pasadena-Home.skyrock.com

    Hiya, I’m new to running a blog and websites in general and was wondering how you got the “www” included in your domain name? I see your domain name, “http://www.catalinzima.com/2008/11/fx-composer-rocks/comment-page-1/” has the www and my domain looks like, “http://mydomain.com”. Do you know exactly how I can alter this? I’m using WordPress.

  • http://encipecom.metodista.br/mediawiki/index.php/Usu%C3%A1rio:Celsa21Y property management accounting

    Howdy! I know this is kinda off topic however , I’d figured I’d ask.
    Would you be interested in trading links or maybe guest authoring a blog post or vice-versa?

    My blog addresses a lot of the same topics as yours
    and I think we could greatly benefit from each
    other. If you are interested feel free to send me an e-mail.

    I look forward to hearing from you! Great blog by the way!

  • http://nervousauger2824.jigsy.com Joy

    I’m really enjoying the design and layout of your website. It’s a very easy on the eyes which makes it much more pleasant for me to come here and visit more often.
    Did you hire out a developer to create your theme?
    Excellent work!

  • http://storify.com/bizapmastert75/overcoming-writer-s-block-what-you-need-to-know Antje

    Hi there, constantly i used to check blog posts here in
    the early hours in the daylight, as i love to find out more and more.