From one of my previous posts this week about my issues getting my new book ("Shaders for Game Programmers and Artists") listed on Amazon.com, i did receive several pieces of feedback. One of feedbacks questioned my choice of the ATI tool named RenderMonkey for my book and how much issues that person had with ATI in general. This was an interesting comment (which you can read HERE) and thought i should respond with a blog entry since others might wonder the same.
First of all, I should answer the basic question as to why i chose to use such a shader editing tool instead of developing either plain shaders or develop some DirectX or OpenGL application? My goal with the book was to attack the topic from a different angle. The fact is that there are plenty of books touching the topic of shaders our there and I wanted to stand out. So I realized two things...
First of all, most book out there focus both on shaders and some rendering API (such as DirectX or OpenGL). The fact is that to use shaders in the first place, you need an application to run them in. For my book i decided i wanted to focus on shaders exclusively.
The second fact is that there is alot of artists out there which are technicaly minded can do more than simply model 3D geometry. There was no books out there focusing on the topic in a way that artists could relate to and it seemed like a good opportunity for me to take hold of.
But for this to happen, i had to accomplish one thing. Demonstrate several shader techniques without any need to know general programming or and specific rendering API. So a tool like RenderMonkey seemed like the best choice. The question people might ask is why RenderMonkey by ATI and not FXComposer by nVidia?
At the time when i started writing this book, well FXComposer did not exist yet, so i did not have much of a choice. I i were to write a book today on the same topic, i would likely evaluate both options before i would make a decision on which tool to use. From another perspective, as a developer, ATI has been way more responsive to my needs than nVidia and felt more confortable working with them as i knew they would help me when i needed it.
The last thing i would like to clarify is the fact that although i use ATI's RenderMonkey, this tool will work just fine on any shader capable video card (including nVidia's cards) so from the reader's point of view, it should not matter who wrote this tool in the first place. In addition, RenderMonkey serves as a framework to develop shaders and effects. The reality is that nothing prevents the use of another tool or from integrating such shaders into your own application or game.
Hope this clarifies some concerns :)