#  GLSL.std.450main rxamethyst_rendy/shaders/vertex/pos_norm_tang_tex_skin.vert// OpModuleProcessed entry-point main // OpModuleProcessed client vulkan100 // OpModuleProcessed target-env vulkan1.0 // OpModuleProcessed entry-point main #line 1 #version 450 layout(std140, set = 0, binding = 0) uniform ViewArgs { uniform mat4 proj; uniform mat4 view; uniform mat4 proj_view; }; layout(std430, set = 2, binding = 0) readonly buffer JointTransforms { mat4 joints[]; }; layout(location = 0) in vec3 position; layout(location = 1) in vec3 normal; layout(location = 2) in vec4 tangent; layout(location = 3) in vec2 tex_coord; layout(location = 4) in uvec4 joint_ids; layout(location = 5) in vec4 joint_weights; layout(location = 6) in mat4 model; // instance rate layout(location = 10) in vec4 tint; // instance rate layout(location = 11) in uint joints_offset; // instance rate layout(location = 0) out VertexData { vec3 position; vec3 normal; vec3 tangent; float tang_handedness; vec2 tex_coord; vec4 color; } vertex; void main() { mat4 joint_transform = joint_weights.x * joints[int(joints_offset + joint_ids.x)] + joint_weights.y * joints[int(joints_offset + joint_ids.y)] + joint_weights.z * joints[int(joints_offset + joint_ids.z)] + joint_weights.w * joints[int(joints_offset + joint_ids.w)]; vec4 vertex_position = model * joint_transform * vec4(position, 1.0); mat3 mat3_transform = mat3(model) * mat3(joint_transform); vertex.position = vertex_position.xyz; vertex.normal = mat3_transform * normal; vertex.tangent = mat3_transform * tangent.xyz; vertex.tang_handedness = tangent.w; vertex.tex_coord = tex_coord; vertex.color = tint; gl_Position = proj_view * vertex_position; }  GL_GOOGLE_cpp_style_line_directiveGL_GOOGLE_include_directivemain joint_weightsJointTransformsjointsjoints_offsetjoint_idsrmodelxpositionVertexDatapositionnormaltangenttang_handednesstex_coordcolorvertexnormaltangenttex_coordtintgl_PerVertexgl_Positiongl_PointSizegl_ClipDistancegl_CullDistanceViewArgsprojviewproj_viewG G@HHH#HGG"G!G GGrGxGGGGGG H H H H GHH#HHH#@HHH#HGG"G!!    ;  +   ; + ; ; # +'+?+W q ;qrv wv;wx+z?vvvv ; v+;w+; + + ; +;  ' ; ;6!$#"A ==A= ! |"!A#$"= %$ &%#A( '=)(A+'=,+-,|.-A#/.= 0/ 10)Q2&Q31423Q5&Q61756Q8&Q91:89Q;&Q<1=;<$A@ ?=A@AC?=DCED|FEA#GF= HG IHAQKIL4KQNIO7NQQIR:QQTIU=T%AX W=YXA[W=\[]\|^]A#_^= `_ a`YQcadLcQfagOfQiajRiQlamUlP ndgjm'= sr usn=vyxQ{yQ|yQ}yP~{|}zu~QsOvQsOvQsOvPOvddOvggOvjjPOvA>=vvA>=OvvA>,AW=A>-=A>.=A>/A#= A>8