Version 1.10
-------- THE HPL ENGINE LOG ------------
Engine build ID 20100818114615
Creating Engine Modules
--------------------------------------------------------
 Creating graphics module
 Creating system module
 Creating resource module
 Creating input module
 Creating sound module
 Creating physics module
 Creating ai module
 Creating gui module
 Creating generate module
 Creating haptic module
 Creating scene module
--------------------------------------------------------
Initializing Resources Module
--------------------------------------------------------
 Creating loader handlers 
 Creating resource managers
 Adding loaders to handlers 
--------------------------------------------------------
Initializing Graphics Module
--------------------------------------------------------
Init lowlevel graphics: 1280x800 bpp:32 fs:1 ms:0 gpufmt:2 cap:'Amnesia - The Dark Descent - Loading...' pos

-1x-1)
 Setting video mode: 1280 x 800 - 32 bpp
 Init Glew...OK
 Setting up OpenGL
  Vendor: NVIDIA Corporation
  Renderer: GeForce 8400M GS/PCI/SSE2
  Version: 2.1.1
  Max texture image units: 32
  Max texture coord units: 8
  Max user clip planes: 6
  Two sided stencil: 1
  Vertex Buffer Object: 1
  Anisotropic filtering: 1
  Max Anisotropic degree: 16
  Multisampling: 1
  Texture compression: 1
  Texture compression S3TC: 1
  Auto generate MipMaps: 1
  Render to texture: 1
  Max draw buffers: 8
  Max color render targets: 8
  Packed depth-stencil: 1
  Texture float: 1
  GLSL Version: 1.20 NVIDIA via Cg compiler
  ShaderModel 2: 1
  ShaderModel 3: 1
  ShaderModel 4: 1
  OGL ATIFragmentShader: 0
ATTENTION: System does not support const arrays in glsl!
Setting up G-Bugger: type: 0 texturenum: 3
 Adding engine materials
 Initializing DevIL
  Vendor String: Abysmal Software
  Version String: Developer's Image Library (DevIL) 1.6.8pre Aug 12 2006
  Version Number: 168
 Adding engine post effects
--------------------------------------------------------
Initializing Sound Module
--------------------------------------------------------
 Initializing OpenAL
  Available OpenAL devices:
   0. Generic Software on SigmaTel Audio(OpenAL default)
   1. Generic Software on Virtual Cable 1
   2. Generic Software on Bluetooth Audio
   3. Generic Software on Bluetooth High Quality Audio
  Trying to open device 'Generic Software on SigmaTel Audio'... Success!
  Number of mono sources: 32
  Streaming setup: 4 Buffers x 262144 bytes each
--------------------------------------------------------
Initializing Game Module
--------------------------------------------------------
 Adding engine updates
 Initializing script functions
--------------------------------------------------------
User Initialization
--------------------------------------------------------
--------------------------------------------------------
Game Running
--------------------------------------------------------
 -------- Loading map 'menu_bg.map' ---------
ERROR: Failed to compile GLSL shader 'c:/program files/steam/steamapps/common/amnesia the dark descent/core/shaders/deferred_gbuffer_solid_frag.glsl'!
Shader code:
-------------------
[0001] ////////////////////////////////////////////////////////
[0002] // Deferred G-Buffer Solid - Fragment Shader
[0003] //
[0004] //
[0005] ////////////////////////////////////////////////////////
[0006] #version 120
[0007] #extension GL_ARB_texture_rectangle : enable
[0008] 
[0009] // Pack a float in a 2d vector
[0010] vec2 PackFloatInVec2(float afX)
[0011] {
[0012] 	vec2 vRet;
[0013] 	afX *= 255.0;
[0014] 	vRet.x = floor(afX);
[0015] 	vRet.y = (afX - vRet.x);
[0016] 	vRet.x *= (1.0 / 255.0);
[0017] 	return vRet;	
[0018] }
[0019] 
[0020] //------------------------------------
[0021] 
[0022] // Pack a float in a 3d vector
[0023] vec3 PackFloatInVec3(float afX)
[0024] {
[0025] 	vec3 vRet;
[0026] 	afX *= 255.0;
[0027] 	vRet.x = floor(afX);
[0028] 	afX = (afX - vRet.x) * 255.0;
[0029] 	vRet.y = floor(afX);
[0030] 	vRet.z = afX - vRet.y;
[0031] 	vRet.xy *= (1.0 / 255.0);
[0032] 	
[0033] 	return vRet;	
[0034] }
[0035] 
[0036] //------------------------------------
[0037] 
[0038] // Unpack a 2d vector to a float
[0039] float UnpackVec2ToFloat(vec2 avVal)
[0040] {
[0041] 	return dot(avVal, vec2(1.0, 1.0/255.0) ); 	
[0042] } 
[0043] 
[0044] //------------------------------------
[0045] 
[0046] // Unpack a 3d vector to a float
[0047] float UnpackVec3ToFloat(vec3 avVal)
[0048] {
[0049] 	return dot(avVal, vec3(1.0, 1.0/255.0, 1.0 / (255.0*255.0 )) ); 	
[0050] }
[0051] 
[0052] //-----------------------------------------
[0053] // Caclulate the fresnel term.
[0054] float Fresnel(float afEDotN, float afFresnelBias, float afFresnelPow)
[0055] {
[0056] 	float fFacing = 1.0 - afEDotN;
[0057] 	return max(afFresnelBias+ (1.0-afFresnelBias)* pow(fFacing,afFresnelPow), 0.0); 
[0058] }
[0059] 
[0060] //-----------------------------------------
[0061] 
[0062] ////////////////////
[0063] //Normal interpolated values
[0064] varying vec3 gvNormal;
[0065] 
[0066] 
[0067] 	varying vec3 gvTangent;
[0068] 	varying vec3 gvBinormal;
[0069] 
[0070] 
[0071] /////////////////////
[0072] //Extra interpolated values
[0073] 
[0074] //32 bit G-Buffer
[0075] 
[0076] 	varying float gfLinearDepth;
[0077] 
[0078] 
[0079] //64 bit G-Buffer
[0080] 
[0081] 
[0082] ////////////////////
[0083] //Textures
[0084] uniform sampler2D aDiffuseMap;
[0085] 
[0086] 
[0087] 
[0088] 	uniform sampler2D aNormalMap;
[0089] 
[0090] 
[0091] 
[0092] 
[0093] 	uniform sampler2D aSpecularMap;
[0094] 
[0095] 
[0096] 
[0097] 
[0098] 
[0099] 
[0100] 
[0101] 
[0102] 
[0103] 
[0104] //--------------------------------------------------
[0105] 
[0106] ///////////////////////////////
[0107] // Relief mapping helpers
[0108] 
[0109] //Optimize by getting 4 depths at once somehow?
[0110] void RayLinearIntersectionSM2(sampler2D aHeightMap, inout vec3 avPosition, inout vec3 avEyeVec)
[0111] {
[0112] 	const int lSearchSteps = 8; 
[0113] 
[0114] 	avEyeVec /= lSearchSteps; 	//Split up the eye vector into the number of steps 
[0115] 
[0116] 	for(int i=0; i<lSearchSteps-1; i++) 
[0117] 	{ 
[0118] 		float fDepth = texture2D(aHeightMap, avPosition.xy).w; 
[0119] 		if(avPosition.z < fDepth) avPosition += avEyeVec; 
[0120] 	} 	
[0121] }
[0122] 
[0123] void RayLinearIntersectionSM3(sampler2D aHeightMap, float afSearchSteps, inout vec3 avPosition, inout vec3 avEyeVec)
[0124] {
[0125] 	avEyeVec /= afSearchSteps; 	//Split up the eye vector into the number of steps 
[0126] 
[0127] 	for(int i=0; i<afSearchSteps-1; i++) 
[0128] 	{ 
[0129] 		float fDepth = texture2D(aHeightMap, avPosition.xy).w; 
[0130] 		if(avPosition.z < fDepth) avPosition += avEyeVec; 
[0131] 	} 
[0132] }
[0133] 
[0134] 
[0135] void RayBinaryIntersection(sampler2D aHeightMap, inout vec3 avPosition, inout vec3 avEyeVec)
[0136] { 
[0137] 	const int lSearchSteps = 6; 
[0138] 	for(int i=0; i<lSearchSteps; i++) 
[0139] 	{ 
[0140] 		float fDepth = texture2D(aHeightMap, avPosition.xy).w;
[0141] 		if(avPosition.z < fDepth) 
[0142] 			avPosition += avEyeVec; 
[0143] 		
[0144] 		avEyeVec *= 0.5; 
[0145] 		avPosition -= avEyeVec; 
[0146] 	} 
[0147] }
[0148] 
[0149] 
[0150] 
[0151] //--------------------------------------------------
[0152] 
[0153] ///////////////////////////////
[0154] // Main program
[0155] void main()
[0156] {
[0157] 	//////////////////////////////////
[0158] 	//Diffuse
[0159] 
[0160] 		vec2 vTexCoord = gl_TexCoord[0].xy;
[0161] 		vec4 vDiffuseColor = texture2D(aDiffuseMap, vTexCoord);
[0162] 
[0163] 	
[0164] 	
[0165] 	//////////////////////////////////
[0166] 	//Set Diffuse color if no environemnt mapping is used.
[0167] 
[0168] 		gl_FragData[0] = vDiffuseColor;
[0169] 
[0170] 
[0171] 	//////////////////////////////////
[0172] 	//Normal
[0173] 
[0174] 		vec3 vNormal = texture2D(aNormalMap,vTexCoord).xyz - 0.5; //No need for full unpack x*2-1, becuase normal is normalized. (but now we do not normalize...)
[0175] 		vec3 vScreenNormal = normalize(vNormal.x * gvTangent + vNormal.y * gvBinormal + vNormal.z * gvNormal);
[0176] 
[0177] 	//If 32 bit we need to pack, else no packing is needed.
[0178] 
[0179] 		gl_FragData[1].xyz = vScreenNormal*0.5 + 0.5; 
[0180] 
[0181] 	
[0182] 	
[0183] 	//////////////////////////////////
[0184] 	//Environment Map
[0185] 
[0186] 	
[0187] 	
[0188] 	//////////////////////////////////
[0189] 	//Depth
[0190] 
[0191] 		gl_FragData[2].xyz = PackFloatInVec3(gfLinearDepth); 
[0192] 
[0193] 	
[0194] 	//////////////////////////////////
[0195] 	//Specular
[0196] 
[0197] 
[0198] 			vec2 vSpecVals = texture2D(aSpecularMap, vTexCoord).xy;
[0199] 			gl_FragData[1].w = vSpecVals.x;
[0200] 			gl_FragData[2].w = vSpecVals.y;
[0201] 
[0202] 
---------------------
Compile log:
---------------------
(168) : error C7531: global variable gl_FragData requires "#extension GL_ARB_draw_buffers : enable" before use
---------------------
ERROR: Couldn't create program 'deferred_gbuffer_solid_frag.glsl'
ERROR: Could not load material 'soliddiffuse' shader 'deferred_gbuffer_solid_frag.glsl'
ERROR: Failed to compile GLSL shader 'c:/program files/steam/steamapps/common/amnesia the dark descent/core/shaders/deferred_gbuffer_solid_frag.glsl'!
Shader code:
-------------------
[0001] ////////////////////////////////////////////////////////
[0002] // Deferred G-Buffer Solid - Fragment Shader
[0003] //
[0004] //
[0005] ////////////////////////////////////////////////////////
[0006] #version 120
[0007] #extension GL_ARB_texture_rectangle : enable
[0008] 
[0009] // Pack a float in a 2d vector
[0010] vec2 PackFloatInVec2(float afX)
[0011] {
[0012] 	vec2 vRet;
[0013] 	afX *= 255.0;
[0014] 	vRet.x = floor(afX);
[0015] 	vRet.y = (afX - vRet.x);
[0016] 	vRet.x *= (1.0 / 255.0);
[0017] 	return vRet;	
[0018] }
[0019] 
[0020] //------------------------------------
[0021] 
[0022] // Pack a float in a 3d vector
[0023] vec3 PackFloatInVec3(float afX)
[0024] {
[0025] 	vec3 vRet;
[0026] 	afX *= 255.0;
[0027] 	vRet.x = floor(afX);
[0028] 	afX = (afX - vRet.x) * 255.0;
[0029] 	vRet.y = floor(afX);
[0030] 	vRet.z = afX - vRet.y;
[0031] 	vRet.xy *= (1.0 / 255.0);
[0032] 	
[0033] 	return vRet;	
[0034] }
[0035] 
[0036] //------------------------------------
[0037] 
[0038] // Unpack a 2d vector to a float
[0039] float UnpackVec2ToFloat(vec2 avVal)
[0040] {
[0041] 	return dot(avVal, vec2(1.0, 1.0/255.0) ); 	
[0042] } 
[0043] 
[0044] //------------------------------------
[0045] 
[0046] // Unpack a 3d vector to a float
[0047] float UnpackVec3ToFloat(vec3 avVal)
[0048] {
[0049] 	return dot(avVal, vec3(1.0, 1.0/255.0, 1.0 / (255.0*255.0 )) ); 	
[0050] }
[0051] 
[0052] //-----------------------------------------
[0053] // Caclulate the fresnel term.
[0054] float Fresnel(float afEDotN, float afFresnelBias, float afFresnelPow)
[0055] {
[0056] 	float fFacing = 1.0 - afEDotN;
[0057] 	return max(afFresnelBias+ (1.0-afFresnelBias)* pow(fFacing,afFresnelPow), 0.0); 
[0058] }
[0059] 
[0060] //-----------------------------------------
[0061] 
[0062] ////////////////////
[0063] //Normal interpolated values
[0064] varying vec3 gvNormal;
[0065] 
[0066] 
[0067] 
[0068] /////////////////////
[0069] //Extra interpolated values
[0070] 
[0071] //32 bit G-Buffer
[0072] 
[0073] 	varying float gfLinearDepth;
[0074] 
[0075] 
[0076] //64 bit G-Buffer
[0077] 
[0078] 
[0079] ////////////////////
[0080] //Textures
[0081] uniform sampler2D aDiffuseMap;
[0082] 
[0083] 
[0084] 
[0085] 
[0086] 
[0087] 	uniform sampler2D aSpecularMap;
[0088] 
[0089] 
[0090] 
[0091] 
[0092] 
[0093] 
[0094] 
[0095] 
[0096] 
[0097] 
[0098] //--------------------------------------------------
[0099] 
[0100] ///////////////////////////////
[0101] // Relief mapping helpers
[0102] 
[0103] //Optimize by getting 4 depths at once somehow?
[0104] void RayLinearIntersectionSM2(sampler2D aHeightMap, inout vec3 avPosition, inout vec3 avEyeVec)
[0105] {
[0106] 	const int lSearchSteps = 8; 
[0107] 
[0108] 	avEyeVec /= lSearchSteps; 	//Split up the eye vector into the number of steps 
[0109] 
[0110] 	for(int i=0; i<lSearchSteps-1; i++) 
[0111] 	{ 
[0112] 		float fDepth = texture2D(aHeightMap, avPosition.xy).w; 
[0113] 		if(avPosition.z < fDepth) avPosition += avEyeVec; 
[0114] 	} 	
[0115] }
[0116] 
[0117] void RayLinearIntersectionSM3(sampler2D aHeightMap, float afSearchSteps, inout vec3 avPosition, inout vec3 avEyeVec)
[0118] {
[0119] 	avEyeVec /= afSearchSteps; 	//Split up the eye vector into the number of steps 
[0120] 
[0121] 	for(int i=0; i<afSearchSteps-1; i++) 
[0122] 	{ 
[0123] 		float fDepth = texture2D(aHeightMap, avPosition.xy).w; 
[0124] 		if(avPosition.z < fDepth) avPosition += avEyeVec; 
[0125] 	} 
[0126] }
[0127] 
[0128] 
[0129] void RayBinaryIntersection(sampler2D aHeightMap, inout vec3 avPosition, inout vec3 avEyeVec)
[0130] { 
[0131] 	const int lSearchSteps = 6; 
[0132] 	for(int i=0; i<lSearchSteps; i++) 
[0133] 	{ 
[0134] 		float fDepth = texture2D(aHeightMap, avPosition.xy).w;
[0135] 		if(avPosition.z < fDepth) 
[0136] 			avPosition += avEyeVec; 
[0137] 		
[0138] 		avEyeVec *= 0.5; 
[0139] 		avPosition -= avEyeVec; 
[0140] 	} 
[0141] }
[0142] 
[0143] 
[0144] 
[0145] //--------------------------------------------------
[0146] 
[0147] ///////////////////////////////
[0148] // Main program
[0149] void main()
[0150] {
[0151] 	//////////////////////////////////
[0152] 	//Diffuse
[0153] 
[0154] 		vec2 vTexCoord = gl_TexCoord[0].xy;
[0155] 		vec4 vDiffuseColor = texture2D(aDiffuseMap, vTexCoord);
[0156] 
[0157] 	
[0158] 	
[0159] 	//////////////////////////////////
[0160] 	//Set Diffuse color if no environemnt mapping is used.
[0161] 
[0162] 		gl_FragData[0] = vDiffuseColor;
[0163] 
[0164] 
[0165] 	//////////////////////////////////
[0166] 	//Normal
[0167] 
[0168] 		vec3 vScreenNormal = normalize(gvNormal);
[0169] 
[0170] 	//If 32 bit we need to pack, else no packing is needed.
[0171] 
[0172] 		gl_FragData[1].xyz = vScreenNormal*0.5 + 0.5; 
[0173] 
[0174] 	
[0175] 	
[0176] 	//////////////////////////////////
[0177] 	//Environment Map
[0178] 
[0179] 	
[0180] 	
[0181] 	//////////////////////////////////
[0182] 	//Depth
[0183] 
[0184] 		gl_FragData[2].xyz = PackFloatInVec3(gfLinearDepth); 
[0185] 
[0186] 	
[0187] 	//////////////////////////////////
[0188] 	//Specular
[0189] 
[0190] 
[0191] 			vec2 vSpecVals = texture2D(aSpecularMap, vTexCoord).xy;
[0192] 			gl_FragData[1].w = vSpecVals.x;
[0193] 			gl_FragData[2].w = vSpecVals.y;
[0194] 
[0195] 
---------------------
Compile log:
---------------------
(162) : error C7531: global variable gl_FragData requires "#extension GL_ARB_draw_buffers : enable" before use
---------------------
ERROR: Couldn't create program 'deferred_gbuffer_solid_frag.glsl'
ERROR: Could not load material 'soliddiffuse' shader 'deferred_gbuffer_solid_frag.glsl'
ERROR: Failed to compile GLSL shader 'c:/program files/steam/steamapps/common/amnesia the dark descent/core/shaders/deferred_gbuffer_solid_frag.glsl'!
Shader code:
-------------------
[0001] ////////////////////////////////////////////////////////
[0002] // Deferred G-Buffer Solid - Fragment Shader
[0003] //
[0004] //
[0005] ////////////////////////////////////////////////////////
[0006] #version 120
[0007] #extension GL_ARB_texture_rectangle : enable
[0008] 
[0009] // Pack a float in a 2d vector
[0010] vec2 PackFloatInVec2(float afX)
[0011] {
[0012] 	vec2 vRet;
[0013] 	afX *= 255.0;
[0014] 	vRet.x = floor(afX);
[0015] 	vRet.y = (afX - vRet.x);
[0016] 	vRet.x *= (1.0 / 255.0);
[0017] 	return vRet;	
[0018] }
[0019] 
[0020] //------------------------------------
[0021] 
[0022] // Pack a float in a 3d vector
[0023] vec3 PackFloatInVec3(float afX)
[0024] {
[0025] 	vec3 vRet;
[0026] 	afX *= 255.0;
[0027] 	vRet.x = floor(afX);
[0028] 	afX = (afX - vRet.x) * 255.0;
[0029] 	vRet.y = floor(afX);
[0030] 	vRet.z = afX - vRet.y;
[0031] 	vRet.xy *= (1.0 / 255.0);
[0032] 	
[0033] 	return vRet;	
[0034] }
[0035] 
[0036] //------------------------------------
[0037] 
[0038] // Unpack a 2d vector to a float
[0039] float UnpackVec2ToFloat(vec2 avVal)
[0040] {
[0041] 	return dot(avVal, vec2(1.0, 1.0/255.0) ); 	
[0042] } 
[0043] 
[0044] //------------------------------------
[0045] 
[0046] // Unpack a 3d vector to a float
[0047] float UnpackVec3ToFloat(vec3 avVal)
[0048] {
[0049] 	return dot(avVal, vec3(1.0, 1.0/255.0, 1.0 / (255.0*255.0 )) ); 	
[0050] }
[0051] 
[0052] //-----------------------------------------
[0053] // Caclulate the fresnel term.
[0054] float Fresnel(float afEDotN, float afFresnelBias, float afFresnelPow)
[0055] {
[0056] 	float fFacing = 1.0 - afEDotN;
[0057] 	return max(afFresnelBias+ (1.0-afFresnelBias)* pow(fFacing,afFresnelPow), 0.0); 
[0058] }
[0059] 
[0060] //-----------------------------------------
[0061] 
[0062] ////////////////////
[0063] //Normal interpolated values
[0064] varying vec3 gvNormal;
[0065] 
[0066] 
[0067] 
[0068] /////////////////////
[0069] //Extra interpolated values
[0070] 
[0071] //32 bit G-Buffer
[0072] 
[0073] 	varying float gfLinearDepth;
[0074] 
[0075] 
[0076] //64 bit G-Buffer
[0077] 
[0078] 
[0079] ////////////////////
[0080] //Textures
[0081] uniform sampler2D aDiffuseMap;
[0082] 
[0083] 
[0084] 
[0085] 
[0086] 
[0087] 
[0088] 
[0089] 
[0090] 
[0091] 
[0092] 
[0093] 
[0094] 
[0095] //--------------------------------------------------
[0096] 
[0097] ///////////////////////////////
[0098] // Relief mapping helpers
[0099] 
[0100] //Optimize by getting 4 depths at once somehow?
[0101] void RayLinearIntersectionSM2(sampler2D aHeightMap, inout vec3 avPosition, inout vec3 avEyeVec)
[0102] {
[0103] 	const int lSearchSteps = 8; 
[0104] 
[0105] 	avEyeVec /= lSearchSteps; 	//Split up the eye vector into the number of steps 
[0106] 
[0107] 	for(int i=0; i<lSearchSteps-1; i++) 
[0108] 	{ 
[0109] 		float fDepth = texture2D(aHeightMap, avPosition.xy).w; 
[0110] 		if(avPosition.z < fDepth) avPosition += avEyeVec; 
[0111] 	} 	
[0112] }
[0113] 
[0114] void RayLinearIntersectionSM3(sampler2D aHeightMap, float afSearchSteps, inout vec3 avPosition, inout vec3 avEyeVec)
[0115] {
[0116] 	avEyeVec /= afSearchSteps; 	//Split up the eye vector into the number of steps 
[0117] 
[0118] 	for(int i=0; i<afSearchSteps-1; i++) 
[0119] 	{ 
[0120] 		float fDepth = texture2D(aHeightMap, avPosition.xy).w; 
[0121] 		if(avPosition.z < fDepth) avPosition += avEyeVec; 
[0122] 	} 
[0123] }
[0124] 
[0125] 
[0126] void RayBinaryIntersection(sampler2D aHeightMap, inout vec3 avPosition, inout vec3 avEyeVec)
[0127] { 
[0128] 	const int lSearchSteps = 6; 
[0129] 	for(int i=0; i<lSearchSteps; i++) 
[0130] 	{ 
[0131] 		float fDepth = texture2D(aHeightMap, avPosition.xy).w;
[0132] 		if(avPosition.z < fDepth) 
[0133] 			avPosition += avEyeVec; 
[0134] 		
[0135] 		avEyeVec *= 0.5; 
[0136] 		avPosition -= avEyeVec; 
[0137] 	} 
[0138] }
[0139] 
[0140] 
[0141] 
[0142] //--------------------------------------------------
[0143] 
[0144] ///////////////////////////////
[0145] // Main program
[0146] void main()
[0147] {
[0148] 	//////////////////////////////////
[0149] 	//Diffuse
[0150] 
[0151] 		vec2 vTexCoord = gl_TexCoord[0].xy;
[0152] 		vec4 vDiffuseColor = texture2D(aDiffuseMap, vTexCoord);
[0153] 
[0154] 	
[0155] 	
[0156] 	//////////////////////////////////
[0157] 	//Set Diffuse color if no environemnt mapping is used.
[0158] 
[0159] 		gl_FragData[0] = vDiffuseColor;
[0160] 
[0161] 
[0162] 	//////////////////////////////////
[0163] 	//Normal
[0164] 
[0165] 		vec3 vScreenNormal = normalize(gvNormal);
[0166] 
[0167] 	//If 32 bit we need to pack, else no packing is needed.
[0168] 
[0169] 		gl_FragData[1].xyz = vScreenNormal*0.5 + 0.5; 
[0170] 
[0171] 	
[0172] 	
[0173] 	//////////////////////////////////
[0174] 	//Environment Map
[0175] 
[0176] 	
[0177] 	
[0178] 	//////////////////////////////////
[0179] 	//Depth
[0180] 
[0181] 		gl_FragData[2].xyz = PackFloatInVec3(gfLinearDepth); 
[0182] 
[0183] 	
[0184] 	//////////////////////////////////
[0185] 	//Specular
[0186] 
[0187] 
[0188] 			gl_FragData[1].w = 0.0;
[0189] 			gl_FragData[2].w = 0.0;
[0190] 
[0191] 
---------------------
Compile log:
---------------------
(159) : error C7531: global variable gl_FragData requires "#extension GL_ARB_draw_buffers : enable" before use
---------------------
ERROR: Couldn't create program 'deferred_gbuffer_solid_frag.glsl'
ERROR: Could not load material 'soliddiffuse' shader 'deferred_gbuffer_solid_frag.glsl'
    Cache Loading: 7066 ms
  Entities: 2009 ms
  Compilation: 1 ms
  Total: 9197 ms
  Meshes created: 25
  Bodies created: 5
 -------- Loading complete ---------
 Setting profile: 'Alex' Path: 'C:\Documents and Settings\Alex\My Documents/Amnesia/Main/Alex/'
-------- BEGIN LOAD FROM C:\Documents and Settings\Alex\My Documents/Amnesia/Main/Alex/AutoSave_RainyHall_2011_1_21_17_30_9_0.sav ---------
LOADING SAVE GAME!
 -------- Loading map '00_rainy_hall.map' ---------
ERROR: Failed to compile GLSL shader 'c:/program files/steam/steamapps/common/amnesia the dark descent/core/shaders/deferred_gbuffer_solid_frag.glsl'!
Shader code:
-------------------
[0001] ////////////////////////////////////////////////////////
[0002] // Deferred G-Buffer Solid - Fragment Shader
[0003] //
[0004] //
[0005] ////////////////////////////////////////////////////////
[0006] #version 120
[0007] #extension GL_ARB_texture_rectangle : enable
[0008] 
[0009] // Pack a float in a 2d vector
[0010] vec2 PackFloatInVec2(float afX)
[0011] {
[0012] 	vec2 vRet;
[0013] 	afX *= 255.0;
[0014] 	vRet.x = floor(afX);
[0015] 	vRet.y = (afX - vRet.x);
[0016] 	vRet.x *= (1.0 / 255.0);
[0017] 	return vRet;	
[0018] }
[0019] 
[0020] //------------------------------------
[0021] 
[0022] // Pack a float in a 3d vector
[0023] vec3 PackFloatInVec3(float afX)
[0024] {
[0025] 	vec3 vRet;
[0026] 	afX *= 255.0;
[0027] 	vRet.x = floor(afX);
[0028] 	afX = (afX - vRet.x) * 255.0;
[0029] 	vRet.y = floor(afX);
[0030] 	vRet.z = afX - vRet.y;
[0031] 	vRet.xy *= (1.0 / 255.0);
[0032] 	
[0033] 	return vRet;	
[0034] }
[0035] 
[0036] //------------------------------------
[0037] 
[0038] // Unpack a 2d vector to a float
[0039] float UnpackVec2ToFloat(vec2 avVal)
[0040] {
[0041] 	return dot(avVal, vec2(1.0, 1.0/255.0) ); 	
[0042] } 
[0043] 
[0044] //------------------------------------
[0045] 
[0046] // Unpack a 3d vector to a float
[0047] float UnpackVec3ToFloat(vec3 avVal)
[0048] {
[0049] 	return dot(avVal, vec3(1.0, 1.0/255.0, 1.0 / (255.0*255.0 )) ); 	
[0050] }
[0051] 
[0052] //-----------------------------------------
[0053] // Caclulate the fresnel term.
[0054] float Fresnel(float afEDotN, float afFresnelBias, float afFresnelPow)
[0055] {
[0056] 	float fFacing = 1.0 - afEDotN;
[0057] 	return max(afFresnelBias+ (1.0-afFresnelBias)* pow(fFacing,afFresnelPow), 0.0); 
[0058] }
[0059] 
[0060] //-----------------------------------------
[0061] 
[0062] ////////////////////
[0063] //Normal interpolated values
[0064] varying vec3 gvNormal;
[0065] 
[0066] 
[0067] 	varying vec3 gvTangent;
[0068] 	varying vec3 gvBinormal;
[0069] 
[0070] 
[0071] /////////////////////
[0072] //Extra interpolated values
[0073] 
[0074] //32 bit G-Buffer
[0075] 
[0076] 	varying float gfLinearDepth;
[0077] 
[0078] 
[0079] //64 bit G-Buffer
[0080] 
[0081] 
[0082] ////////////////////
[0083] //Textures
[0084] uniform sampler2D aDiffuseMap;
[0085] 
[0086] 
[0087] 
[0088] 	uniform sampler2D aNormalMap;
[0089] 
[0090] 
[0091] 
[0092] 
[0093] 
[0094] 
[0095] 
[0096] 
[0097] 
[0098] 
[0099] 
[0100] 
[0101] //--------------------------------------------------
[0102] 
[0103] ///////////////////////////////
[0104] // Relief mapping helpers
[0105] 
[0106] //Optimize by getting 4 depths at once somehow?
[0107] void RayLinearIntersectionSM2(sampler2D aHeightMap, inout vec3 avPosition, inout vec3 avEyeVec)
[0108] {
[0109] 	const int lSearchSteps = 8; 
[0110] 
[0111] 	avEyeVec /= lSearchSteps; 	//Split up the eye vector into the number of steps 
[0112] 
[0113] 	for(int i=0; i<lSearchSteps-1; i++) 
[0114] 	{ 
[0115] 		float fDepth = texture2D(aHeightMap, avPosition.xy).w; 
[0116] 		if(avPosition.z < fDepth) avPosition += avEyeVec; 
[0117] 	} 	
[0118] }
[0119] 
[0120] void RayLinearIntersectionSM3(sampler2D aHeightMap, float afSearchSteps, inout vec3 avPosition, inout vec3 avEyeVec)
[0121] {
[0122] 	avEyeVec /= afSearchSteps; 	//Split up the eye vector into the number of steps 
[0123] 
[0124] 	for(int i=0; i<afSearchSteps-1; i++) 
[0125] 	{ 
[0126] 		float fDepth = texture2D(aHeightMap, avPosition.xy).w; 
[0127] 		if(avPosition.z < fDepth) avPosition += avEyeVec; 
[0128] 	} 
[0129] }
[0130] 
[0131] 
[0132] void RayBinaryIntersection(sampler2D aHeightMap, inout vec3 avPosition, inout vec3 avEyeVec)
[0133] { 
[0134] 	const int lSearchSteps = 6; 
[0135] 	for(int i=0; i<lSearchSteps; i++) 
[0136] 	{ 
[0137] 		float fDepth = texture2D(aHeightMap, avPosition.xy).w;
[0138] 		if(avPosition.z < fDepth) 
[0139] 			avPosition += avEyeVec; 
[0140] 		
[0141] 		avEyeVec *= 0.5; 
[0142] 		avPosition -= avEyeVec; 
[0143] 	} 
[0144] }
[0145] 
[0146] 
[0147] 
[0148] //--------------------------------------------------
[0149] 
[0150] ///////////////////////////////
[0151] // Main program
[0152] void main()
[0153] {
[0154] 	//////////////////////////////////
[0155] 	//Diffuse
[0156] 
[0157] 		vec2 vTexCoord = gl_TexCoord[0].xy;
[0158] 		vec4 vDiffuseColor = texture2D(aDiffuseMap, vTexCoord);
[0159] 
[0160] 	
[0161] 	
[0162] 	//////////////////////////////////
[0163] 	//Set Diffuse color if no environemnt mapping is used.
[0164] 
[0165] 		gl_FragData[0] = vDiffuseColor;
[0166] 
[0167] 
[0168] 	//////////////////////////////////
[0169] 	//Normal
[0170] 
[0171] 		vec3 vNormal = texture2D(aNormalMap,vTexCoord).xyz - 0.5; //No need for full unpack x*2-1, becuase normal is normalized. (but now we do not normalize...)
[0172] 		vec3 vScreenNormal = normalize(vNormal.x * gvTangent + vNormal.y * gvBinormal + vNormal.z * gvNormal);
[0173] 
[0174] 	//If 32 bit we need to pack, else no packing is needed.
[0175] 
[0176] 		gl_FragData[1].xyz = vScreenNormal*0.5 + 0.5; 
[0177] 
[0178] 	
[0179] 	
[0180] 	//////////////////////////////////
[0181] 	//Environment Map
[0182] 
[0183] 	
[0184] 	
[0185] 	//////////////////////////////////
[0186] 	//Depth
[0187] 
[0188] 		gl_FragData[2].xyz = PackFloatInVec3(gfLinearDepth); 
[0189] 
[0190] 	
[0191] 	//////////////////////////////////
[0192] 	//Specular
[0193] 
[0194] 
[0195] 			gl_FragData[1].w = 0.0;
[0196] 			gl_FragData[2].w = 0.0;
[0197] 
[0198] 
---------------------
Compile log:
---------------------
(165) : error C7531: global variable gl_FragData requires "#extension GL_ARB_draw_buffers : enable" before use
---------------------
ERROR: Couldn't create program 'deferred_gbuffer_solid_frag.glsl'
ERROR: Could not load material 'soliddiffuse' shader 'deferred_gbuffer_solid_frag.glsl'
    Cache Loading: 10809 ms
  Entities: 9416 ms
  Compilation: 39 ms
  Total: 20891 ms
  Meshes created: 145
  Bodies created: 48
 -------- Loading complete ---------
WARNING: Could not find player start node ''
ERROR: StartPos '' does not exist!
ERROR: Failed to compile GLSL shader 'c:/program files/steam/steamapps/common/amnesia the dark descent/core/shaders/deferred_gbuffer_solid_frag.glsl'!
Shader code:
-------------------
[0001] ////////////////////////////////////////////////////////
[0002] // Deferred G-Buffer Solid - Fragment Shader
[0003] //
[0004] //
[0005] ////////////////////////////////////////////////////////
[0006] #version 120
[0007] #extension GL_ARB_texture_rectangle : enable
[0008] 
[0009] // Pack a float in a 2d vector
[0010] vec2 PackFloatInVec2(float afX)
[0011] {
[0012] 	vec2 vRet;
[0013] 	afX *= 255.0;
[0014] 	vRet.x = floor(afX);
[0015] 	vRet.y = (afX - vRet.x);
[0016] 	vRet.x *= (1.0 / 255.0);
[0017] 	return vRet;	
[0018] }
[0019] 
[0020] //------------------------------------
[0021] 
[0022] // Pack a float in a 3d vector
[0023] vec3 PackFloatInVec3(float afX)
[0024] {
[0025] 	vec3 vRet;
[0026] 	afX *= 255.0;
[0027] 	vRet.x = floor(afX);
[0028] 	afX = (afX - vRet.x) * 255.0;
[0029] 	vRet.y = floor(afX);
[0030] 	vRet.z = afX - vRet.y;
[0031] 	vRet.xy *= (1.0 / 255.0);
[0032] 	
[0033] 	return vRet;	
[0034] }
[0035] 
[0036] //------------------------------------
[0037] 
[0038] // Unpack a 2d vector to a float
[0039] float UnpackVec2ToFloat(vec2 avVal)
[0040] {
[0041] 	return dot(avVal, vec2(1.0, 1.0/255.0) ); 	
[0042] } 
[0043] 
[0044] //------------------------------------
[0045] 
[0046] // Unpack a 3d vector to a float
[0047] float UnpackVec3ToFloat(vec3 avVal)
[0048] {
[0049] 	return dot(avVal, vec3(1.0, 1.0/255.0, 1.0 / (255.0*255.0 )) ); 	
[0050] }
[0051] 
[0052] //-----------------------------------------
[0053] // Caclulate the fresnel term.
[0054] float Fresnel(float afEDotN, float afFresnelBias, float afFresnelPow)
[0055] {
[0056] 	float fFacing = 1.0 - afEDotN;
[0057] 	return max(afFresnelBias+ (1.0-afFresnelBias)* pow(fFacing,afFresnelPow), 0.0); 
[0058] }
[0059] 
[0060] //-----------------------------------------
[0061] 
[0062] ////////////////////
[0063] //Normal interpolated values
[0064] varying vec3 gvNormal;
[0065] 
[0066] 
[0067] 	varying vec3 gvTangent;
[0068] 	varying vec3 gvBinormal;
[0069] 
[0070] 
[0071] /////////////////////
[0072] //Extra interpolated values
[0073] 
[0074] //32 bit G-Buffer
[0075] 
[0076] 	varying float gfLinearDepth;
[0077] 
[0078] 
[0079] //64 bit G-Buffer
[0080] 
[0081] 	varying vec3 gvVertexPos;	
[0082] 
[0083] 
[0084] ////////////////////
[0085] //Textures
[0086] uniform sampler2D aDiffuseMap;
[0087] 
[0088] 
[0089] 
[0090] 	uniform sampler2D aNormalMap;
[0091] 
[0092] 
[0093] 
[0094] 
[0095] 	uniform sampler2D aSpecularMap;
[0096] 
[0097] 
[0098] 
[0099] 
[0100] 
[0101] 
[0102] 	uniform samplerCube aEnvMap;
[0103] 
[0104] 	
[0105] 	uniform vec2 avFrenselBiasPow;
[0106] 	uniform mat4 a_mtxInvViewRotation;
[0107] 
[0108] 
[0109] 
[0110] 	uniform sampler2D aEnvMapAlphaMap;
[0111] 
[0112] 	
[0113] 
[0114] 
[0115] 
[0116] //--------------------------------------------------
[0117] 
[0118] ///////////////////////////////
[0119] // Relief mapping helpers
[0120] 
[0121] //Optimize by getting 4 depths at once somehow?
[0122] void RayLinearIntersectionSM2(sampler2D aHeightMap, inout vec3 avPosition, inout vec3 avEyeVec)
[0123] {
[0124] 	const int lSearchSteps = 8; 
[0125] 
[0126] 	avEyeVec /= lSearchSteps; 	//Split up the eye vector into the number of steps 
[0127] 
[0128] 	for(int i=0; i<lSearchSteps-1; i++) 
[0129] 	{ 
[0130] 		float fDepth = texture2D(aHeightMap, avPosition.xy).w; 
[0131] 		if(avPosition.z < fDepth) avPosition += avEyeVec; 
[0132] 	} 	
[0133] }
[0134] 
[0135] void RayLinearIntersectionSM3(sampler2D aHeightMap, float afSearchSteps, inout vec3 avPosition, inout vec3 avEyeVec)
[0136] {
[0137] 	avEyeVec /= afSearchSteps; 	//Split up the eye vector into the number of steps 
[0138] 
[0139] 	for(int i=0; i<afSearchSteps-1; i++) 
[0140] 	{ 
[0141] 		float fDepth = texture2D(aHeightMap, avPosition.xy).w; 
[0142] 		if(avPosition.z < fDepth) avPosition += avEyeVec; 
[0143] 	} 
[0144] }
[0145] 
[0146] 
[0147] void RayBinaryIntersection(sampler2D aHeightMap, inout vec3 avPosition, inout vec3 avEyeVec)
[0148] { 
[0149] 	const int lSearchSteps = 6; 
[0150] 	for(int i=0; i<lSearchSteps; i++) 
[0151] 	{ 
[0152] 		float fDepth = texture2D(aHeightMap, avPosition.xy).w;
[0153] 		if(avPosition.z < fDepth) 
[0154] 			avPosition += avEyeVec; 
[0155] 		
[0156] 		avEyeVec *= 0.5; 
[0157] 		avPosition -= avEyeVec; 
[0158] 	} 
[0159] }
[0160] 
[0161] 
[0162] 
[0163] //--------------------------------------------------
[0164] 
[0165] ///////////////////////////////
[0166] // Main program
[0167] void main()
[0168] {
[0169] 	//////////////////////////////////
[0170] 	//Diffuse
[0171] 
[0172] 		vec2 vTexCoord = gl_TexCoord[0].xy;
[0173] 		vec4 vDiffuseColor = texture2D(aDiffuseMap, vTexCoord);
[0174] 
[0175] 	
[0176] 	
[0177] 	//////////////////////////////////
[0178] 	//Set Diffuse color if no environemnt mapping is used.
[0179] 
[0180] 
[0181] 
[0182] 	//////////////////////////////////
[0183] 	//Normal
[0184] 
[0185] 		vec3 vNormal = texture2D(aNormalMap,vTexCoord).xyz - 0.5; //No need for full unpack x*2-1, becuase normal is normalized. (but now we do not normalize...)
[0186] 		vec3 vScreenNormal = normalize(vNormal.x * gvTangent + vNormal.y * gvBinormal + vNormal.z * gvNormal);
[0187] 
[0188] 	//If 32 bit we need to pack, else no packing is needed.
[0189] 
[0190] 		gl_FragData[1].xyz = vScreenNormal*0.5 + 0.5; 
[0191] 
[0192] 	
[0193] 	
[0194] 	//////////////////////////////////
[0195] 	//Environment Map
[0196] 
[0197] 		vec3 vCameraSpaceEyeVec = normalize(gvVertexPos);	
[0198] 	
[0199] 		vec3 vEnvUv = reflect(vCameraSpaceEyeVec, vScreenNormal);
[0200] 		vEnvUv = (a_mtxInvViewRotation * vec4(vEnvUv,1)).xyz;
[0201] 					
[0202] 		vec4 vReflectionColor = textureCube(aEnvMap, vEnvUv);
[0203] 		
[0204] 		float afEDotN = max(dot(-vCameraSpaceEyeVec, vScreenNormal),0.0);
[0205] 		float fFresnel = Fresnel(afEDotN, avFrenselBiasPow.x, avFrenselBiasPow.y);
[0206] 		
[0207] 
[0208] 			float fEnvMapAlpha = texture2D(aEnvMapAlphaMap, vTexCoord).w;
[0209] 			vReflectionColor *= fEnvMapAlpha;
[0210] 
[0211] 				
[0212] 		gl_FragData[0] = vDiffuseColor + vReflectionColor * fFresnel;
[0213] 
[0214] 	
[0215] 	
[0216] 	//////////////////////////////////
[0217] 	//Depth
[0218] 
[0219] 		gl_FragData[2].xyz = PackFloatInVec3(gfLinearDepth); 
[0220] 
[0221] 	
[0222] 	//////////////////////////////////
[0223] 	//Specular
[0224] 
[0225] 
[0226] 			vec2 vSpecVals = texture2D(aSpecularMap, vTexCoord).xy;
[0227] 			gl_FragData[1].w = vSpecVals.x;
[0228] 			gl_FragData[2].w = vSpecVals.y;
[0229] 
[0230] 
---------------------
Compile log:
---------------------
(190) : error C7531: global variable gl_FragData requires "#extension GL_ARB_draw_buffers : enable" before use
---------------------
ERROR: Couldn't create program 'deferred_gbuffer_solid_frag.glsl'
ERROR: Could not load material 'soliddiffuse' shader 'deferred_gbuffer_solid_frag.glsl'
ERROR: Failed to compile GLSL shader 'c:/program files/steam/steamapps/common/amnesia the dark descent/core/shaders/deferred_gbuffer_solid_frag.glsl'!
Shader code:
-------------------
[0001] ////////////////////////////////////////////////////////
[0002] // Deferred G-Buffer Solid - Fragment Shader
[0003] //
[0004] //
[0005] ////////////////////////////////////////////////////////
[0006] #version 120
[0007] #extension GL_ARB_texture_rectangle : enable
[0008] 
[0009] // Pack a float in a 2d vector
[0010] vec2 PackFloatInVec2(float afX)
[0011] {
[0012] 	vec2 vRet;
[0013] 	afX *= 255.0;
[0014] 	vRet.x = floor(afX);
[0015] 	vRet.y = (afX - vRet.x);
[0016] 	vRet.x *= (1.0 / 255.0);
[0017] 	return vRet;	
[0018] }
[0019] 
[0020] //------------------------------------
[0021] 
[0022] // Pack a float in a 3d vector
[0023] vec3 PackFloatInVec3(float afX)
[0024] {
[0025] 	vec3 vRet;
[0026] 	afX *= 255.0;
[0027] 	vRet.x = floor(afX);
[0028] 	afX = (afX - vRet.x) * 255.0;
[0029] 	vRet.y = floor(afX);
[0030] 	vRet.z = afX - vRet.y;
[0031] 	vRet.xy *= (1.0 / 255.0);
[0032] 	
[0033] 	return vRet;	
[0034] }
[0035] 
[0036] //------------------------------------
[0037] 
[0038] // Unpack a 2d vector to a float
[0039] float UnpackVec2ToFloat(vec2 avVal)
[0040] {
[0041] 	return dot(avVal, vec2(1.0, 1.0/255.0) ); 	
[0042] } 
[0043] 
[0044] //------------------------------------
[0045] 
[0046] // Unpack a 3d vector to a float
[0047] float UnpackVec3ToFloat(vec3 avVal)
[0048] {
[0049] 	return dot(avVal, vec3(1.0, 1.0/255.0, 1.0 / (255.0*255.0 )) ); 	
[0050] }
[0051] 
[0052] //-----------------------------------------
[0053] // Caclulate the fresnel term.
[0054] float Fresnel(float afEDotN, float afFresnelBias, float afFresnelPow)
[0055] {
[0056] 	float fFacing = 1.0 - afEDotN;
[0057] 	return max(afFresnelBias+ (1.0-afFresnelBias)* pow(fFacing,afFresnelPow), 0.0); 
[0058] }
[0059] 
[0060] //-----------------------------------------
[0061] 
[0062] ////////////////////
[0063] //Normal interpolated values
[0064] varying vec3 gvNormal;
[0065] 
[0066] 
[0067] 
[0068] /////////////////////
[0069] //Extra interpolated values
[0070] 
[0071] //32 bit G-Buffer
[0072] 
[0073] 	varying float gfLinearDepth;
[0074] 
[0075] 
[0076] //64 bit G-Buffer
[0077] 
[0078] 	varying vec3 gvVertexPos;	
[0079] 
[0080] 
[0081] ////////////////////
[0082] //Textures
[0083] uniform sampler2D aDiffuseMap;
[0084] 
[0085] 
[0086] 
[0087] 
[0088] 
[0089] 
[0090] 
[0091] 
[0092] 
[0093] 	uniform samplerCube aEnvMap;
[0094] 
[0095] 	
[0096] 	uniform vec2 avFrenselBiasPow;
[0097] 	uniform mat4 a_mtxInvViewRotation;
[0098] 
[0099] 
[0100] 
[0101] 
[0102] 
[0103] //--------------------------------------------------
[0104] 
[0105] ///////////////////////////////
[0106] // Relief mapping helpers
[0107] 
[0108] //Optimize by getting 4 depths at once somehow?
[0109] void RayLinearIntersectionSM2(sampler2D aHeightMap, inout vec3 avPosition, inout vec3 avEyeVec)
[0110] {
[0111] 	const int lSearchSteps = 8; 
[0112] 
[0113] 	avEyeVec /= lSearchSteps; 	//Split up the eye vector into the number of steps 
[0114] 
[0115] 	for(int i=0; i<lSearchSteps-1; i++) 
[0116] 	{ 
[0117] 		float fDepth = texture2D(aHeightMap, avPosition.xy).w; 
[0118] 		if(avPosition.z < fDepth) avPosition += avEyeVec; 
[0119] 	} 	
[0120] }
[0121] 
[0122] void RayLinearIntersectionSM3(sampler2D aHeightMap, float afSearchSteps, inout vec3 avPosition, inout vec3 avEyeVec)
[0123] {
[0124] 	avEyeVec /= afSearchSteps; 	//Split up the eye vector into the number of steps 
[0125] 
[0126] 	for(int i=0; i<afSearchSteps-1; i++) 
[0127] 	{ 
[0128] 		float fDepth = texture2D(aHeightMap, avPosition.xy).w; 
[0129] 		if(avPosition.z < fDepth) avPosition += avEyeVec; 
[0130] 	} 
[0131] }
[0132] 
[0133] 
[0134] void RayBinaryIntersection(sampler2D aHeightMap, inout vec3 avPosition, inout vec3 avEyeVec)
[0135] { 
[0136] 	const int lSearchSteps = 6; 
[0137] 	for(int i=0; i<lSearchSteps; i++) 
[0138] 	{ 
[0139] 		float fDepth = texture2D(aHeightMap, avPosition.xy).w;
[0140] 		if(avPosition.z < fDepth) 
[0141] 			avPosition += avEyeVec; 
[0142] 		
[0143] 		avEyeVec *= 0.5; 
[0144] 		avPosition -= avEyeVec; 
[0145] 	} 
[0146] }
[0147] 
[0148] 
[0149] 
[0150] //--------------------------------------------------
[0151] 
[0152] ///////////////////////////////
[0153] // Main program
[0154] void main()
[0155] {
[0156] 	//////////////////////////////////
[0157] 	//Diffuse
[0158] 
[0159] 		vec2 vTexCoord = gl_TexCoord[0].xy;
[0160] 		vec4 vDiffuseColor = texture2D(aDiffuseMap, vTexCoord);
[0161] 
[0162] 	
[0163] 	
[0164] 	//////////////////////////////////
[0165] 	//Set Diffuse color if no environemnt mapping is used.
[0166] 
[0167] 
[0168] 
[0169] 	//////////////////////////////////
[0170] 	//Normal
[0171] 
[0172] 		vec3 vScreenNormal = normalize(gvNormal);
[0173] 
[0174] 	//If 32 bit we need to pack, else no packing is needed.
[0175] 
[0176] 		gl_FragData[1].xyz = vScreenNormal*0.5 + 0.5; 
[0177] 
[0178] 	
[0179] 	
[0180] 	//////////////////////////////////
[0181] 	//Environment Map
[0182] 
[0183] 		vec3 vCameraSpaceEyeVec = normalize(gvVertexPos);	
[0184] 	
[0185] 		vec3 vEnvUv = reflect(vCameraSpaceEyeVec, vScreenNormal);
[0186] 		vEnvUv = (a_mtxInvViewRotation * vec4(vEnvUv,1)).xyz;
[0187] 					
[0188] 		vec4 vReflectionColor = textureCube(aEnvMap, vEnvUv);
[0189] 		
[0190] 		float afEDotN = max(dot(-vCameraSpaceEyeVec, vScreenNormal),0.0);
[0191] 		float fFresnel = Fresnel(afEDotN, avFrenselBiasPow.x, avFrenselBiasPow.y);
[0192] 		
[0193] 
[0194] 				
[0195] 		gl_FragData[0] = vDiffuseColor + vReflectionColor * fFresnel;
[0196] 
[0197] 	
[0198] 	
[0199] 	//////////////////////////////////
[0200] 	//Depth
[0201] 
[0202] 		gl_FragData[2].xyz = PackFloatInVec3(gfLinearDepth); 
[0203] 
[0204] 	
[0205] 	//////////////////////////////////
[0206] 	//Specular
[0207] 
[0208] 
[0209] 			gl_FragData[1].w = 0.0;
[0210] 			gl_FragData[2].w = 0.0;
[0211] 
[0212] 
---------------------
Compile log:
---------------------
(176) : error C7531: global variable gl_FragData requires "#extension GL_ARB_draw_buffers : enable" before use
---------------------
ERROR: Couldn't create program 'deferred_gbuffer_solid_frag.glsl'
ERROR: Could not load material 'soliddiffuse' shader 'deferred_gbuffer_solid_frag.glsl'
-------- END LOAD ---------
 Saving main config.
 Saving user config.
ERROR: Could not find light 'spotthunder_0'
ERROR: Could not find light 'pointthunder_0'
ERROR: Could not find light 'ambthunder_0'
ERROR: Could not find light 'spotthunder_0'
ERROR: Could not find light 'pointthunder_0'
ERROR: Could not find light 'ambthunder_0'
ERROR: Could not find light 'spotthunder_0'
ERROR: Could not find light 'pointthunder_0'
ERROR: Could not find light 'ambthunder_0'
ERROR: Could not find light 'spotthunder_0'
ERROR: Could not find light 'pointthunder_0'
ERROR: Could not find light 'ambthunder_0'
ERROR: Could not find light 'spotthunder_0'
ERROR: Could not find light 'pointthunder_0'
ERROR: Could not find light 'ambthunder_0'
ERROR: Could not find light 'spotthunder_0'
ERROR: Could not find light 'pointthunder_0'
ERROR: Could not find light 'ambthunder_0'
ERROR: Could not find light 'spotthunder_0'
ERROR: Could not find light 'pointthunder_0'
ERROR: Could not find light 'ambthunder_0'
-------- BEGIN SAVE TO: C:\Documents and Settings\Alex\My Documents/Amnesia/Main/Alex/AutoSave_RainyHall_2011_1_21_21_47_6_0.sav ---------
WARNING: particle system 0 in chandelier_simple_short_1 does not exist anymore!
WARNING: particle system 1 in chandelier_simple_short_1 does not exist anymore!
WARNING: particle system 2 in chandelier_simple_short_1 does not exist anymore!
WARNING: particle system 3 in chandelier_simple_short_1 does not exist anymore!
WARNING: particle system 0 in chandelier_simple_1 does not exist anymore!
WARNING: particle system 1 in chandelier_simple_1 does not exist anymore!
WARNING: particle system 2 in chandelier_simple_1 does not exist anymore!
WARNING: particle system 3 in chandelier_simple_1 does not exist anymore!
WARNING: particle system 0 in chandelier_simple_short_2 does not exist anymore!
WARNING: particle system 1 in chandelier_simple_short_2 does not exist anymore!
WARNING: particle system 2 in chandelier_simple_short_2 does not exist anymore!
WARNING: particle system 3 in chandelier_simple_short_2 does not exist anymore!
WARNING: particle system 0 in chandelier_simple_short_10 does not exist anymore!
WARNING: particle system 1 in chandelier_simple_short_10 does not exist anymore!
WARNING: particle system 2 in chandelier_simple_short_10 does not exist anymore!
WARNING: particle system 3 in chandelier_simple_short_10 does not exist anymore!
WARNING: particle system 0 in chandelier_simple_5 does not exist anymore!
WARNING: particle system 1 in chandelier_simple_5 does not exist anymore!
WARNING: particle system 2 in chandelier_simple_5 does not exist anymore!
WARNING: particle system 3 in chandelier_simple_5 does not exist anymore!
WARNING: particle system 0 in candlestick_floor_3 does not exist anymore!
WARNING: particle system 1 in candlestick_floor_3 does not exist anymore!
WARNING: particle system 2 in candlestick_floor_3 does not exist anymore!
WARNING: particle system 3 in candlestick_floor_3 does not exist anymore!
WARNING: particle system 4 in candlestick_floor_3 does not exist anymore!
WARNING: particle system 0 in candlestick_floor_4 does not exist anymore!
WARNING: particle system 1 in candlestick_floor_4 does not exist anymore!
WARNING: particle system 2 in candlestick_floor_4 does not exist anymore!
WARNING: particle system 3 in candlestick_floor_4 does not exist anymore!
WARNING: particle system 4 in candlestick_floor_4 does not exist anymore!
WARNING: particle system 0 in candlestick_floor_6 does not exist anymore!
WARNING: particle system 1 in candlestick_floor_6 does not exist anymore!
WARNING: particle system 2 in candlestick_floor_6 does not exist anymore!
WARNING: particle system 3 in candlestick_floor_6 does not exist anymore!
WARNING: particle system 4 in candlestick_floor_6 does not exist anymore!
WARNING: particle system 0 in candlestick_floor_7 does not exist anymore!
WARNING: particle system 1 in candlestick_floor_7 does not exist anymore!
WARNING: particle system 2 in candlestick_floor_7 does not exist anymore!
WARNING: particle system 3 in candlestick_floor_7 does not exist anymore!
WARNING: particle system 4 in candlestick_floor_7 does not exist anymore!
WARNING: particle system 0 in chandelier_simple_short_6 does not exist anymore!
WARNING: particle system 1 in chandelier_simple_short_6 does not exist anymore!
WARNING: particle system 2 in chandelier_simple_short_6 does not exist anymore!
WARNING: particle system 3 in chandelier_simple_short_6 does not exist anymore!
WARNING: particle system 0 in candlestick_floor_10 does not exist anymore!
WARNING: particle system 1 in candlestick_floor_10 does not exist anymore!
WARNING: particle system 2 in candlestick_floor_10 does not exist anymore!
WARNING: particle system 3 in candlestick_floor_10 does not exist anymore!
WARNING: particle system 4 in candlestick_floor_10 does not exist anymore!
WARNING: particle system 0 in candlestick_floor_11 does not exist anymore!
WARNING: particle system 1 in candlestick_floor_11 does not exist anymore!
WARNING: particle system 2 in candlestick_floor_11 does not exist anymore!
WARNING: particle system 3 in candlestick_floor_11 does not exist anymore!
WARNING: particle system 4 in candlestick_floor_11 does not exist anymore!
WARNING: particle system 0 in candlestick_floor_12 does not exist anymore!
WARNING: particle system 1 in candlestick_floor_12 does not exist anymore!
WARNING: particle system 2 in candlestick_floor_12 does not exist anymore!
WARNING: particle system 3 in candlestick_floor_12 does not exist anymore!
WARNING: particle system 4 in candlestick_floor_12 does not exist anymore!
WARNING: particle system 0 in candlestick_floor_13 does not exist anymore!
WARNING: particle system 1 in candlestick_floor_13 does not exist anymore!
WARNING: particle system 2 in candlestick_floor_13 does not exist anymore!
WARNING: particle system 3 in candlestick_floor_13 does not exist anymore!
WARNING: particle system 4 in candlestick_floor_13 does not exist anymore!
WARNING: particle system 0 in candlestick_floor_14 does not exist anymore!
WARNING: particle system 1 in candlestick_floor_14 does not exist anymore!
WARNING: particle system 2 in candlestick_floor_14 does not exist anymore!
WARNING: particle system 3 in candlestick_floor_14 does not exist anymore!
WARNING: particle system 4 in candlestick_floor_14 does not exist anymore!
WARNING: particle system 0 in candlestick_floor_15 does not exist anymore!
WARNING: particle system 1 in candlestick_floor_15 does not exist anymore!
WARNING: particle system 2 in candlestick_floor_15 does not exist anymore!
WARNING: particle system 3 in candlestick_floor_15 does not exist anymore!
WARNING: particle system 4 in candlestick_floor_15 does not exist anymore!
WARNING: particle system 0 in candlestick_floor_16 does not exist anymore!
WARNING: particle system 1 in candlestick_floor_16 does not exist anymore!
WARNING: particle system 2 in candlestick_floor_16 does not exist anymore!
WARNING: particle system 3 in candlestick_floor_16 does not exist anymore!
WARNING: particle system 4 in candlestick_floor_16 does not exist anymore!
WARNING: particle system 0 in candlestick_floor_17 does not exist anymore!
WARNING: particle system 1 in candlestick_floor_17 does not exist anymore!
WARNING: particle system 2 in candlestick_floor_17 does not exist anymore!
WARNING: particle system 3 in candlestick_floor_17 does not exist anymore!
WARNING: particle system 4 in candlestick_floor_17 does not exist anymore!
WARNING: particle system 0 in candlestick_floor_18 does not exist anymore!
WARNING: particle system 1 in candlestick_floor_18 does not exist anymore!
WARNING: particle system 2 in candlestick_floor_18 does not exist anymore!
WARNING: particle system 3 in candlestick_floor_18 does not exist anymore!
WARNING: particle system 4 in candlestick_floor_18 does not exist anymore!
WARNING: particle system 0 in candlestick_floor_19 does not exist anymore!
WARNING: particle system 1 in candlestick_floor_19 does not exist anymore!
WARNING: particle system 2 in candlestick_floor_19 does not exist anymore!
WARNING: particle system 3 in candlestick_floor_19 does not exist anymore!
WARNING: particle system 4 in candlestick_floor_19 does not exist anymore!
WARNING: particle system 0 in candlestick02_2 does not exist anymore!
WARNING: particle system 0 in candlestick_floor_5 does not exist anymore!
WARNING: particle system 1 in candlestick_floor_5 does not exist anymore!
WARNING: particle system 2 in candlestick_floor_5 does not exist anymore!
WARNING: particle system 3 in candlestick_floor_5 does not exist anymore!
WARNING: particle system 4 in candlestick_floor_5 does not exist anymore!
WARNING: particle system 0 in candlestick_floor_8 does not exist anymore!
WARNING: particle system 1 in candlestick_floor_8 does not exist anymore!
WARNING: particle system 2 in candlestick_floor_8 does not exist anymore!
WARNING: particle system 3 in candlestick_floor_8 does not exist anymore!
WARNING: particle system 4 in candlestick_floor_8 does not exist anymore!
WARNING: particle system 0 in candlestick_floor_9 does not exist anymore!
WARNING: particle system 1 in candlestick_floor_9 does not exist anymore!
WARNING: particle system 2 in candlestick_floor_9 does not exist anymore!
WARNING: particle system 3 in candlestick_floor_9 does not exist anymore!
WARNING: particle system 4 in candlestick_floor_9 does not exist anymore!
-------- END SAVE ---------
 -------- Loading map 'menu_bg.map' ---------
    Cache Loading: 1805 ms
  Entities: 399 ms
  Compilation: 1 ms
  Total: 2224 ms
  Meshes created: 25
  Bodies created: 5
 -------- Loading complete ---------
--------------------------------------------------------
Statistics
--------------------------------------------------------
 Medium framerate: 18.834434
--------------------------------------------------------
User Exit
--------------------------------------------------------
 Saving main config.
 Saving user config.
 Deleting game modules.
   'LuxInputHandler'
   'LuxHelpFuncs'
   'LuxSaveHandler'
   'LuxScriptHandler'
   'LuxProgressLogHandler'
   'LuxMapHandler'
   'LuxMapHelper'
   'LuxPlayer'
   'LuxInsanityHandler'
   'LuxDebugHandler'
   'LuxEffectRenderer'
   'LuxMusicHandler'
   'LuxMusicHandler'
   'LuxEffectHandler'
   'LuxCompletionCountHandler'
   'LuxGlobalDataHandler'
   'LuxHintHandler'
   'LuxPostEffectHandler'
   'LuxPreMenu'
   'LuxDebugHandler'
   'LuxInventory'
   'LuxJournal'
   'LuxCredits'
   'LuxLoadScreenHandler'
 Deleting config files.
--------------------------------------------------------
Exiting Gui Module
--------------------------------------------------------
 Deleting all sets
 Deleting all skins
 Deleting all gfx elements
 Deleting all materials
--------------------------------------------------------
Exiting Generate Module
--------------------------------------------------------
--------------------------------------------------------
Exiting Scene Module
--------------------------------------------------------
--------------------------------------------------------
Exiting Input Module
--------------------------------------------------------
--------------------------------------------------------
Exiting Sound Module
--------------------------------------------------------
--------------------------------------------------------
Exiting Graphics Module
--------------------------------------------------------
--------------------------------------------------------
Exiting Resources Module
--------------------------------------------------------
 Done with fonts
 Done with scripts
 Done with particles
 Done with sounds
 Done with meshes
 Done with materials
 Done with Gpu programs
 Done with images
 Destroyed all textures
 Done with sound entities
 Done with animations
 Done with ent files
 All resources deleted
--------------------------------------------------------
Exiting Physics Module
--------------------------------------------------------
--------------------------------------------------------
Exiting System Module
--------------------------------------------------------
--------------------------------------------------------
 Deleting game setup provided by user
- Deleting lowlevel stuff.
  Physics
  Sound
  Input
  Resources
  System
  Graphics
  Haptic
HPL Exit was successful!
|--Memory Manager Report-------------------------------|
|
| No memory leaks detected. Memory left: 0
|
|------------------------------------------------------|