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
|
|------------------------------------------------------|