{ "shader_resources": [ { "contexts": [ { "blend_destination": "blend_zero", "blend_source": "blend_one", "compare_mode": "less", "constants": [ { "id": "M", "link": "_modelMatrix", "type": "mat4" }, { "id": "NM", "link": "_normalMatrix", "type": "mat4" }, { "id": "V", "link": "_viewMatrix", "type": "mat4" }, { "id": "P", "link": "_projectionMatrix", "type": "mat4" }, { "id": "LMVP", "link": "_lightModelViewProjectionMatrix", "type": "mat4" }, { "id": "albedo_color", "type": "vec4" }, { "id": "light", "link": "_lightPosition", "type": "vec3" }, { "id": "eye", "link": "_cameraPosition", "type": "vec3" }, { "id": "lighting", "type": "bool" }, { "id": "receiveShadow", "type": "bool" }, { "id": "roughness", "type": "float" }, { "id": "metalness", "type": "float" } ], "cull_mode": "counter_clockwise", "depth_write": true, "fragment_shader": "forward_Billboard_NormalMapping.frag", "id": "forward", "texture_units": [ { "id": "shadowMap" }, { "id": "snormal" } ], "vertex_shader": "forward_Billboard_NormalMapping.vert" } ], "id": "forward_Billboard_NormalMapping", "vertex_structure": [ { "name": "pos", "size": 3 }, { "name": "nor", "size": 3 }, { "name": "tan", "size": 3 } ] } ] }