blob: ae182b5d533cb8dfd44a1cd17da28fae2d45033b [file] [log] [blame]
SKIP: FAILED
#version 310 es
precision mediump float;
struct VertexInput {
vec4 position;
vec3 normal;
vec4 tangent;
vec2 texcoord;
uvec4 joints;
vec4 weights;
vec4 instance0;
vec4 instance1;
vec4 instance2;
vec4 instance3;
vec4 instanceColor;
};
struct VertexOutput {
vec4 position;
vec3 worldPos;
vec3 view;
vec2 texcoord;
vec2 texcoord2;
vec4 color;
vec4 instanceColor;
vec3 normal;
vec3 tangent;
vec3 bitangent;
};
struct Camera {
mat4 projection;
mat4 inverseProjection;
mat4 view;
vec3 position;
float time;
vec2 outputSize;
float zNear;
float zFar;
};
layout(binding = 0) uniform Camera_1 {
mat4 projection;
mat4 inverseProjection;
mat4 view;
vec3 position;
float time;
vec2 outputSize;
float zNear;
float zFar;
} camera;
layout(binding = 1) buffer Joints_1 {
mat4 matrices[];
} joint;
layout(binding = 2) buffer Joints_2 {
mat4 matrices[];
} inverseBind;
mat4 getSkinMatrix(VertexInput tint_symbol) {
mat4 joint0 = (joint.matrices[tint_symbol.joints.x] * inverseBind.matrices[tint_symbol.joints.x]);
mat4 joint1 = (joint.matrices[tint_symbol.joints.y] * inverseBind.matrices[tint_symbol.joints.y]);
mat4 joint2 = (joint.matrices[tint_symbol.joints.z] * inverseBind.matrices[tint_symbol.joints.z]);
mat4 joint3 = (joint.matrices[tint_symbol.joints.w] * inverseBind.matrices[tint_symbol.joints.w]);
mat4 skinMatrix = ((((joint0 * tint_symbol.weights.x) + (joint1 * tint_symbol.weights.y)) + (joint2 * tint_symbol.weights.z)) + (joint3 * tint_symbol.weights.w));
return skinMatrix;
}
struct tint_symbol_3 {
vec4 position;
vec3 normal;
vec4 tangent;
vec2 texcoord;
uvec4 joints;
vec4 weights;
vec4 instance0;
vec4 instance1;
vec4 instance2;
vec4 instance3;
vec4 instanceColor;
};
struct tint_symbol_4 {
vec3 worldPos;
vec3 view;
vec2 texcoord;
vec2 texcoord2;
vec4 color;
vec4 instanceColor;
vec3 normal;
vec3 tangent;
vec3 bitangent;
vec4 position;
};
VertexOutput vertexMain_inner(VertexInput tint_symbol) {
VertexOutput tint_symbol_1 = VertexOutput(vec4(0.0f, 0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f));
mat4 modelMatrix = getSkinMatrix(tint_symbol);
tint_symbol_1.normal = normalize((modelMatrix * vec4(tint_symbol.normal, 0.0f)).xyz);
tint_symbol_1.tangent = normalize((modelMatrix * vec4(tint_symbol.tangent.xyz, 0.0f)).xyz);
tint_symbol_1.bitangent = (cross(tint_symbol_1.normal, tint_symbol_1.tangent) * tint_symbol.tangent.w);
tint_symbol_1.color = vec4(1.0f);
tint_symbol_1.texcoord = tint_symbol.texcoord;
tint_symbol_1.instanceColor = tint_symbol.instanceColor;
vec4 modelPos = (modelMatrix * tint_symbol.position);
tint_symbol_1.worldPos = modelPos.xyz;
tint_symbol_1.view = (camera.position - modelPos.xyz);
tint_symbol_1.position = ((camera.projection * camera.view) * modelPos);
return tint_symbol_1;
}
tint_symbol_4 vertexMain(tint_symbol_3 tint_symbol_2) {
VertexInput tint_symbol_5 = VertexInput(tint_symbol_2.position, tint_symbol_2.normal, tint_symbol_2.tangent, tint_symbol_2.texcoord, tint_symbol_2.joints, tint_symbol_2.weights, tint_symbol_2.instance0, tint_symbol_2.instance1, tint_symbol_2.instance2, tint_symbol_2.instance3, tint_symbol_2.instanceColor);
VertexOutput inner_result = vertexMain_inner(tint_symbol_5);
tint_symbol_4 wrapper_result = tint_symbol_4(vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 0.0f, 0.0f), vec4(0.0f, 0.0f, 0.0f, 0.0f));
wrapper_result.position = inner_result.position;
wrapper_result.worldPos = inner_result.worldPos;
wrapper_result.view = inner_result.view;
wrapper_result.texcoord = inner_result.texcoord;
wrapper_result.texcoord2 = inner_result.texcoord2;
wrapper_result.color = inner_result.color;
wrapper_result.instanceColor = inner_result.instanceColor;
wrapper_result.normal = inner_result.normal;
wrapper_result.tangent = inner_result.tangent;
wrapper_result.bitangent = inner_result.bitangent;
return wrapper_result;
}
layout(location = 0) in vec4 position;
layout(location = 1) in vec3 normal;
layout(location = 2) in vec4 tangent;
layout(location = 3) in vec2 texcoord;
layout(location = 6) in uvec4 joints;
layout(location = 7) in vec4 weights;
layout(location = 8) in vec4 instance0;
layout(location = 9) in vec4 instance1;
layout(location = 10) in vec4 instance2;
layout(location = 11) in vec4 instance3;
layout(location = 12) in vec4 instanceColor;
layout(location = 0) out vec3 worldPos;
layout(location = 1) out vec3 view;
layout(location = 2) out vec2 texcoord;
layout(location = 3) out vec2 texcoord2;
layout(location = 4) out vec4 color;
layout(location = 5) out vec4 instanceColor;
layout(location = 6) out vec3 normal;
layout(location = 7) out vec3 tangent;
layout(location = 8) out vec3 bitangent;
void main() {
tint_symbol_3 inputs;
inputs.position = position;
inputs.normal = normal;
inputs.tangent = tangent;
inputs.texcoord = texcoord;
inputs.joints = joints;
inputs.weights = weights;
inputs.instance0 = instance0;
inputs.instance1 = instance1;
inputs.instance2 = instance2;
inputs.instance3 = instance3;
inputs.instanceColor = instanceColor;
tint_symbol_4 outputs;
outputs = vertexMain(inputs);
worldPos = outputs.worldPos;
view = outputs.view;
texcoord = outputs.texcoord;
texcoord2 = outputs.texcoord2;
color = outputs.color;
instanceColor = outputs.instanceColor;
normal = outputs.normal;
tangent = outputs.tangent;
bitangent = outputs.bitangent;
gl_Position = outputs.position;
gl_Position.z = 2.0 * gl_Position.z - gl_Position.w;
gl_Position.y = -gl_Position.y;
}
Error parsing GLSL shader:
ERROR: 0:140: 'texcoord' : redefinition
ERROR: 1 compilation errors. No code generated.