here is the pfx file it’s a bit big but just copy pasted for you.also I am using 2016_r2
[HEADER]
VERSION 01.00.00.00
DESCRIPTION OGLESDeferredShading Effects. Multiple Render Target versions.
COPYRIGHT Imagination Technologies
[/HEADER]
///////////////////////////////////////////////////////////////////////////
//// ////
//// GBUFFER EFFECTS ////
//// ////
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
//// RenderGBuffer: Effects for tangent-space models(bumpmapped) ////
///////////////////////////////////////////////////////////////////////////
[EFFECT]
NAME RenderGBuffer
// GLOBALS UNIFORMS
UNIFORM uWorldViewProjMatrix WORLDVIEWPROJECTION
UNIFORM uWorldViewMatrix WORLDVIEW
UNIFORM uWorldViewIT WORLDVIEWIT
UNIFORM sTexture TEXTURE0
UNIFORM sBumpMap TEXTURE1
// ATTRIBUTES
ATTRIBUTE inVertex POSITION
ATTRIBUTE inNormal NORMAL
ATTRIBUTE inTexCoord UV0
ATTRIBUTE inTangent TANGENT
// CUSTOM SEMANTICS
UNIFORM uFarClipDistance CUSTOMSEMANTIC_FARCLIPDISTANCE
UNIFORM uSpecularStrength CUSTOMSEMANTIC_SPECULARSTRENGTH
UNIFORM uDiffuseColor CUSTOMSEMANTIC_DIFFUSECOLOUR
TEXTURE 0 FootBones_diffuse
TEXTURE 1 FootBones_1k_normalmap
// SHADERS
VERTEXSHADER GBufferVertexShader
FRAGMENTSHADER GBufferFragmentShader
[/EFFECT]
[VERTEXSHADER]
NAME GBufferVertexShader
[GLSL_CODE]
#version 300 es
#define VERTEX_ARRAY 0
#define NORMAL_ARRAY 1
#define TEXCOORD_ARRAY 2
#define TANGENT_ARRAY 3
layout(location = VERTEX_ARRAY) in highp vec3 inVertex;
layout(location = NORMAL_ARRAY) in highp vec3 inNormal;
layout(location = TEXCOORD_ARRAY) in mediump vec2 inTexCoord;
layout(location = TANGENT_ARRAY) in highp vec3 inTangent;
uniform mat4 uWorldViewProjMatrix;
uniform mat4 uWorldViewMatrix;
uniform mat3 uWorldViewIT;
out mediump vec2 vTexCoord;
out highp vec3 vNormal;
out highp vec3 vTangent;
out highp vec3 vBinormal;
out highp vec3 vViewPos;
void main()
{
gl_Position = uWorldViewProjMatrix * vec4(inVertex, 1.0);
// Transform normal from model space to eye space
vNormal = uWorldViewIT * inNormal;
vTangent = uWorldViewIT * inTangent;
vBinormal = cross(vNormal, vTangent);
// Pass the vertex position in view space for depth calculations
vViewPos = (uWorldViewMatrix * vec4(inVertex, 1.0)).xyz;
// Pass the texture coordinates to the fragment shader
vTexCoord = inTexCoord;
}
[/GLSL_CODE]
[/VERTEXSHADER]
[FRAGMENTSHADER]
NAME GBufferFragmentShader
[GLSL_CODE]
#version 300 es
uniform sampler2D sTexture;
uniform sampler2D sBumpMap;
uniform highp float uFarClipDistance;
uniform lowp float uSpecularStrength;
uniform lowp vec3 uDiffuseColor;
in mediump vec2 vTexCoord;
in highp vec3 vNormal;
in highp vec3 vTangent;
in highp vec3 vBinormal;
in highp vec3 vViewPos;
layout(location = 0) out lowp vec4 oAlbedo;
layout(location = 1) out highp vec3 oNormal;
layout(location = 2) out highp vec4 oDepth;
void main()
{
// Calculate the albedo
lowp vec3 albedo = texture(sTexture, vTexCoord).rgb * uDiffuseColor;
// Pack the specular exponent with the albedo
oAlbedo = vec4(albedo, uSpecularStrength);
// Calculate viewspace perturbed normal
highp vec3 bumpmap = normalize(texture(sBumpMap, vTexCoord).rgb * 2.0 - 1.0);
highp mat3 tangentSpace = mat3(normalize(vTangent), normalize(vBinormal), normalize(vNormal));
highp vec3 normalVS = tangentSpace * bumpmap;
// Scale the normal range from [-1,1] to [0, 1] to pack it into the RGB_U8 texture
oNormal.xyz = normalVS * 0.5 + 0.5;
// Pack the depth value into 4 channels
// Pack the depth value into 4 channels
highp float scaledDepth = length(vViewPos) / uFarClipDistance;
highp vec4 enc = vec4(1.0, 255.0, 65025.0, 160581375.0) * scaledDepth;
enc = fract(enc);
enc -= enc.yzww * vec4(1.0/255.0,1.0/255.0,1.0/255.0,0.0);
oDepth = enc;
}
[/GLSL_CODE]
[/FRAGMENTSHADER]
///////////////////////////////////////////////////////////////////////////
//// ////
//// RenderGBufferFloor: Effects for non-bumpmapped models ////
//// ////
///////////////////////////////////////////////////////////////////////////
[EFFECT]
NAME RenderGBufferFloor
// GLOBALS UNIFORMS
UNIFORM uWorldViewProjMatrix WORLDVIEWPROJECTION
UNIFORM uWorldViewIT WORLDVIEWIT
UNIFORM uWorldViewMatrix WORLDVIEW
// ATTRIBUTES
ATTRIBUTE inVertex POSITION
ATTRIBUTE inNormal NORMAL
ATTRIBUTE inTexCoord UV0
// CUSTOM SEMANTICS
UNIFORM uFarClipDistance CUSTOMSEMANTIC_FARCLIPDISTANCE
UNIFORM uSpecularStrength CUSTOMSEMANTIC_SPECULARSTRENGTH
UNIFORM uDiffuseColor CUSTOMSEMANTIC_DIFFUSECOLOUR
// SHADERS
VERTEXSHADER GBufferFloorVertexShader
FRAGMENTSHADER GBufferFloorFragmentShader
[/EFFECT]
[VERTEXSHADER]
NAME GBufferFloorVertexShader
[GLSL_CODE]
#version 300 es
#define VERTEX_ARRAY 0
#define NORMAL_ARRAY 1
#define TEXCOORD_ARRAY 2
layout(location = VERTEX_ARRAY) in highp vec3 inVertex;
layout(location = NORMAL_ARRAY) in highp vec3 inNormal;
layout(location = TEXCOORD_ARRAY) in mediump vec2 inTexCoord;
uniform mat4 uWorldViewProjMatrix;
uniform mat4 uWorldViewMatrix;
uniform mat3 uWorldViewIT;
out mediump vec2 vTexCoord;
out highp vec3 vNormal;
out highp vec3 vViewPos;
void main()
{
gl_Position = uWorldViewProjMatrix * vec4(inVertex, 1.0);
// Transform normal from model space to eye space
vNormal = uWorldViewIT * inNormal;
// Pass the vertex position in view space for depth calculations
vViewPos = (uWorldViewMatrix * vec4(inVertex, 1.0)).xyz;
// Pass the texture coordinates to the fragment shader
vTexCoord = inTexCoord;
}
[/GLSL_CODE]
[/VERTEXSHADER]
[FRAGMENTSHADER]
NAME GBufferFloorFragmentShader
[GLSL_CODE]
#version 300 es
uniform sampler2D sTexture;
uniform lowp float uSpecularStrength;
uniform lowp vec3 uDiffuseColor;
uniform highp float uFarClipDistance;
in highp vec3 vNormal;
in highp vec2 vTexCoord;
in highp vec3 vViewPos;
layout(location = 0) out lowp vec4 oAlbedo;
layout(location = 1) out highp vec3 oNormal;
layout(location = 2) out highp vec4 oDepth;
void main()
{
// Pack the specular exponent with the albedo
oAlbedo = vec4(texture(sTexture, vTexCoord).rgb * uDiffuseColor, uSpecularStrength);
// Pack the normal
oNormal.xyz = normalize(vNormal) * .5 + .5;
// Pack the depth value into 4 channels
highp float scaledDepth = length(vViewPos) / uFarClipDistance;
highp vec4 enc = vec4(1.0, 255.0, 65025.0, 160581375.0) * scaledDepth;
enc = fract(enc);
enc -= enc.yzww * vec4(1.0/255.0,1.0/255.0,1.0/255.0,0.0);
oDepth = enc;
}
[/GLSL_CODE]
[/FRAGMENTSHADER]
///////////////////////////////////////////////////////////////////////////
//// ////
//// DEFERRED LIGHT SHADERS ////
//// ////
///////////////////////////////////////////////////////////////////////////
//
// Calculates the lighting for a point light source
//
[EFFECT]
NAME RenderPointLight
// GLOBALS UNIFORMS
UNIFORM uWorldViewProjMatrix WORLDVIEWPROJECTION
UNIFORM uWorldViewMatrix WORLDVIEW
UNIFORM uLightColorIntensity LIGHTCOLOR
UNIFORM sAlbedo TEXTURE0
UNIFORM sNormals TEXTURE1
UNIFORM sDepth TEXTURE2
// CUSTOM SEMANTICS
UNIFORM uFarClipDistance CUSTOMSEMANTIC_FARCLIPDISTANCE
UNIFORM uLightViewPosition CUSTOMSEMANTIC_POINTLIGHT_VIEWPOSITION
// ATTRIBUTES
ATTRIBUTE inVertex POSITION
// SHADERS
VERTEXSHADER DeferredVertexShader
FRAGMENTSHADER PointLightFragmentShader
[/EFFECT]
//
// Vertex shader that is shared amongst (most) deferred light shaders
//
[VERTEXSHADER]
NAME DeferredVertexShader
[GLSL_CODE]
#version 300 es
#define VERTEX_ARRAY 0
layout(location = VERTEX_ARRAY) in highp vec3 inVertex;
uniform mat4 uWorldViewProjMatrix;
uniform mat4 uWorldViewMatrix;
out highp vec3 vPositionVS;
out highp vec3 vViewDirVS;
out mediump vec2 vTexCoord;
void main()
{
gl_Position = uWorldViewProjMatrix * vec4(inVertex, 1.0);
gl_Position.xyz = gl_Position.xyz / gl_Position.w;
gl_Position.w = 1.0;
vTexCoord = (gl_Position.xy + 1.0) * 0.5;
// Calculate the view-space position for lighting calculations
vPositionVS = (uWorldViewMatrix * vec4(inVertex, 1.0)).xyz;
// Pass the view direction
vViewDirVS = vPositionVS;
}
[/GLSL_CODE]
[/VERTEXSHADER]
[FRAGMENTSHADER]
NAME PointLightFragmentShader
[GLSL_CODE]
#version 300 es
uniform sampler2D sAlbedo;
uniform sampler2D sNormals;
uniform sampler2D sDepth;
uniform highp float uFarClipDistance;
uniform highp vec3 uLightColorIntensity;
uniform highp mat3 uWorldIT;
uniform highp vec3 uLightViewPosition;
in highp vec3 vPositionVS;
in highp vec3 vViewDirVS;
in mediump vec2 vTexCoord;
layout(location = 0) out lowp vec4 oColor;
void main()
{
//
// Read GBuffer attributes
//
highp vec4 depthTex = texture(sDepth, vTexCoord);
highp vec4 albedoSpec = texture(sAlbedo, vTexCoord);
highp vec3 normalTex = texture(sNormals, vTexCoord).xyz;
// reconstruct original depth value
highp float depth = dot(depthTex, vec4(1.0, 1.0/255.0, 1.0/65025.0, 1.0/160581375.0));
//
// Reconstruct common vectors and world space position
//
highp vec3 positionVS = normalize(vPositionVS) * depth * uFarClipDistance;
highp vec3 lightDirection = uLightViewPosition - positionVS;
highp float lightDistance = length(lightDirection);
lightDirection /= lightDistance;
//
// Calculate lighting terms
//
highp vec3 normal = normalize(normalTex * 2.0 - 1.0);
highp float n_dot_l = max(dot(lightDirection, normal), 0.0);
highp vec3 diffuse = n_dot_l * albedoSpec.rgb;
highp vec3 viewDirection = normalize(vViewDirVS);
highp vec3 reflectedLightDirection = reflect(lightDirection, normal);
highp float v_dot_r = max(dot(viewDirection, reflectedLightDirection), 0.0);
diffuse += vec3(pow(v_dot_r, 16.0) * albedoSpec.a);
//Subtracting a small number and clamping makes for a much better falloff look.
highp float attenuation = max(1. / (1. + 1. * lightDistance * lightDistance) -.001, 0.);
oColor = vec4(diffuse * uLightColorIntensity * attenuation, 1.0);
}
[/GLSL_CODE]
[/FRAGMENTSHADER]
//
// Calculates the lighting for a directional light source
//
[EFFECT]
NAME RenderDirectionalLight
// GLOBALS UNIFORMS
UNIFORM uLightColorIntensity LIGHTCOLOR
UNIFORM sAlbedo TEXTURE0
UNIFORM sNormals TEXTURE1
// CUSTOM SEMANTICS
UNIFORM uLightDirection CUSTOMSEMANTIC_DIRECTIONALLIGHT_DIRECTION
// SHADERS
VERTEXSHADER DirectionalLightVertexShader
FRAGMENTSHADER DirectionalLightFragmentShader
[/EFFECT]
[VERTEXSHADER]
NAME DirectionalLightVertexShader
[GLSL_CODE]
#version 300 es
const highp vec2 positions[4]=vec2[4]
(
vec2(-1.,-1.),
vec2( 1.,-1.),
vec2(-1., 1.),
vec2( 1., 1.)
);
out mediump vec2 vTexCoord;
void main()
{
highp vec2 position = positions[gl_VertexID];
gl_Position = vec4(position, 0.5, 1.);
vTexCoord = position * .5 - .5; //Map -1..1->0..1
}
[/GLSL_CODE]
[/VERTEXSHADER]
[FRAGMENTSHADER]
NAME DirectionalLightFragmentShader
[GLSL_CODE]
#version 300 es
uniform sampler2D sAlbedo;
uniform sampler2D sNormals;
uniform highp vec3 uLightColorIntensity;
uniform highp vec4 uLightDirection;
in mediump vec2 vTexCoord;
layout(location = 0) out lowp vec4 oColor;
void main()
{
// Fetch required gbuffer attributes
lowp vec3 albedo = texture(sAlbedo, vTexCoord).rgb;
highp vec3 normalTex = texture(sNormals, vTexCoord).xyz;
highp vec3 normal = normalTex.xyz * 2.0 - vec3(1.0);
// Calculate simple diffuse lighting
highp float n_dot_l = max(dot(-uLightDirection.xyz, normal.xyz), 0.0);
lowp vec3 color = albedo * (n_dot_l * uLightColorIntensity + vec3(.2, .2, .1));
oColor = vec4(color, 1.0);
}
[/GLSL_CODE]
[/FRAGMENTSHADER]
///////////////////////////////////////////////////////////////////////////
//// ////
//// AUXILIARY SHADERS ////
//// ////
///////////////////////////////////////////////////////////////////////////
//
// Renders the geometry using a single color passed as an uniform.
//
[EFFECT]
NAME RenderSolidColor
// GLOBALS UNIFORMS
UNIFORM uWorldViewProjMatrix WORLDVIEWPROJECTION
UNIFORM uConstantColor MATERIALCOLORAMBIENT
// ATTRIBUTES
ATTRIBUTE inVertex POSITION
// SHADERS
VERTEXSHADER VertexShader
FRAGMENTSHADER SolidColorFragmentShader
[/EFFECT]
[VERTEXSHADER]
NAME VertexShader
[GLSL_CODE]
#version 300 es
layout(location = 0) in highp vec3 inVertex;
uniform mat4 uWorldViewProjMatrix;
void main()
{
// pass-through position and texture coordinates
gl_Position = uWorldViewProjMatrix * vec4(inVertex, 1.0);
}
[/GLSL_CODE]
[/VERTEXSHADER]
[FRAGMENTSHADER]
NAME SolidColorFragmentShader
[GLSL_CODE]
#version 300 es
uniform lowp vec4 uConstantColor;
layout(location = 0) out lowp vec4 oColor;
void main()
{
oColor = uConstantColor;
}
[/GLSL_CODE]
[/FRAGMENTSHADER]
[EFFECT]
NAME RenderNullColor
// GLOBALS UNIFORMS
UNIFORM uWorldViewProjMatrix WORLDVIEWPROJECTION
// ATTRIBUTES
ATTRIBUTE inVertex POSITION
// SHADERS
VERTEXSHADER VertexShader
FRAGMENTSHADER NullFragmentShader
[/EFFECT]
[FRAGMENTSHADER]
NAME NullFragmentShader
[GLSL_CODE]
#version 300 es
void main() { }
[/GLSL_CODE]
[/FRAGMENTSHADER]
////////////////////////////////////////////////////////////////
///////////// Custom Shaders //////////////////////////////////
////////////////////////////////////////////////////////////////
[EFFECT]
NAME ach_x3
// GLOBALS UNIFORMS
UNIFORM uWorldViewProjMatrix WORLDVIEWPROJECTION
UNIFORM uWorldViewMatrix WORLDVIEW
UNIFORM uWorldViewIT WORLDVIEWIT
UNIFORM sTexture TEXTURE0
UNIFORM sBumpMap TEXTURE1
// ATTRIBUTES
ATTRIBUTE inVertex POSITION
ATTRIBUTE inNormal NORMAL
ATTRIBUTE inTexCoord UV0
ATTRIBUTE inTangent TANGENT
// CUSTOM SEMANTICS
UNIFORM uFarClipDistance CUSTOMSEMANTIC_FARCLIPDISTANCE
UNIFORM uSpecularStrength CUSTOMSEMANTIC_SPECULARSTRENGTH
UNIFORM uDiffuseColor CUSTOMSEMANTIC_DIFFUSECOLOUR
TEXTURE 0 ach_x_diffuse
TEXTURE 1 ach_x_normal
// SHADERS
VERTEXSHADER GBufferVertexShader
FRAGMENTSHADER GBufferFragmentShader
[/EFFECT]
[EFFECT]
NAME achilles1
// GLOBALS UNIFORMS
UNIFORM uWorldViewProjMatrix WORLDVIEWPROJECTION
UNIFORM uWorldViewMatrix WORLDVIEW
UNIFORM uWorldViewIT WORLDVIEWIT
UNIFORM sTexture TEXTURE0
UNIFORM sBumpMap TEXTURE1
// ATTRIBUTES
ATTRIBUTE inVertex POSITION
ATTRIBUTE inNormal NORMAL
ATTRIBUTE inTexCoord UV0
ATTRIBUTE inTangent TANGENT
// CUSTOM SEMANTICS
UNIFORM uFarClipDistance CUSTOMSEMANTIC_FARCLIPDISTANCE
UNIFORM uSpecularStrength CUSTOMSEMANTIC_SPECULARSTRENGTH
UNIFORM uDiffuseColor CUSTOMSEMANTIC_DIFFUSECOLOUR
TEXTURE 0 achilles_diffuse
TEXTURE 1 achilles_normal
// SHADERS
VERTEXSHADER GBufferVertexShader
FRAGMENTSHADER GBufferFragmentShader
[/EFFECT]
[EFFECT]
NAME Abductor_Digiti_Minimi_Right2S1
// GLOBALS UNIFORMS
UNIFORM uWorldViewProjMatrix WORLDVIEWPROJECTION
UNIFORM uWorldViewMatrix WORLDVIEW
UNIFORM uWorldViewIT WORLDVIEWIT
UNIFORM sTexture TEXTURE0
UNIFORM sBumpMap TEXTURE1
// ATTRIBUTES
ATTRIBUTE inVertex POSITION
ATTRIBUTE inNormal NORMAL
ATTRIBUTE inTexCoord UV0
ATTRIBUTE inTangent TANGENT
// CUSTOM SEMANTICS
UNIFORM uFarClipDistance CUSTOMSEMANTIC_FARCLIPDISTANCE
UNIFORM uSpecularStrength CUSTOMSEMANTIC_SPECULARSTRENGTH
UNIFORM uDiffuseColor CUSTOMSEMANTIC_DIFFUSECOLOUR
TEXTURE 0 Abductor_Digiti_Minimi_tendon_diffuse
TEXTURE 1 Abductor_Digiti_Minimi_tendon_normal
// SHADERS
VERTEXSHADER GBufferVertexShader
FRAGMENTSHADER GBufferFragmentShader
[/EFFECT]
[EFFECT]
NAME pasted_NOlines
// GLOBALS UNIFORMS
UNIFORM uWorldViewProjMatrix WORLDVIEWPROJECTION
UNIFORM uWorldViewMatrix WORLDVIEW
UNIFORM uWorldViewIT WORLDVIEWIT
UNIFORM sTexture TEXTURE0
UNIFORM sBumpMap TEXTURE1
// ATTRIBUTES
ATTRIBUTE inVertex POSITION
ATTRIBUTE inNormal NORMAL
ATTRIBUTE inTexCoord UV0
ATTRIBUTE inTangent TANGENT
// CUSTOM SEMANTICS
UNIFORM uFarClipDistance CUSTOMSEMANTIC_FARCLIPDISTANCE
UNIFORM uSpecularStrength CUSTOMSEMANTIC_SPECULARSTRENGTH
UNIFORM uDiffuseColor CUSTOMSEMANTIC_DIFFUSECOLOUR
TEXTURE 0 pasted_NOlines_diffuse
TEXTURE 1 extensorDigitorum_normal
// SHADERS
VERTEXSHADER GBufferVertexShader
FRAGMENTSHADER GBufferFragmentShader
[/EFFECT]
[EFFECT]
NAME Abductor_Hallucis1
// GLOBALS UNIFORMS
UNIFORM uWorldViewProjMatrix WORLDVIEWPROJECTION
UNIFORM uWorldViewMatrix WORLDVIEW
UNIFORM uWorldViewIT WORLDVIEWIT
UNIFORM sTexture TEXTURE0
UNIFORM sBumpMap TEXTURE1
// ATTRIBUTES
ATTRIBUTE inVertex POSITION
ATTRIBUTE inNormal NORMAL
ATTRIBUTE inTexCoord UV0
ATTRIBUTE inTangent TANGENT
// CUSTOM SEMANTICS
UNIFORM uFarClipDistance CUSTOMSEMANTIC_FARCLIPDISTANCE
UNIFORM uSpecularStrength CUSTOMSEMANTIC_SPECULARSTRENGTH
UNIFORM uDiffuseColor CUSTOMSEMANTIC_DIFFUSECOLOUR
TEXTURE 0 Abductor_Hallucis_diffuse
TEXTURE 1 Abductor_Digiti_Minimi_tendon_normal
// SHADERS
VERTEXSHADER GBufferVertexShader
FRAGMENTSHADER GBufferFragmentShader
[/EFFECT]
[EFFECT]
NAME extensorDigitorum1
// GLOBALS UNIFORMS
UNIFORM uWorldViewProjMatrix WORLDVIEWPROJECTION
UNIFORM uWorldViewMatrix WORLDVIEW
UNIFORM uWorldViewIT WORLDVIEWIT
UNIFORM sTexture TEXTURE0
UNIFORM sBumpMap TEXTURE1
// ATTRIBUTES
ATTRIBUTE inVertex POSITION
ATTRIBUTE inNormal NORMAL
ATTRIBUTE inTexCoord UV0
ATTRIBUTE inTangent TANGENT
// CUSTOM SEMANTICS
UNIFORM uFarClipDistance CUSTOMSEMANTIC_FARCLIPDISTANCE
UNIFORM uSpecularStrength CUSTOMSEMANTIC_SPECULARSTRENGTH
UNIFORM uDiffuseColor CUSTOMSEMANTIC_DIFFUSECOLOUR
TEXTURE 0 extensorDigitorum_diffuse
TEXTURE 1 extensorDigitorum_normal
// SHADERS
VERTEXSHADER GBufferVertexShader
FRAGMENTSHADER GBufferFragmentShader
[/EFFECT]
[EFFECT]
NAME FHB_muscle
// GLOBALS UNIFORMS
UNIFORM uWorldViewProjMatrix WORLDVIEWPROJECTION
UNIFORM uWorldViewMatrix WORLDVIEW
UNIFORM uWorldViewIT WORLDVIEWIT
UNIFORM sTexture TEXTURE0
UNIFORM sBumpMap TEXTURE1
// ATTRIBUTES
ATTRIBUTE inVertex POSITION
ATTRIBUTE inNormal NORMAL
ATTRIBUTE inTexCoord UV0
ATTRIBUTE inTangent TANGENT
// CUSTOM SEMANTICS
UNIFORM uFarClipDistance CUSTOMSEMANTIC_FARCLIPDISTANCE
UNIFORM uSpecularStrength CUSTOMSEMANTIC_SPECULARSTRENGTH
UNIFORM uDiffuseColor CUSTOMSEMANTIC_DIFFUSECOLOUR
TEXTURE 0 FHB_muscle_diffuse
TEXTURE 1 Abductor_Digiti_Minimi_tendon_normal
// SHADERS
VERTEXSHADER GBufferVertexShader
FRAGMENTSHADER GBufferFragmentShader
[/EFFECT]
[EFFECT]
NAME FDB_muscle
// GLOBALS UNIFORMS
UNIFORM uWorldViewProjMatrix WORLDVIEWPROJECTION
UNIFORM uWorldViewMatrix WORLDVIEW
UNIFORM uWorldViewIT WORLDVIEWIT
UNIFORM sTexture TEXTURE0
UNIFORM sBumpMap TEXTURE1
// ATTRIBUTES
ATTRIBUTE inVertex POSITION
ATTRIBUTE inNormal NORMAL
ATTRIBUTE inTexCoord UV0
ATTRIBUTE inTangent TANGENT
// CUSTOM SEMANTICS
UNIFORM uFarClipDistance CUSTOMSEMANTIC_FARCLIPDISTANCE
UNIFORM uSpecularStrength CUSTOMSEMANTIC_SPECULARSTRENGTH
UNIFORM uDiffuseColor CUSTOMSEMANTIC_DIFFUSECOLOUR
TEXTURE 0 FDB_muscle_diffuse
TEXTURE 1 Abductor_Digiti_Minimi_tendon_normal
// SHADERS
VERTEXSHADER GBufferVertexShader
FRAGMENTSHADER GBufferFragmentShader
[/EFFECT]
[EFFECT]
NAME achilles_B
// GLOBALS UNIFORMS
UNIFORM uWorldViewProjMatrix WORLDVIEWPROJECTION
UNIFORM uWorldViewMatrix WORLDVIEW
UNIFORM uWorldViewIT WORLDVIEWIT
UNIFORM sTexture TEXTURE0
UNIFORM sBumpMap TEXTURE1
// ATTRIBUTES
ATTRIBUTE inVertex POSITION
ATTRIBUTE inNormal NORMAL
ATTRIBUTE inTexCoord UV0
ATTRIBUTE inTangent TANGENT
// CUSTOM SEMANTICS
UNIFORM uFarClipDistance CUSTOMSEMANTIC_FARCLIPDISTANCE
UNIFORM uSpecularStrength CUSTOMSEMANTIC_SPECULARSTRENGTH
UNIFORM uDiffuseColor CUSTOMSEMANTIC_DIFFUSECOLOUR
TEXTURE 0 achilles_B_diffuse
TEXTURE 1 achilles_normal
// SHADERS
VERTEXSHADER GBufferVertexShader
FRAGMENTSHADER GBufferFragmentShader
[/EFFECT]
[EFFECT]
NAME bones
// GLOBALS UNIFORMS
UNIFORM uWorldViewProjMatrix WORLDVIEWPROJECTION
UNIFORM uWorldViewMatrix WORLDVIEW
UNIFORM uWorldViewIT WORLDVIEWIT
UNIFORM sTexture TEXTURE0
UNIFORM sBumpMap TEXTURE1
// ATTRIBUTES
ATTRIBUTE inVertex POSITION
ATTRIBUTE inNormal NORMAL
ATTRIBUTE inTexCoord UV0
ATTRIBUTE inTangent TANGENT
// CUSTOM SEMANTICS
UNIFORM uFarClipDistance CUSTOMSEMANTIC_FARCLIPDISTANCE
UNIFORM uSpecularStrength CUSTOMSEMANTIC_SPECULARSTRENGTH
UNIFORM uDiffuseColor CUSTOMSEMANTIC_DIFFUSECOLOUR
TEXTURE 0 FootBones_diffuse
TEXTURE 1 FootBones_1k_normalmap
// SHADERS
VERTEXSHADER GBufferVertexShader
FRAGMENTSHADER GBufferFragmentShader
[/EFFECT]
[EFFECT]
NAME Skin_facingRatio_Mat
ATTRIBUTE inVertex POSITION
ATTRIBUTE inNormal NORMAL
ATTRIBUTE inTangent TANGENT
ATTRIBUTE inBiNormal BINORMAL
ATTRIBUTE inTexCoord UV0
ATTRIBUTE inBoneIndex BONEINDEX
ATTRIBUTE inBoneWeights BONEWEIGHT
UNIFORM ambientMaterial MATERIALCOLORAMBIENT
UNIFORM diffuseMaterial CUSTOMSEMANTIC_DIFFUSECOLOUR
UNIFORM specularMaterial CUSTOMSEMANTIC_SPECULARSTRENGTH
UNIFORM shininess MATERIALSHININESS
UNIFORM eyePos EYEPOSMODEL
UNIFORM ViewProjMatrix WORLDVIEWPROJECTION
UNIFORM WorldMatrix WORLD_MATRIX
UNIFORM inLight0 LIGHTPOSMODEL0
UNIFORM inLight1 LIGHTPOSMODEL1
UNIFORM inLight2 LIGHTPOSMODEL2
UNIFORM lightColor0 LIGHTCOLOR0
UNIFORM lightColor1 LIGHTCOLOR1
UNIFORM lightColor2 LIGHTCOLOR2
UNIFORM BoneCount BONECOUNT
UNIFORM BoneMatrixArray BONEMATRIXARRAY
UNIFORM BoneMatrixArrayIT BONEMATRIXARRAYIT
UNIFORM isHighlighted IS_HIGHLIGHTED
UNIFORM isClearLayer IS_CLEAR_LAYER
VERTEXSHADER skinVertShader
FRAGMENTSHADER skinFragShader
[/EFFECT]
[VERTEXSHADER]
NAME skinVertShader
[GLSL_CODE]
attribute highp vec3 inVertex;
attribute mediump vec3 inNormal;
attribute mediump vec2 inTexCoord;
uniform highp mat4 ViewProjMatrix;
uniform highp mat4 WorldMatrix;
uniform mediump vec4 inLight0;
uniform mediump vec4 inLight1;
uniform mediump vec4 inLight2;
uniform lowp int LightCount;
uniform mediump vec3 eyePos;
varying mediump vec3 Light0;
varying mediump vec3 Light1;
varying mediump vec3 Light2;
varying mediump vec2 TexCoord;
varying mediump vec3 outNormal;
varying mediump vec3 eyeVector;
varying highp vec4 outPosition;
void main()
{
highp vec4 position = vec4(inVertex, 1.0);
if(inLight0.w > 0.0){
Light0 = normalize(inLight0.xyz - position.xyz); //Light0.w > 0 tells us that Light0 is the lights position
}else{
Light0 = inLight0.xyz;
}
if(inLight1.w > 0.0){
Light1 = normalize(inLight1.xyz - position.xyz); //Light1.w > 0 tells us that Light1 is the lights position
}else{
Light1 = inLight1.xyz;
}
if(inLight2.w > 0.0){
Light2 = normalize(inLight2.xyz - position.xyz); //Light1.w > 0 tells us that Light1 is the lights position
}else{
Light2 = inLight2.xyz;
}
position = WorldMatrix * position;
outPosition = position;
gl_Position = ViewProjMatrix * position;
TexCoord = inTexCoord;
outNormal = inNormal;
eyeVector = normalize(eyePos - position.xyz);
}
[/GLSL_CODE]
[/VERTEXSHADER]
[FRAGMENTSHADER]
NAME skinFragShader
[GLSL_CODE]
uniform mediump int isClearLayer;
uniform mediump vec3 effectState;
uniform lowp int isHighlighted;
varying mediump vec3 outNormal;
varying mediump vec3 Light0;
varying mediump vec3 Light1;
varying mediump vec3 Light2;
varying mediump vec3 eyeVector;
void main()
{
highp float facingRatio = 1.0;
highp float alpha = 0.4;
if(isClearLayer == 1)
{
highp vec3 N = normalize(outNormal);
highp vec3 L = normalize(Light0);
highp vec3 E = normalize(eyeVector);
facingRatio = min(1.0, max(0.0, dot(N, E) * 2.0 - 0.25));
alpha = 0.4 + 0.3 * (1.0 - facingRatio);
}
//blue
//const highp vec3 diffuseFacing = vec3(0.05, 0.1, 0.40); //rgb(13,26,102)
//const highp vec3 diffuseNonFacing = vec3(0.19, 0.76, 0.9454); //rgb(48,194,241)
//gray
const highp vec3 diffuseFacing = vec3(0.1, 0.1, 0.1);
const highp vec3 diffuseNonFacing = vec3(0.9, 0.9, 0.9);
highp vec3 color;
color = diffuseFacing * facingRatio + diffuseNonFacing * (1.0 - facingRatio);
if(isHighlighted == 1)
{
highp float greyScale = (color.x * 0.299 + color.y * 0.587 + color.z * 0.114);
highp float shiftValR = 0.0;
highp float shiftValG = 0.368 + ( 0.146 * greyScale);
highp float shiftValB = 0.647 + ( 0.251 * greyScale);
color.xyz = vec3(shiftValR,shiftValG,shiftValB);
}
gl_FragColor = vec4(color, alpha);
}
[/GLSL_CODE]
[/FRAGMENTSHADER]
[EFFECT]
NAME Nerves1
// GLOBALS UNIFORMS
UNIFORM uWorldViewProjMatrix WORLDVIEWPROJECTION
UNIFORM uWorldViewMatrix WORLDVIEW
UNIFORM uWorldViewIT WORLDVIEWIT
UNIFORM sTexture TEXTURE0
UNIFORM sBumpMap TEXTURE1
// ATTRIBUTES
ATTRIBUTE inVertex POSITION
ATTRIBUTE inNormal NORMAL
ATTRIBUTE inTexCoord UV0
ATTRIBUTE inTangent TANGENT
// CUSTOM SEMANTICS
UNIFORM uFarClipDistance CUSTOMSEMANTIC_FARCLIPDISTANCE
UNIFORM uSpecularStrength CUSTOMSEMANTIC_SPECULARSTRENGTH
UNIFORM uDiffuseColor CUSTOMSEMANTIC_DIFFUSECOLOUR
TEXTURE 0 FootBones_diffuse
TEXTURE 1 FootBones_1k_normalmap
// SHADERS
VERTEXSHADER GBufferVertexShader
FRAGMENTSHADER GBufferFragmentShader
[/EFFECT]
[EFFECT]
NAME Vessel1
// GLOBALS UNIFORMS
UNIFORM uWorldViewProjMatrix WORLDVIEWPROJECTION
UNIFORM uWorldViewMatrix WORLDVIEW
UNIFORM uWorldViewIT WORLDVIEWIT
UNIFORM sTexture TEXTURE0
UNIFORM sBumpMap TEXTURE1
// ATTRIBUTES
ATTRIBUTE inVertex POSITION
ATTRIBUTE inNormal NORMAL
ATTRIBUTE inTexCoord UV0
ATTRIBUTE inTangent TANGENT
// CUSTOM SEMANTICS
UNIFORM uFarClipDistance CUSTOMSEMANTIC_FARCLIPDISTANCE
UNIFORM uSpecularStrength CUSTOMSEMANTIC_SPECULARSTRENGTH
UNIFORM uDiffuseColor CUSTOMSEMANTIC_DIFFUSECOLOUR
TEXTURE 0 FootBones_diffuse
TEXTURE 1 FootBones_1k_normalmap
// SHADERS
VERTEXSHADER GBufferVertexShader
FRAGMENTSHADER GBufferFragmentShader
[/EFFECT]
[EFFECT]
NAME Inferior_Extensor_Retinaculum1
// GLOBALS UNIFORMS
UNIFORM uWorldViewProjMatrix WORLDVIEWPROJECTION
UNIFORM uWorldViewMatrix WORLDVIEW
UNIFORM uWorldViewIT WORLDVIEWIT
UNIFORM sTexture TEXTURE0
UNIFORM sBumpMap TEXTURE1
// ATTRIBUTES
ATTRIBUTE inVertex POSITION
ATTRIBUTE inNormal NORMAL
ATTRIBUTE inTexCoord UV0
ATTRIBUTE inTangent TANGENT
// CUSTOM SEMANTICS
UNIFORM uFarClipDistance CUSTOMSEMANTIC_FARCLIPDISTANCE
UNIFORM uSpecularStrength CUSTOMSEMANTIC_SPECULARSTRENGTH
UNIFORM uDiffuseColor CUSTOMSEMANTIC_DIFFUSECOLOUR
TEXTURE 0 Inferior_Extensor_Retinaculum_transparency
TEXTURE 1 Inferior_Extensor_Retinaculum_normal
// SHADERS
VERTEXSHADER GBufferVertexShader
FRAGMENTSHADER GBufferFragmentShader
[/EFFECT]
[TEXTURE]
NAME Abductor_Digiti_Minimi_tendon_bump
PATH Abductor_Digiti_Minimi_tendon_bump.pvr
MINIFICATION LINEAR
MAGNIFICATION LINEAR
MIPMAP LINEAR
[/TEXTURE]
[TEXTURE]
NAME Abductor_Digiti_Minimi_tendon_diffuse
PATH Abductor_Digiti_Minimi_tendon_diffuse.pvr
MINIFICATION LINEAR
MAGNIFICATION LINEAR
MIPMAP LINEAR
[/TEXTURE]
[TEXTURE]
NAME FootBones_diffuse
PATH FootBones_diffuse.pvr
MINIFICATION LINEAR
MAGNIFICATION LINEAR
MIPMAP LINEAR
[/TEXTURE]
[TEXTURE]
NAME FootBones_1k_normalmap
PATH FootBones_1k_normalmap.pvr
MINIFICATION LINEAR
MAGNIFICATION LINEAR
MIPMAP LINEAR
[/TEXTURE]
[TEXTURE]
NAME Abductor_Digiti_Minimi_tendon_normal
PATH Abductor_Digiti_Minimi_tendon_normal.pvr
MINIFICATION LINEAR
MAGNIFICATION LINEAR
MIPMAP LINEAR
[/TEXTURE]
[TEXTURE]
NAME Abductor_Hallucis_diffuse
PATH Abductor_Hallucis_diffuse.pvr
MINIFICATION LINEAR
MAGNIFICATION LINEAR
MIPMAP LINEAR
[/TEXTURE]
[TEXTURE]
NAME ach_x_bump
PATH ach_x_bump.pvr
MINIFICATION LINEAR
MAGNIFICATION LINEAR
MIPMAP LINEAR
[/TEXTURE]
[TEXTURE]
NAME ach_x_normal
PATH ach_x_normal.pvr
MINIFICATION LINEAR
MAGNIFICATION LINEAR
MIPMAP LINEAR
[/TEXTURE]
[TEXTURE]
NAME ach_x_diffuse
PATH ach_x_diffuse.pvr
MINIFICATION LINEAR
MAGNIFICATION LINEAR
MIPMAP LINEAR
[/TEXTURE]
[TEXTURE]
NAME achilles_B_diffuse
PATH achilles_B_diffuse.pvr
MINIFICATION LINEAR
MAGNIFICATION LINEAR
MIPMAP LINEAR
[/TEXTURE]
[TEXTURE]
NAME achilles_diffuse
PATH achilles_diffuse.pvr
MINIFICATION LINEAR
MAGNIFICATION LINEAR
MIPMAP LINEAR
[/TEXTURE]
[TEXTURE]
NAME achilles_normal
PATH achilles_normal.pvr
MINIFICATION LINEAR
MAGNIFICATION LINEAR
MIPMAP LINEAR
[/TEXTURE]
[TEXTURE]
NAME extensorDigitorum_diffuse
PATH extensorDigitorum_diffuse.pvr
MINIFICATION LINEAR
MAGNIFICATION LINEAR
MIPMAP LINEAR
[/TEXTURE]
[TEXTURE]
NAME extensorDigitorum_normal
PATH extensorDigitorum_normal.pvr
MINIFICATION LINEAR
MAGNIFICATION LINEAR
MIPMAP LINEAR
[/TEXTURE]
[TEXTURE]
NAME FDB_muscle_diffuse
PATH FDB_muscle_diffuse.pvr
MINIFICATION LINEAR
MAGNIFICATION LINEAR
MIPMAP LINEAR
[/TEXTURE]
[TEXTURE]
NAME FHB_muscle_diffuse
PATH FHB_muscle_diffuse.pvr
MINIFICATION LINEAR
MAGNIFICATION LINEAR
MIPMAP LINEAR
[/TEXTURE]
[TEXTURE]
NAME Inferior_Extensor_Retinaculum_normal
PATH Inferior_Extensor_Retinaculum_normal.pvr
MINIFICATION LINEAR
MAGNIFICATION LINEAR
MIPMAP LINEAR
[/TEXTURE]
[TEXTURE]
NAME Inferior_Extensor_Retinaculum_transparency
PATH Inferior_Extensor_Retinaculum_transparency.pvr
MINIFICATION LINEAR
MAGNIFICATION LINEAR
MIPMAP LINEAR
[/TEXTURE]
[TEXTURE]
NAME pasted_NOlines_diffuse
PATH pasted_NOlines_diffuse.pvr
MINIFICATION LINEAR
MAGNIFICATION LINEAR
MIPMAP LINEAR
[/TEXTURE]