Programs to use for editing

There are lots of IDE's (Integrated Development Environments). And many of these are well featured, but I generally enjoy working in Notepad++.

It has some nice built-in features, however it does not have a specific language selection for HLSL by default. You can download user-created language settings for HLSL but its really not much better than just using the C++ language definition that comes with Notepad++.


Visual studio has some fantastic features, including autocomplete, references, project management, ect. And it is a preffered IDE for many programmers and teams. For a more comprehensive breakdown of Visual Studio's features go HERE.

NOTE: If you do use visual studio then make sure to use the dark theme because the bright one will murder your eyes almost as bad as Monodevelop.

Other text editors and IDEs



How does Cryengine handle shaders?

Cryengine uses HLSL and some of its own built in functions and code, It is important to note that HLSL, GLSL, and CG are all syntactically very similar, generally what varies the most is the type() names and the compiler specific preprocessor statements. Basically the backend of the shader programming language.

There are many small differences of course, but you can apply the fundimentals of anything you learn from CG, GLSL, and even OpenSL, so dont be afraid to go through articles and tutorials that are based on those languages.

If your interested in learning more about the differences between the primary languages. You should read THIS. Since CG and GLSL are almost identical, the main differences you should worry about are all between HLSL, and GLSL.

If you are coming from Unity, the first thing you should know is that Cryengine doesn't really have an "in-between" software layer like Unity does ("Shader-Lab"). All of the parameters and samplers are defined outside of the main shader code. Rather than inside of it. Its not a very elegant solution unfortunately, but it works. If you want more detail on how this works in Cryengine. Please visit HERE.

Where do I start learning shader programming?

Unfortunately there are very few complete solutions to this problem currently, as the learning resources are generally really scattered throughout many engines and few complete tutorials are available.

However there are a few that have really helped me understand the basics and principles behind BRDF's and general shader programming.

A great place to start is this tutorial series with Unity, its a bit on the older side but still a good resource to learn the basics of GLSL, BRDF's, and basic theory:

If you are looking for a really simple introduction to basic principles of writing shader code then this is another good resource:

If you want to get into the nitty gritty of the theory and practice behind the BRDF that drives realtime shaders, and a breakdown of the elements of said BRDF, then this is a fantastic video, as it is explained fairly well.

Navigating this wiki

Right now this wiki is in flux as I figure things out, and figure out how to even use the wiki tools. But right now everything is contained inside of the Shader Reference. That is broken into many catagories, and those catagories will undoubtedly be split up into sub catagories, especially as more content is added.
This is all a learning experience for me, so if you have feedback feel free to get in contact with me using the contact system in the right hand menu. If you wish to help me to populate this wiki then I don't mind sending an invite, just mention it in the contact form. Or email me at moc.liamg|tsitrad3nayr#moc.liamg|tsitrad3nayr. See you around! And I hope this resource helps you achieve amazing things!

Learning the Structure of CryFX

While very heavily work-in-progress, this article should be able to get you started understanding the structure of the CryFX shader core system. It will be updated often, so keep an eye on it:

Structure of Cry FX