#version 460 #extension GL_EXT_nonuniform_qualifier : enable #extension GL_GOOGLE_include_directive : enable #define TD_VERTEX_SHADER /** BEGIN TD COMMON UTIL UNIFORMS Garbagesdmwk7**/ uniform sampler2D sTDNoiseMap; uniform sampler1D sTDSineLookup; uniform sampler2D sTDWhite2D; uniform sampler3D sTDWhite3D; uniform sampler2DArray sTDWhite2DArray; uniform samplerCube sTDWhiteCube; /** END TD COMMON UTIL UNIFORMS Garbagexcmvcxm**/ /** BEGIN TD COMMON UNIFORMS Garbageljk234**/ #define uTDInstanceIDOffset 0 #define uTDNumInstances 0 #define TD_NUM_COLOR_BUFFERS 1 #define TD_NUM_LIGHTS 2 #define TD_NUM_SHADOWED_LIGHTS 0 #define TD_NUM_ENV_LIGHTS 0 #define TD_LIGHTS_ARRAY_SIZE 2 #define TD_ENV_LIGHTS_ARRAY_SIZE 1 #define TD_NUM_CAMERAS 1 uniform sampler2DShadow sTDCompareShadowMaps[TD_LIGHTS_ARRAY_SIZE]; uniform sampler2D sTDShadowMaps[TD_LIGHTS_ARRAY_SIZE]; uniform sampler2D sTDProjMaps[TD_LIGHTS_ARRAY_SIZE]; uniform sampler1D sTDConeLookups[TD_LIGHTS_ARRAY_SIZE]; uniform samplerCube sTDEnvLightCubeMaps[TD_ENV_LIGHTS_ARRAY_SIZE]; uniform sampler2D sTDEnvLight2DMaps[TD_ENV_LIGHTS_ARRAY_SIZE]; uniform samplerCube sTDPrefiltEnvLightCubeMaps[TD_ENV_LIGHTS_ARRAY_SIZE]; uniform sampler2D sTDPrefiltEnvLight2DMaps[TD_ENV_LIGHTS_ARRAY_SIZE]; uniform sampler2D sTDBRDFLookup; struct TDLight { vec4 position; vec3 direction; vec3 diffuse; vec4 nearFar; vec4 lightSize; vec4 misc; vec4 coneLookupScaleBias; vec4 attenScaleBiasRoll; mat4 shadowMapMatrix; mat4 shadowMapCamMatrix; vec4 shadowMapRes; mat4 projMapMatrix; }; struct TDEnvLight { vec3 color; mat3 rotate; vec3 shCoeffs[9]; }; layout(std140) uniform TDLightBlock { TDLight uTDLights[TD_LIGHTS_ARRAY_SIZE]; }; layout(std140) uniform TDEnvLightBlock { TDEnvLight uTDEnvLights[TD_ENV_LIGHTS_ARRAY_SIZE]; }; struct TDPhongResult { vec3 diffuse; vec3 specular; vec3 specular2; float shadowStrength; }; struct TDPBRResult { vec3 diffuse; vec3 specular; float shadowStrength; }; struct TDMatrix { mat4 world; mat4 worldInverse; mat4 worldCam; mat4 worldCamInverse; mat4 cam; mat4 camInverse; mat4 camProj; mat4 camProjInverse; mat4 proj; mat4 projInverse; mat4 worldCamProj; mat4 worldCamProjInverse; mat4 quadReproject; mat3 worldForNormals; mat3 camForNormals; mat3 worldCamForNormals; }; layout(std140) uniform TDMatricesBlock { TDMatrix uTDMats[TD_NUM_CAMERAS]; }; struct TDCameraInfo { vec4 nearFar; vec4 fog; vec4 fogColor; int renderTOPCameraIndex; }; layout(std140) uniform TDCameraInfoBlock { TDCameraInfo uTDCamInfos[TD_NUM_CAMERAS]; }; struct TDGeneral { vec4 ambientColor; vec4 nearFar; vec4 viewport; vec4 fog; vec4 fogColor; }; layout(std140) uniform TDGeneralBlock { TDGeneral uTDGeneral; }; /** END TD COMMON UNIFORMS Garbageso9df7**/ float TDPerlinNoise(vec2 v); float TDPerlinNoise(vec3 v); float TDPerlinNoise(vec4 v); float TDSimplexNoise(vec2 v); float TDSimplexNoise(vec3 v); float TDSimplexNoise(vec4 v); vec3 TDHSVToRGB(vec3 c); vec3 TDRGBToHSV(vec3 c); mat3 TDRotateToVector(vec3 forward, vec3 to); mat3 TDRotateOnAxis(float radians, vec3 axis); mat3 TDRotateX(float radians); mat3 TDRotateY(float radians); mat3 TDRotateZ(float radians); mat3 TDScale(float x, float y, float z); mat4 TDTranslate(float x, float y, float z); mat3 TDCreateTBNMatrix(vec3 N, vec3 T, float handedness); vec3 TDEquirectangularToCubeMap(vec2 mapCoord); vec2 TDCubeMapToEquirectangular(vec3 envMapCoord); vec2 TDCubeMapToEquirectangular(vec3 envMapCoord, out float mipMapBias); vec2 TDTexGenSphere(vec3 envMapCoord); vec4 TDWorldToProj(vec4 v); vec4 TDWorldToProj(vec3 v); vec4 TDWorldToProj(vec4 v, vec3 uv); vec4 TDWorldToProj(vec3 v, vec3 uv); vec4 TDQuadReproject(vec4 v, int camIndex); vec4 TDPickAdjust(vec4 v, int camIndex); mat3 TDCreateRotMatrix(vec3 from, vec3 to); vec4 TDAdjustForLinearDepth(in vec4 projP, in float camZ); void TDWritePickingValues(); int TDPickID(); int TDInstanceID(); int TDCameraIndex(); vec3 TDUVUnwrapCoord(); /*********TOUCHDEFORMPREFIX**********/ #define TD_NUM_BONES 0 mat4 TDInstanceMat(int instanceID); mat3 TDInstanceMat3(int instanceID); vec3 TDInstanceTranslate(int instanceID); bool TDInstanceActive(int instanceID); mat3 TDInstanceRotateMat(int instanceID); vec3 TDInstanceScale(int instanceID); vec3 TDInstanceTexCoord(int instanceID, vec3 t); vec4 TDInstanceColor(int instanceID, vec4 curColor); vec4 TDInstanceCustomAttrib0(int instanceID); vec4 TDInstanceCustomAttrib1(int instanceID); vec4 TDInstanceCustomAttrib2(int instanceID); vec4 TDInstanceCustomAttrib3(int instanceID); vec4 TDInstanceCustomAttrib4(int instanceID); vec4 TDInstanceCustomAttrib5(int instanceID); vec4 TDInstanceCustomAttrib6(int instanceID); vec4 TDInstanceCustomAttrib7(int instanceID); vec4 TDInstanceCustomAttrib8(int instanceID); vec4 TDInstanceCustomAttrib9(int instanceID); vec4 TDInstanceCustomAttrib10(int instanceID); vec4 TDInstanceCustomAttrib11(int instanceID); uint TDInstanceTextureIndex(int instanceIndex); vec4 TDInstanceTexture(uint texIndex, vec3 uv); vec4 TDInstanceTexture(uint texIndex, vec2 uv); vec4 TDDeform(vec4 pos); vec4 TDDeform(vec3 pos); vec4 TDDeform(int instanceID, vec3 pos); vec3 TDDeformVec(vec3 v); vec3 TDDeformVec(int instanceID, vec3 v); vec3 TDDeformNorm(vec3 v); vec3 TDDeformNorm(int instanceID, vec3 v); vec4 TDSkinnedDeform(vec4 pos); vec3 TDSkinnedDeformVec(vec3 vec); vec3 TDSkinnedDeformNorm(vec3 vec); vec4 TDInstanceDeform(vec4 pos); vec3 TDInstanceDeformVec(vec3 vec); vec3 TDInstanceDeformNorm(vec3 vec); vec4 TDInstanceDeform(int instanceID, vec4 pos); vec3 TDInstanceDeformVec(int instanceID, vec3 vec); vec3 TDInstanceDeformNorm(int instanceID, vec3 vec); vec3 TDFastDeformTangent(vec3 oldNorm, vec4 oldTangent, vec3 deformedNorm); mat4 TDBoneMat(int boneIndex); mat4 TDInstanceMat(); mat3 TDInstanceMat3(); vec3 TDInstanceTranslate(); bool TDInstanceActive(); mat3 TDInstanceRotateMat(); vec3 TDInstanceScale(); vec3 TDInstanceTexCoord(vec3 t); vec4 TDInstanceColor(vec4 curColor); vec4 TDInstanceCustomAttrib0(); vec4 TDInstanceCustomAttrib1(); vec4 TDInstanceCustomAttrib2(); vec4 TDInstanceCustomAttrib3(); vec4 TDInstanceCustomAttrib4(); vec4 TDInstanceCustomAttrib5(); vec4 TDInstanceCustomAttrib6(); vec4 TDInstanceCustomAttrib7(); vec4 TDInstanceCustomAttrib8(); vec4 TDInstanceCustomAttrib9(); vec4 TDInstanceCustomAttrib10(); vec4 TDInstanceCustomAttrib11(); uint TDInstanceTextureIndex(); vec4 TDInstanceTexture(vec3 uv); vec4 TDInstanceTexture(vec2 uv); /*********TOUCHDEFORMPOSTFIX*********/ /** BEGIN TD COMMON VERTEX INPUTS Garbagedfy7**/ layout(location = 0) in vec3 P; layout(location = 1) in vec3 N; layout(location = 2) in vec4 Cd; layout(location = 3) in vec3 uv[8]; /** END TD COMMON VERTEX INPUTS Garbageds9f8y**/ uniform vec4 uColor; uniform float uTDAlphaTestVal; out Vertex { vec2 uv; vec4 color; } vVert; void main() { gl_PointSize = 1.0; vec4 worldSpacePos = TDDeform(P); gl_Position = TDWorldToProj(worldSpacePos); #ifndef TD_PICKING_ACTIVE vec4 col = uColor * TDInstanceColor(Cd); vVert.color = col; vVert.uv = TDInstanceTexCoord(uv[0]).st; #else // TD_PICKING_ACTIVE TDWritePickingValues(); #endif // TD_PICKING_ACTIVE }