Link to downloadable:

In this assignment, we created human readable effect files to store our effect data and converted it to binary file.

Human Readable Effect file:

Binary Version:

Binary version with color mask:

Red Vertex shader
Green Fragment shader
Blue Render state
White Null Termination for char*

I appended a null termination after each path address. Fragment shader path is right after the first null termination.

I store those data relative to $(GameInstallDir), and add /data prefix during build time. If I have the prefix in the data file, when I extract from the binary file, I did not need to insert a “data/” before shader handle load the shader, which will be faster in run time. When I insert the data in builder, I use std::string, which is easier to do compare insert const char* before another const char*.

How I extract data: