Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Using read-write data directory: C:\Users\Joshua\Documents\My Games\Spring\
- Using read-only data directory: C:\Users\Joshua\Documents\My Games\Spring\weblobby\engine\96.0\
- Scanning: C:\Users\Joshua\Documents\My Games\Spring\weblobby\engine\96.0\base
- Scanning: C:\Users\Joshua\Documents\My Games\Spring\maps
- Scanning: C:\Users\Joshua\Documents\My Games\Spring\games
- Scanning: C:\Users\Joshua\Documents\My Games\Spring\packages
- [ThreadPool::SetThreadCount][1] #wanted=3 #current=4
- [ThreadPool::SetThreadCount][2] #threads=2
- [Threading] Main thread CPU affinity not set
- [f=0000000] SDL version: 1.2.10
- [f=0000000] GL version: 4.0.9896 Compatibility Profile Context
- [f=0000000] GL vendor: ATI Technologies Inc.
- [f=0000000] GL renderer: ATI Radeon HD 5450
- [f=0000000] GLSL version: 4.00
- [f=0000000] GLEW version: 1.5.8
- [f=0000000] Video RAM: total 736MB, available 961MB
- [f=0000000] GL info:
- haveARB: 1, haveGLSL: 1, ATI hacks: 1
- FBO support: 1, NPOT-texture support: 1, 24bit Z-buffer support: 0
- maximum texture size: 16384, compress MIP-map textures: 0
- maximum SmoothPointSize: 63, maximum vec4 varying/attributes: 16/16
- maximum drawbuffers: 8, maximum recommended indices/vertices: 16777215/2147483647
- number of UniformBufferBindings: 75 (64kB)
- [f=0000000] VSync disabled
- [f=0000000] Joysticks found: 0
- [f=0000000] Warning: Joystick 0 not found
- [f=0000000] [Initialize] CPU Clock: win32::TimeGetTime
- [f=0000000] [Initialize] CPU Cores: 4
- [f=0000000] [Startup] loading startscript from: C:/Users/Joshua/Documents/My Games/Spring/weblobby/script.spring
- [f=0000000] Connecting to 108.38.64.193:8251 using name GKAGamer
- [f=0000000] [Sound] OpenAL info:
- [f=0000000] [Sound] Available Devices:
- [f=0000000] [Sound] DirectSound Software
- [f=0000000] [Sound] Device: DirectSound Software
- [f=0000000] [Sound] Vendor: OpenAL Community
- [f=0000000] [Sound] Version: 1.1 ALSOFT 1.11.753
- [f=0000000] [Sound] Renderer: OpenAL Soft
- [f=0000000] [Sound] AL Extensions: AL_EXTX_buffer_sub_data AL_EXT_EXPONENT_DISTANCE AL_EXT_FLOAT32 AL_EXT_IMA4 AL_EXT_LINEAR_DISTANCE AL_EXT_MCFORMATS AL_EXT_OFFSET AL_EXTX_sample_buffer_object AL_EXT_source_distance_model AL_LOKI_quadriphonic
- [f=0000000] [Sound] ALC Extensions: ALC_ENUMERATE_ALL_EXT ALC_ENUMERATION_EXT ALC_EXT_CAPTURE ALC_EXT_disconnect ALC_EXT_EFX ALC_EXTX_thread_local_context
- [f=0000000] [Sound] EFX Enabled: yes
- [f=0000000] [Sound] Max Sounds: 128
- [f=0000000] Using map: Eye_Of_Horus_v2
- [f=0000000] Using game: Evolution RTS - v7.43
- [f=0000000] Using game archive: 670243f914656a8c0314b083c9de0244.sdp
- [f=0000000] recording demo: demos/20140413_112952_Eye_Of_Horus_v2_96.sdf
- [f=0000000] PreGame::GameDataReceived: 39 ms
- [f=0000000] [PreGame::UpdateClientNet] user number 3 (team 3, allyteam 0)
- [f=0000000] [LuaIntro] Searching for new Widgets
- [f=0000000] [LuaIntro] Scanning: LuaIntro/Addons/
- [f=0000000] [LuaIntro] Scanning: LuaIntro/Widgets/
- [f=0000000] [LuaIntro] Scanning: LuaIntro/SystemAddons/
- [f=0000000] [LuaIntro] Scanning: LuaIntro/SystemWidgets/
- [f=0000000] [LuaIntro] Scanning: LuaIntro/chili/
- [f=0000000] [LuaIntro] Found new widget "SpringLogo"
- [f=0000000] [LuaIntro] Found new widget "LoadTexture"
- [f=0000000] [LuaIntro] Found new widget "LoadProgress"
- [f=0000000] [LuaIntro] Found new widget "LoadScreen"
- [f=0000000] [LuaIntro] Found new widget "Music"
- [f=0000000] [LuaIntro] Loading widgets <>=vfs **=raw ()=unknown
- [f=0000000] [LuaIntro] Loading API widget: Chili Framework <api_chili.lua>
- [f=0000000] [LuaIntro] Warning: Headers files aren't supported anymore use "require" instead!
- [f=0000000] [LuaIntro] Loading widget: LoadProgress <loadprogress.lua>
- [f=0000000] [LuaIntro] Loading widget: LoadScreen <main.lua>
- [f=0000000] 1397384960
- [f=0000000] 60, currentSelection, 5
- [f=0000000] 60, currentSelection, 5
- [f=0000000] 60, currentSelection, 7
- [f=0000000] 60, currentSelection, 4
- [f=0000000] 60, currentSelection, 1
- [f=0000000] 60, currentSelection, 5
- [f=0000000] 60, currentSelection, 7
- [f=0000000] 60, currentSelection, 5
- [f=0000000] 60, currentSelection, 2
- [f=0000000] 60, currentSelection, 8
- [f=0000000] 60, currentSelection, 3
- [f=0000000] 60, currentSelection, 1
- [f=0000000] 60, currentSelection, 3
- [f=0000000] 60, currentSelection, 5
- [f=0000000] 60, currentSelection, 8
- [f=0000000] 60, currentSelection, 8
- [f=0000000] 60, currentSelection, 2
- [f=0000000] 60, currentSelection, 8
- [f=0000000] 60, currentSelection, 7
- [f=0000000] 60, currentSelection, 3
- [f=0000000] 60, currentSelection, 6
- [f=0000000] 60, currentSelection, 4
- [f=0000000] 60, currentSelection, 7
- [f=0000000] 60, currentSelection, 5
- [f=0000000] 60, currentSelection, 6
- [f=0000000] 60, currentSelection, 1
- [f=0000000] 60, currentSelection, 5
- [f=0000000] 60, currentSelection, 5
- [f=0000000] 60, currentSelection, 1
- [f=0000000] 60, currentSelection, 5
- [f=0000000] 60, currentSelection, 3
- [f=0000000] 60, currentSelection, 8
- [f=0000000] 60, currentSelection, 6
- [f=0000000] 60, currentSelection, 1
- [f=0000000] 60, currentSelection, 1
- [f=0000000] 60, currentSelection, 5
- [f=0000000] 60, currentSelection, 8
- [f=0000000] 60, currentSelection, 7
- [f=0000000] 60, currentSelection, 4
- [f=0000000] 60, currentSelection, 5
- [f=0000000] 60, currentSelection, 8
- [f=0000000] 60, currentSelection, 5
- [f=0000000] 60, currentSelection, 6
- [f=0000000] 60, currentSelection, 1
- [f=0000000] 60, currentSelection, 4
- [f=0000000] 60, currentSelection, 5
- [f=0000000] 60, currentSelection, 4
- [f=0000000] 60, currentSelection, 3
- [f=0000000] 60, currentSelection, 6
- [f=0000000] 60, currentSelection, 8
- [f=0000000] 60, currentSelection, 1
- [f=0000000] 60, currentSelection, 5
- [f=0000000] 60, currentSelection, 5
- [f=0000000] 60, currentSelection, 7
- [f=0000000] 60, currentSelection, 8
- [f=0000000] 60, currentSelection, 7
- [f=0000000] 60, currentSelection, 8
- [f=0000000] 60, currentSelection, 3
- [f=0000000] 60, currentSelection, 5
- [f=0000000] 60, currentSelection, 3
- [f=0000000] 60, currentSelection, 3
- [f=0000000] tipTextColor, <table>
- [f=0000000] backgroundImage1, bitmaps/ui/loadingscreen/background3.png
- [f=0000000] tipImage, bitmaps/ui/loadingscreen/ebombtip.png
- [f=0000000] tipText, Hoverbombs are extremely fast and maneuverable kamikaze bombs that deal heavy damage to structures and moderate damage to mobile units. They have a very high top speed but cannot turn well, so it's best to get it pointed in the correct direction before sending them in.
- [f=0000000] backgroundColor, <table>
- [f=0000000] fontShadow, true
- [f=0000000] [LuaIntro] Loading widget: Music <music.lua>
- [f=0000000] [LuaIntro] Loading widget: LoadTexture <bg_texture.lua>
- [f=0000000] [LuaIntro] Loading widget: Chili Docking <gui_chili_docking.lua>
- [f=0000000] [LuaIntro] LuaIntro v1.0 (Lua 5.1)
- [f=0000000] Parsing Map Information
- [f=0000000] Loading SMF
- [f=0000000] Loading Map (68 MB)
- [f=0000000] Loading Radar Icons
- [f=0000000] Loading GameData Definitions
- [f=0000000] Gameplay Speed is set to faster
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Missing explosion def
- [f=0000000] Missing self-d def
- [f=0000000] Warning! moveDef: HOVERTANK2, assigning default value for missing tag heatproduced(60)
- [f=0000000] Warning! moveDef: HOVERTANK2, assigning default value for missing tag depthmod(0.10000000149012)
- [f=0000000] Warning! moveDef: TANK2, assigning default value for missing tag heatproduced(60)
- [f=0000000] Warning! moveDef: TANK2, assigning default value for missing tag depthmod(0.10000000149012)
- [f=0000000] Warning! moveDef: NORMALTANK2, assigning default value for missing tag heatproduced(60)
- [f=0000000] Warning! moveDef: NORMALTANK2, assigning default value for missing tag depthmod(0.10000000149012)
- [f=0000000] Warning! moveDef: TANK4, assigning default value for missing tag heatproduced(60)
- [f=0000000] Warning! moveDef: TANK4, assigning default value for missing tag depthmod(0.10000000149012)
- [f=0000000] Warning! moveDef: HOVERTANKEXPERIMENTAL9, assigning default value for missing tag heatproduced(60)
- [f=0000000] Warning! moveDef: HOVERTANKEXPERIMENTAL9, assigning default value for missing tag depthmod(0.10000000149012)
- [f=0000000] Warning! moveDef: EXPERIMENTALTANK12, assigning default value for missing tag heatproduced(60)
- [f=0000000] Warning! moveDef: EXPERIMENTALTANK12, assigning default value for missing tag depthmod(0.10000000149012)
- [f=0000000] Warning! moveDef: UBOAT4, assigning default value for missing tag heatproduced(60)
- [f=0000000] Warning! moveDef: UBOAT4, assigning default value for missing tag depthmod(0.10000000149012)
- [f=0000000] Warning! moveDef: TANK3, assigning default value for missing tag heatproduced(60)
- [f=0000000] Warning! moveDef: TANK3, assigning default value for missing tag depthmod(0.10000000149012)
- [f=0000000] Warning! moveDef: TANK1, assigning default value for missing tag heatproduced(60)
- [f=0000000] Warning! moveDef: TANK1, assigning default value for missing tag depthmod(0.10000000149012)
- [f=0000000] Warning! moveDef: EXPERIMENTALTANK10, assigning default value for missing tag heatproduced(60)
- [f=0000000] Warning! moveDef: EXPERIMENTALTANK10, assigning default value for missing tag depthmod(0.10000000149012)
- [f=0000000] Warning! moveDef: HOVERTANK4, assigning default value for missing tag heatproduced(60)
- [f=0000000] Warning! moveDef: HOVERTANK4, assigning default value for missing tag depthmod(0.10000000149012)
- [f=0000000] Warning! moveDef: HOVERTANK5, assigning default value for missing tag heatproduced(60)
- [f=0000000] Warning! moveDef: HOVERTANK5, assigning default value for missing tag depthmod(0.10000000149012)
- [f=0000000] Warning! moveDef: ALLTERRTANK4, assigning default value for missing tag heatproduced(60)
- [f=0000000] Warning! moveDef: ALLTERRTANK4, assigning default value for missing tag depthmod(0.10000000149012)
- [f=0000000] Warning! moveDef: HOVERTANK6, assigning default value for missing tag heatproduced(60)
- [f=0000000] Warning! moveDef: HOVERTANK6, assigning default value for missing tag depthmod(0.10000000149012)
- [f=0000000] Warning! moveDef: ALLTERRTANK3, assigning default value for missing tag heatproduced(60)
- [f=0000000] Warning! moveDef: ALLTERRTANK3, assigning default value for missing tag depthmod(0.10000000149012)
- [f=0000000] Warning! moveDef: ALLTERRTANK5, assigning default value for missing tag heatproduced(60)
- [f=0000000] Warning! moveDef: ALLTERRTANK5, assigning default value for missing tag depthmod(0.10000000149012)
- [f=0000000] Warning! moveDef: ALLTERRTANK6, assigning default value for missing tag heatproduced(60)
- [f=0000000] Warning! moveDef: ALLTERRTANK6, assigning default value for missing tag depthmod(0.10000000149012)
- [f=0000000] Warning! moveDef: HOVERTANK3, assigning default value for missing tag heatproduced(60)
- [f=0000000] Warning! moveDef: HOVERTANK3, assigning default value for missing tag depthmod(0.10000000149012)
- [f=0000000] Warning! moveDef: COMMANDERTANK4, assigning default value for missing tag heatproduced(60)
- [f=0000000] Warning! moveDef: COMMANDERTANK4, assigning default value for missing tag depthmod(0.10000000149012)
- [f=0000000] Loading all definitions: 0.317000
- [f=0000000] Game::LoadDefs (GameData): 334 ms
- [f=0000000] Loading Sound Definitions
- [f=0000000] [Sound] parsed 11 sounds from gamedata/sounds.lua
- [f=0000000] Game::LoadDefs (Sound): 2 ms
- [f=0000000] Creating Smooth Height Mesh
- [f=0000000] SmoothHeightMesh::MakeSmoothMesh: 69 ms
- [f=0000000] Creating QuadField & CEGs
- [f=0000000] [CDamageArrayHandler] number of ArmorDefs: 4
- [f=0000000] [RegisterAssimpModelFormats] supported Assimp model formats: *.3ds;*.blend;*.dae;*.lwo;
- [f=0000000] Creating Unit Textures
- [f=0000000] Creating Sky
- [f=0000000] Loading Weapon Definitions
- [f=0000000] Warning: WeaponDef (eallterrshield_allterrshield) The "isShield" tag has been removed. Use the weaponType="Shield" tag instead!
- [f=0000000] Warning: WeaponDef (ekmar_shield) The "isShield" tag has been removed. Use the weaponType="Shield" tag instead!
- [f=0000000] Warning: WeaponDef (eshieldgen_shield) The "isShield" tag has been removed. Use the weaponType="Shield" tag instead!
- [f=0000000] Loading Unit Definitions
- [f=0000000] Error: Couldn't find WeaponDef NOWEAPON and explodeAs for armflash is missing!
- [f=0000000] Warning: eradar2: Given yardmap requires 20 extra char(s)!
- [f=0000000] Loading Feature Definitions
- [f=0000000] Error: [GetFeatureDef] could not find FeatureDef "rubble"
- [f=0000000] Error: [GetFeatureDef] could not find FeatureDef "rubble"
- [f=0000000] Error: [GetFeatureDef] could not find FeatureDef "rubble"
- [f=0000000] Error: [GetFeatureDef] could not find FeatureDef "rubble"
- [f=0000000] Reading Estimate PathCosts [8]
- [f=0000000] Reading Estimate PathCosts [32]
- [f=0000000] [CPathManager] pathing data checksum: 51844a74
- [f=0000000] [IPathManager::GetInstance] using DEFAULT path-manager
- [f=0000000] Initializing Map Features
- [f=0000000] Error: [LoadFeaturesFromMap] unknown map feature type ""
- [f=0000000] Creating ShadowHandler & DecalHandler
- [f=0000000] FBO::maxSamples: 4
- [f=0000000] Creating GroundDrawer
- [f=0000000] Loading Map Tiles
- [f=0000000] Loading Square Textures
- [f=0000000] CSMFGroundTextures::ConvolveHeightMap: 4 ms
- [f=0000000] Switching to ROAM Mesh Rendering
- [f=0000000] [Shader] Warning: [GLSL-SO::Compile] shader-object name: GLSL/SMFVertProg.glsl, compile-log:
- Vertex shader failed to compile with the following errors:
- ERROR: 6:33: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:33: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:39: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:39: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: error(#273) 2 compilation errors. No code generated
- [f=0000000] [Shader] Warning:
- // SHADER VERSION
- #version 120
- // SHADER FLAGS
- #define SMF_TEXSQUARE_SIZE 1024.000000
- #define SMF_INTENSITY_MULT 0.823529
- // SHADER SOURCE
- #line 1
- #define SMF_TEXSQR_SIZE 1024.0
- #define SMF_DETAILTEX_RES 0.02
- // uniform vec2 mapSizePO2; // pwr2map{x,z} * SQUARE_SIZE (TODO programmatically #define this)
- // uniform vec2 mapSize; // map{x,z} * SQUARE_SIZE (TODO programmatically #define this)
- // uniform vec2 mapHeights; // readmap->curr{Min, Max}Height
- uniform ivec2 texSquare;
- uniform vec3 cameraPos;
- uniform vec4 lightDir; // mapInfo->light.sunDir
- varying vec3 halfDir;
- varying float fogFactor;
- varying vec4 vertexWorldPos;
- varying vec2 diffuseTexCoords;
- void main() {
- // calc some lighting variables
- vec3 viewDir = vec3(gl_ModelViewMatrixInverse * vec4(0.0, 0.0, 0.0, 1.0));
- viewDir = normalize(viewDir - gl_Vertex.xyz);
- halfDir = normalize(lightDir.xyz + viewDir);
- vertexWorldPos = gl_Vertex;
- // calc texcoords
- diffuseTexCoords = (floor(gl_Vertex.xz) / SMF_TEXSQR_SIZE) - vec2(texSquare);
- // transform vertex pos
- gl_Position = gl_ModelViewMatrix * gl_Vertex;
- gl_ClipVertex = gl_Position;
- #if (DEFERRED_MODE == 0)
- float fogCoord = length(gl_Position.xyz);
- #endif
- gl_Position = gl_ProjectionMatrix * gl_Position;
- #if (DEFERRED_MODE == 0)
- // emulate linear fog
- fogFactor = (gl_Fog.end - fogCoord) * gl_Fog.scale; // gl_Fog.scale == 1.0 / (gl_Fog.end - gl_Fog.start)
- fogFactor = clamp(fogFactor, 0.0, 1.0);
- #endif
- }
- [f=0000000] [Shader] Warning: [GLSL-SO::Compile] shader-object name: GLSL/SMFFragProg.glsl, compile-log:
- Fragment shader failed to compile with the following errors:
- ERROR: 6:14: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:14: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:18: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:18: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:29: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:29: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:35: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:35: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:43: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:43: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:48: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:48: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:52: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:52: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:56: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:56: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:60: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:60: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:75: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:75: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:110: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:110: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:137: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:137: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:142: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:142: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:149: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:149: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:196: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:196: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:206: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:206: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:226: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:226: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:236: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:236: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:247: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:247: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:257: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:257: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:269: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:269: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:284: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:284: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:294: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:294: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:299: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:299: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:305: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:305: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:308: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:308: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:321: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:321: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:322: error(#143) Undeclared identifier MAX_DYNAMIC_MAP_LIGHTS
- ERROR: 6:323: error(#143) Undeclared identifier BASE_DYNAMIC_MAP_LIGHT
- ERROR: 6:323: error(#166) Integer expression required []
- ERROR: 6:324: error(#166) Integer expression required []
- ERROR: 6:326: error(#166) Integer expression required []
- ERROR: 6:342: error(#166) Integer expression required []
- ERROR: 6:343: error(#166) Integer expression required []
- ERROR: 6:345: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:345: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:353: error(#166) Integer expression required []
- ERROR: 6:354: error(#166) Integer expression required []
- ERROR: 6:355: error(#166) Integer expression required []
- ERROR: 6:359: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:359: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:360: error(#143) Undeclared identifier GBUFFER_NORMTEX_IDX
- ERROR: 6:360: error(#166) Integer expression required []
- ERROR: 6:361: error(#143) Undeclared identifier GBUFFER_DIFFTEX_IDX
- ERROR: 6:361: error(#166) Integer expression required []
- ERROR: 6:362: error(#143) Undeclared identifier GBUFFER_SPECTEX_IDX
- ERROR: 6:362: error(#166) Integer expression required []
- ERROR: 6:363: error(#143) Undeclared identifier GBUFFER_EMITTEX_IDX
- ERROR: 6:363: error(#166) Integer expression required []
- ERROR: 6:364: error(#143) Undeclared identifier GBUFFER_MISCTEX_IDX
- ERROR: 6:364: error(#166) Integer expression required []
- ERROR: error(#273) 49 compilation errors. No code generated
- [f=0000000] [Shader] Warning:
- // SHADER VERSION
- #version 120
- // SHADER FLAGS
- #define SMF_TEXSQUARE_SIZE 1024.000000
- #define SMF_INTENSITY_MULT 0.823529
- // SHADER SOURCE
- #line 1
- #define SSMF_UNCOMPRESSED_NORMALS 0
- #define SMF_SHALLOW_WATER_DEPTH (10.0 )
- #define SMF_SHALLOW_WATER_DEPTH_INV ( 1.0 / SMF_SHALLOW_WATER_DEPTH)
- #define SMF_DETAILTEX_RES 0.02
- uniform sampler2D diffuseTex;
- uniform sampler2D normalsTex;
- uniform sampler2D detailTex;
- uniform sampler2D infoTex;
- uniform vec2 normalTexGen; // either 1.0/mapSize (when NPOT are supported) or 1.0/mapSizePO2
- uniform vec2 specularTexGen; // 1.0/mapSize
- #if (SMF_ARB_LIGHTING == 0)
- uniform sampler2D specularTex;
- #endif
- #if (HAVE_SHADOWS == 1)
- uniform sampler2DShadow shadowTex;
- uniform mat4 shadowMat;
- uniform vec4 shadowParams;
- #endif
- uniform vec3 groundAmbientColor;
- uniform vec3 groundDiffuseColor;
- uniform vec3 groundSpecularColor;
- uniform float groundShadowDensity;
- #if (SMF_WATER_ABSORPTION == 1)
- uniform vec3 waterMinColor;
- uniform vec3 waterBaseColor;
- uniform vec3 waterAbsorbColor;
- #endif
- #if (SMF_DETAIL_TEXTURE_SPLATTING == 1)
- uniform sampler2D splatDetailTex;
- uniform sampler2D splatDistrTex;
- uniform vec4 splatTexMults; // per-channel splat intensity multipliers
- uniform vec4 splatTexScales; // defaults to SMF_DETAILTEX_RES per channel
- #endif
- #if (SMF_SKY_REFLECTIONS == 1)
- uniform samplerCube skyReflectTex;
- uniform sampler2D skyReflectModTex;
- #endif
- #if (SMF_DETAIL_NORMALS == 1)
- uniform sampler2D detailNormalTex;
- #endif
- #if (SMF_LIGHT_EMISSION == 1)
- uniform sampler2D lightEmissionTex;
- #endif
- #if (SMF_PARALLAX_MAPPING == 1)
- uniform sampler2D parallaxHeightTex;
- #endif
- #if (HAVE_INFOTEX == 1)
- uniform float infoTexIntensityMul;
- uniform vec2 infoTexGen; // 1.0/(pwr2map{x,z} * SQUARE_SIZE)
- #endif
- uniform vec4 lightDir;
- uniform vec3 cameraPos;
- varying vec3 halfDir;
- varying float fogFactor;
- varying vec4 vertexWorldPos;
- varying vec2 diffuseTexCoords;
- #if (SMF_PARALLAX_MAPPING == 1)
- vec2 GetParallaxUVOffset(vec2 uv, vec3 dir) {
- vec4 texel = texture2D(parallaxHeightTex, uv);
- // RG: height in [ 0.0, 1.0] (256^2 strata)
- // B: scale in [ 0.0, 1.0] (256 strata), eg. 0.04 (~10.0/256.0)
- // A: bias in [-0.5, 0.5] (256 strata), eg. -0.02 (~75.0/256.0)
- //
- #define RMUL 65280.0 // 255 * 256
- #define GMUL 256.0
- #define HDIV 65536.0
- float heightValue = (texel.r * RMUL + texel.g * GMUL) / HDIV;
- float heightScale = texel.b;
- float heightBias = texel.a - 0.5;
- float heightOffset = heightValue * heightScale + heightBias;
- return ((dir.xy / dir.z) * heightOffset);
- }
- #endif
- vec3 GetFragmentNormal(vec2 uv) {
- vec3 normal;
- #if (SSMF_UNCOMPRESSED_NORMALS == 1)
- normal = normalize(texture2D(normalsTex, uv).xyz);
- #else
- normal.xz = texture2D(normalsTex, uv).ra;
- normal.y = sqrt(1.0 - dot(normal.xz, normal.xz));
- #endif
- return normal;
- }
- vec4 GetDetailTextureColor(vec2 uv) {
- #if (SMF_DETAIL_TEXTURE_SPLATTING == 0)
- vec2 detailTexCoord = vertexWorldPos.xz * vec2(SMF_DETAILTEX_RES);
- vec4 detailCol = (texture2D(detailTex, detailTexCoord) * 2.0) - 1.0;
- #else
- vec4 splatTexCoord0 = vertexWorldPos.xzxz * splatTexScales.rrgg;
- vec4 splatTexCoord1 = vertexWorldPos.xzxz * splatTexScales.bbaa;
- vec4 splatDetails;
- splatDetails.r = texture2D(splatDetailTex, splatTexCoord0.st).r;
- splatDetails.g = texture2D(splatDetailTex, splatTexCoord0.pq).g;
- splatDetails.b = texture2D(splatDetailTex, splatTexCoord1.st).b;
- splatDetails.a = texture2D(splatDetailTex, splatTexCoord1.pq).a;
- splatDetails = (splatDetails * 2.0) - 1.0;
- vec4 splatCofac = texture2D(splatDistrTex, uv) * splatTexMults;
- vec4 detailCol = vec4(dot(splatDetails, splatCofac));
- #endif
- return detailCol;
- }
- vec4 GetShadeInt(float groundLightInt, float groundShadowCoeff, float groundDiffuseAlpha) {
- vec4 groundShadeInt = vec4(0.0, 0.0, 0.0, 1.0);
- vec4 waterShadeInt = vec4(0.0, 0.0, 0.0, 1.0);
- groundShadeInt.rgb = groundAmbientColor + groundDiffuseColor * (groundLightInt * groundShadowCoeff);
- groundShadeInt.rgb *= SMF_INTENSITY_MULT;
- #if (SMF_VOID_WATER == 1)
- // cut out all underwater fragments indiscriminately
- groundShadeInt.a = float(vertexWorldPos.y >= 0.0);
- #endif
- #if (SMF_VOID_GROUND == 1)
- // assume the map(per)'s diffuse texture provides sensible alphas
- // note that voidground overrides voidwater if *both* are enabled
- // (limiting it to just above-water fragments would be arbitrary)
- groundShadeInt.a = groundDiffuseAlpha;
- #endif
- #if (SMF_WATER_ABSORPTION == 1)
- {
- float waterShadeAlpha = abs(vertexWorldPos.y) * SMF_SHALLOW_WATER_DEPTH_INV;
- float waterShadeDecay = 0.2 + (waterShadeAlpha * 0.1);
- float vertexStepHeight = min(1023.0, -floor(vertexWorldPos.y));
- float waterLightInt = min((groundLightInt + 0.2) * 2.0, 1.0);
- // vertex below shallow water depth --> alpha=1
- // vertex above shallow water depth --> alpha=waterShadeAlpha
- //
- waterShadeAlpha = min(1.0, waterShadeAlpha + float(vertexWorldPos.y <= -SMF_SHALLOW_WATER_DEPTH));
- waterShadeInt.rgb = waterBaseColor.rgb - (waterAbsorbColor.rgb * vertexStepHeight);
- waterShadeInt.rgb = max(waterMinColor.rgb, waterShadeInt.rgb);
- waterShadeInt.rgb *= (SMF_INTENSITY_MULT * waterLightInt);
- // allow voidground maps to create holes in the seabed
- // (SMF_WATER_ABSORPTION == 1 implies voidwater is not
- // enabled but says nothing about the voidground state)
- waterShadeInt.a = groundShadeInt.a;
- // make shadowed areas darker over deeper water
- waterShadeInt.rgb -= (waterShadeInt.rgb * waterShadeDecay * (1.0 - groundShadowCoeff));
- // if depth is greater than _SHALLOW_ depth, select waterShadeInt
- // otherwise interpolate between groundShadeInt and waterShadeInt
- // (both are already cosine-weighted)
- waterShadeInt.rgb = mix(groundShadeInt.rgb, waterShadeInt.rgb, waterShadeAlpha);
- }
- return mix(groundShadeInt, waterShadeInt, float(vertexWorldPos.y < 0.0));
- #else
- return groundShadeInt;
- #endif
- }
- void main() {
- vec2 diffTexCoords = diffuseTexCoords;
- vec2 specTexCoords = vertexWorldPos.xz * specularTexGen;
- vec2 normTexCoords = vertexWorldPos.xz * normalTexGen;
- // not calculated in the vertex shader to save varying components (OpenGL2.0 allows just 32)
- vec3 cameraDir = vertexWorldPos.xyz - cameraPos;
- vec3 normal = GetFragmentNormal(normTexCoords);
- #if (SMF_DETAIL_NORMALS == 1 || SMF_PARALLAX_MAPPING == 1)
- // detail-normals are (assumed to be) defined within STN space
- // (for a regular vertex normal equal to <0, 1, 0>, the S- and
- // T-tangents are aligned with Spring's +x and +z (!) axes)
- vec3 tTangent = cross(normal, vec3(-1.0, 0.0, 0.0));
- vec3 sTangent = cross(normal, tTangent);
- mat3 stnMatrix = mat3(sTangent, tTangent, normal);
- #endif
- #if (SMF_PARALLAX_MAPPING == 1)
- {
- // use specular-texture coordinates to index parallaxHeightTex
- // (ie. specularTex and parallaxHeightTex must have equal size)
- // cameraDir does not need to be normalized, x/z and y/z ratios
- // do not change
- vec2 uvOffset = GetParallaxUVOffset(specTexCoords, transpose(stnMatrix) * cameraDir);
- vec2 normTexSize = 1.0 / normalTexGen;
- vec2 specTexSize = 1.0 / specularTexGen;
- // scale the parallax offset since it is in spectex-space
- diffTexCoords += (uvOffset * (specTexSize / SMF_TEXSQUARE_SIZE));
- normTexCoords += (uvOffset * (specTexSize / normTexSize));
- specTexCoords += (uvOffset);
- normal = GetFragmentNormal(normTexCoords);
- }
- #endif
- #if (SMF_DETAIL_NORMALS == 1)
- {
- vec4 dtSample = texture2D(detailNormalTex, normTexCoords);
- vec3 dtNormal = (dtSample.xyz * 2.0) - 1.0;
- // convert dtNormal from TS to WS before mixing
- normal = normalize(mix(normal, stnMatrix * dtNormal, dtSample.a));
- }
- #endif
- #if (DEFERRED_MODE == 0)
- float cosAngleDiffuse = clamp(dot(normalize(lightDir.xyz), normal), 0.0, 1.0);
- float cosAngleSpecular = clamp(dot(normalize(halfDir), normal), 0.0, 1.0);
- #endif
- vec4 diffuseCol = texture2D(diffuseTex, diffTexCoords);
- vec4 detailCol = GetDetailTextureColor(specTexCoords);
- // non-zero default specularity on non-SSMF maps (for DL)
- vec4 specularCol = vec4(0.5, 0.5, 0.5, 1.0);
- vec4 emissionCol = vec4(0.0, 0.0, 0.0, 0.0);
- #if (DEFERRED_MODE == 0 && SMF_SKY_REFLECTIONS == 1)
- {
- // cameraDir does not need to be normalized for reflect()
- vec3 reflectDir = reflect(cameraDir, normal);
- vec3 reflectCol = textureCube(skyReflectTex, gl_NormalMatrix * reflectDir).rgb;
- vec3 reflectMod = texture2D(skyReflectModTex, specTexCoords).rgb;
- diffuseCol.rgb = mix(diffuseCol.rgb, reflectCol, reflectMod);
- }
- #endif
- #if (DEFERRED_MODE == 0 && HAVE_INFOTEX == 1)
- // increase contrast and brightness for the overlays
- // TODO: make the multiplier configurable by users?
- vec2 infoTexCoords = vertexWorldPos.xz * infoTexGen;
- diffuseCol.rgb += (texture2D(infoTex, infoTexCoords).rgb * infoTexIntensityMul);
- diffuseCol.rgb -= (vec3(0.5, 0.5, 0.5) * float(infoTexIntensityMul == 1.0));
- #endif
- float shadowCoeff = 1.0;
- #if (DEFERRED_MODE == 0 && HAVE_SHADOWS == 1)
- {
- vec2 p17 = vec2(shadowParams.z, shadowParams.z);
- vec2 p18 = vec2(shadowParams.w, shadowParams.w);
- vec4 vertexShadowPos = shadowMat * vertexWorldPos;
- vertexShadowPos.st *= (inversesqrt(abs(vertexShadowPos.st) + p17) + p18);
- vertexShadowPos.st += shadowParams.xy;
- // same as ARB shader: shadowCoeff = 1 - (1 - shadowCoeff) * groundShadowDensity
- shadowCoeff = shadow2DProj(shadowTex, vertexShadowPos).r;
- shadowCoeff = mix(1.0, shadowCoeff, groundShadowDensity);
- }
- #endif
- #if (DEFERRED_MODE == 0)
- {
- // GroundMaterialAmbientDiffuseColor * LightAmbientDiffuseColor
- vec4 shadeInt = GetShadeInt(cosAngleDiffuse, shadowCoeff, diffuseCol.a);
- gl_FragColor.rgb = (diffuseCol.rgb + detailCol.rgb) * shadeInt.rgb;
- gl_FragColor.a = shadeInt.a;
- }
- #endif
- #if (SMF_LIGHT_EMISSION == 1)
- {
- // apply self-illumination aka. glow, not masked by shadows
- emissionCol = texture2D(lightEmissionTex, specTexCoords);
- #if (DEFERRED_MODE == 0)
- gl_FragColor.rgb = gl_FragColor.rgb * (1.0 - emissionCol.a) + emissionCol.rgb;
- #endif
- }
- #endif
- #if (SMF_ARB_LIGHTING == 0)
- specularCol = texture2D(specularTex, specTexCoords);
- #if (DEFERRED_MODE == 0)
- // sun specular lighting contribution
- float specularExp = specularCol.a * 16.0;
- float specularPow = pow(cosAngleSpecular, specularExp);
- vec3 specularInt = specularCol.rgb * specularPow;
- specularInt *= shadowCoeff;
- // no need to multiply by groundSpecularColor anymore
- gl_FragColor.rgb += specularInt;
- #endif
- #endif
- #if (DEFERRED_MODE == 0 && MAX_DYNAMIC_MAP_LIGHTS > 0)
- for (int i = 0; i < MAX_DYNAMIC_MAP_LIGHTS; i++) {
- vec3 lightVec = gl_LightSource[BASE_DYNAMIC_MAP_LIGHT + i].position.xyz - vertexWorldPos.xyz;
- vec3 halfVec = gl_LightSource[BASE_DYNAMIC_MAP_LIGHT + i].halfVector.xyz;
- float lightRadius = gl_LightSource[BASE_DYNAMIC_MAP_LIGHT + i].constantAttenuation;
- float lightDistance = length(lightVec);
- float lightScale = float(lightDistance <= lightRadius);
- float lightCosAngDiff = clamp(dot(normal, lightVec / lightDistance), 0.0, 1.0);
- float lightCosAngSpec = clamp(dot(normal, normalize(halfVec)), 0.0, 1.0);
- #ifdef OGL_SPEC_ATTENUATION
- float lightAttenuation =
- (gl_LightSource[BASE_DYNAMIC_MAP_LIGHT + i].constantAttenuation) +
- (gl_LightSource[BASE_DYNAMIC_MAP_LIGHT + i].linearAttenuation * lightDistance) +
- (gl_LightSource[BASE_DYNAMIC_MAP_LIGHT + i].quadraticAttenuation * lightDistance * lightDistance);
- lightAttenuation = 1.0 / max(lightAttenuation, 1.0);
- #else
- float lightAttenuation = 1.0 - min(1.0, ((lightDistance * lightDistance) / (lightRadius * lightRadius)));
- #endif
- float vectorDot = dot((-lightVec / lightDistance), gl_LightSource[BASE_DYNAMIC_MAP_LIGHT + i].spotDirection);
- float cutoffDot = gl_LightSource[BASE_DYNAMIC_MAP_LIGHT + i].spotCosCutoff;
- #if (SMF_ARB_LIGHTING == 0)
- float lightSpecularPow = max(0.0, pow(lightCosAngSpec, specularExp));
- #else
- float lightSpecularPow = 0.0;
- #endif
- lightScale *= float(vectorDot >= cutoffDot);
- gl_FragColor.rgb += (lightScale * gl_LightSource[BASE_DYNAMIC_MAP_LIGHT + i].ambient.rgb);
- gl_FragColor.rgb += (lightScale * lightAttenuation * (diffuseCol.rgb * gl_LightSource[BASE_DYNAMIC_MAP_LIGHT + i].diffuse.rgb * lightCosAngDiff));
- gl_FragColor.rgb += (lightScale * lightAttenuation * (specularCol.rgb * gl_LightSource[BASE_DYNAMIC_MAP_LIGHT + i].specular.rgb * lightSpecularPow));
- }
- #endif
- #if (DEFERRED_MODE == 1)
- gl_FragData[GBUFFER_NORMTEX_IDX] = vec4((normal + vec3(1.0, 1.0, 1.0)) * 0.5, 1.0);
- gl_FragData[GBUFFER_DIFFTEX_IDX] = diffuseCol + detailCol;
- gl_FragData[GBUFFER_SPECTEX_IDX] = specularCol;
- gl_FragData[GBUFFER_EMITTEX_IDX] = emissionCol;
- gl_FragData[GBUFFER_MISCTEX_IDX] = vec4(0.0, 0.0, 0.0, 0.0);
- // linearly transform the eye-space depths, might be more useful?
- // gl_FragDepth = gl_FragCoord.z / gl_FragCoord.w;
- #else
- gl_FragColor.rgb = mix(gl_Fog.color.rgb, gl_FragColor.rgb, fogFactor);
- #endif
- }
- [f=0000000] [Shader] Warning: [GLSL-SO::Compile] shader-object name: GLSL/SMFVertProg.glsl, compile-log:
- Vertex shader failed to compile with the following errors:
- ERROR: 6:33: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:33: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:39: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:39: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: error(#273) 2 compilation errors. No code generated
- [f=0000000] [Shader] Warning:
- // SHADER VERSION
- #version 120
- // SHADER FLAGS
- #define SMF_TEXSQUARE_SIZE 1024.000000
- #define SMF_INTENSITY_MULT 0.823529
- // SHADER SOURCE
- #line 1
- #define SMF_TEXSQR_SIZE 1024.0
- #define SMF_DETAILTEX_RES 0.02
- // uniform vec2 mapSizePO2; // pwr2map{x,z} * SQUARE_SIZE (TODO programmatically #define this)
- // uniform vec2 mapSize; // map{x,z} * SQUARE_SIZE (TODO programmatically #define this)
- // uniform vec2 mapHeights; // readmap->curr{Min, Max}Height
- uniform ivec2 texSquare;
- uniform vec3 cameraPos;
- uniform vec4 lightDir; // mapInfo->light.sunDir
- varying vec3 halfDir;
- varying float fogFactor;
- varying vec4 vertexWorldPos;
- varying vec2 diffuseTexCoords;
- void main() {
- // calc some lighting variables
- vec3 viewDir = vec3(gl_ModelViewMatrixInverse * vec4(0.0, 0.0, 0.0, 1.0));
- viewDir = normalize(viewDir - gl_Vertex.xyz);
- halfDir = normalize(lightDir.xyz + viewDir);
- vertexWorldPos = gl_Vertex;
- // calc texcoords
- diffuseTexCoords = (floor(gl_Vertex.xz) / SMF_TEXSQR_SIZE) - vec2(texSquare);
- // transform vertex pos
- gl_Position = gl_ModelViewMatrix * gl_Vertex;
- gl_ClipVertex = gl_Position;
- #if (DEFERRED_MODE == 0)
- float fogCoord = length(gl_Position.xyz);
- #endif
- gl_Position = gl_ProjectionMatrix * gl_Position;
- #if (DEFERRED_MODE == 0)
- // emulate linear fog
- fogFactor = (gl_Fog.end - fogCoord) * gl_Fog.scale; // gl_Fog.scale == 1.0 / (gl_Fog.end - gl_Fog.start)
- fogFactor = clamp(fogFactor, 0.0, 1.0);
- #endif
- }
- [f=0000000] [Shader] Warning: [GLSL-SO::Compile] shader-object name: GLSL/SMFFragProg.glsl, compile-log:
- Fragment shader failed to compile with the following errors:
- ERROR: 6:14: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:14: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:18: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:18: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:29: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:29: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:35: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:35: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:43: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:43: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:48: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:48: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:52: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:52: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:56: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:56: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:60: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:60: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:75: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:75: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:110: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:110: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:137: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:137: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:142: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:142: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:149: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:149: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:196: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:196: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:206: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:206: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:226: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:226: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:236: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:236: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:247: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:247: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:257: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:257: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:269: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:269: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:284: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:284: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:294: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:294: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:299: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:299: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:305: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:305: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:308: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:308: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:321: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:321: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:322: error(#143) Undeclared identifier MAX_DYNAMIC_MAP_LIGHTS
- ERROR: 6:323: error(#143) Undeclared identifier BASE_DYNAMIC_MAP_LIGHT
- ERROR: 6:323: error(#166) Integer expression required []
- ERROR: 6:324: error(#166) Integer expression required []
- ERROR: 6:326: error(#166) Integer expression required []
- ERROR: 6:342: error(#166) Integer expression required []
- ERROR: 6:343: error(#166) Integer expression required []
- ERROR: 6:345: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:345: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:353: error(#166) Integer expression required []
- ERROR: 6:354: error(#166) Integer expression required []
- ERROR: 6:355: error(#166) Integer expression required []
- ERROR: 6:359: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:359: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:360: error(#143) Undeclared identifier GBUFFER_NORMTEX_IDX
- ERROR: 6:360: error(#166) Integer expression required []
- ERROR: 6:361: error(#143) Undeclared identifier GBUFFER_DIFFTEX_IDX
- ERROR: 6:361: error(#166) Integer expression required []
- ERROR: 6:362: error(#143) Undeclared identifier GBUFFER_SPECTEX_IDX
- ERROR: 6:362: error(#166) Integer expression required []
- ERROR: 6:363: error(#143) Undeclared identifier GBUFFER_EMITTEX_IDX
- ERROR: 6:363: error(#166) Integer expression required []
- ERROR: 6:364: error(#143) Undeclared identifier GBUFFER_MISCTEX_IDX
- ERROR: 6:364: error(#166) Integer expression required []
- ERROR: error(#273) 49 compilation errors. No code generated
- [f=0000000] [Shader] Warning:
- // SHADER VERSION
- #version 120
- // SHADER FLAGS
- #define SMF_TEXSQUARE_SIZE 1024.000000
- #define SMF_INTENSITY_MULT 0.823529
- // SHADER SOURCE
- #line 1
- #define SSMF_UNCOMPRESSED_NORMALS 0
- #define SMF_SHALLOW_WATER_DEPTH (10.0 )
- #define SMF_SHALLOW_WATER_DEPTH_INV ( 1.0 / SMF_SHALLOW_WATER_DEPTH)
- #define SMF_DETAILTEX_RES 0.02
- uniform sampler2D diffuseTex;
- uniform sampler2D normalsTex;
- uniform sampler2D detailTex;
- uniform sampler2D infoTex;
- uniform vec2 normalTexGen; // either 1.0/mapSize (when NPOT are supported) or 1.0/mapSizePO2
- uniform vec2 specularTexGen; // 1.0/mapSize
- #if (SMF_ARB_LIGHTING == 0)
- uniform sampler2D specularTex;
- #endif
- #if (HAVE_SHADOWS == 1)
- uniform sampler2DShadow shadowTex;
- uniform mat4 shadowMat;
- uniform vec4 shadowParams;
- #endif
- uniform vec3 groundAmbientColor;
- uniform vec3 groundDiffuseColor;
- uniform vec3 groundSpecularColor;
- uniform float groundShadowDensity;
- #if (SMF_WATER_ABSORPTION == 1)
- uniform vec3 waterMinColor;
- uniform vec3 waterBaseColor;
- uniform vec3 waterAbsorbColor;
- #endif
- #if (SMF_DETAIL_TEXTURE_SPLATTING == 1)
- uniform sampler2D splatDetailTex;
- uniform sampler2D splatDistrTex;
- uniform vec4 splatTexMults; // per-channel splat intensity multipliers
- uniform vec4 splatTexScales; // defaults to SMF_DETAILTEX_RES per channel
- #endif
- #if (SMF_SKY_REFLECTIONS == 1)
- uniform samplerCube skyReflectTex;
- uniform sampler2D skyReflectModTex;
- #endif
- #if (SMF_DETAIL_NORMALS == 1)
- uniform sampler2D detailNormalTex;
- #endif
- #if (SMF_LIGHT_EMISSION == 1)
- uniform sampler2D lightEmissionTex;
- #endif
- #if (SMF_PARALLAX_MAPPING == 1)
- uniform sampler2D parallaxHeightTex;
- #endif
- #if (HAVE_INFOTEX == 1)
- uniform float infoTexIntensityMul;
- uniform vec2 infoTexGen; // 1.0/(pwr2map{x,z} * SQUARE_SIZE)
- #endif
- uniform vec4 lightDir;
- uniform vec3 cameraPos;
- varying vec3 halfDir;
- varying float fogFactor;
- varying vec4 vertexWorldPos;
- varying vec2 diffuseTexCoords;
- #if (SMF_PARALLAX_MAPPING == 1)
- vec2 GetParallaxUVOffset(vec2 uv, vec3 dir) {
- vec4 texel = texture2D(parallaxHeightTex, uv);
- // RG: height in [ 0.0, 1.0] (256^2 strata)
- // B: scale in [ 0.0, 1.0] (256 strata), eg. 0.04 (~10.0/256.0)
- // A: bias in [-0.5, 0.5] (256 strata), eg. -0.02 (~75.0/256.0)
- //
- #define RMUL 65280.0 // 255 * 256
- #define GMUL 256.0
- #define HDIV 65536.0
- float heightValue = (texel.r * RMUL + texel.g * GMUL) / HDIV;
- float heightScale = texel.b;
- float heightBias = texel.a - 0.5;
- float heightOffset = heightValue * heightScale + heightBias;
- return ((dir.xy / dir.z) * heightOffset);
- }
- #endif
- vec3 GetFragmentNormal(vec2 uv) {
- vec3 normal;
- #if (SSMF_UNCOMPRESSED_NORMALS == 1)
- normal = normalize(texture2D(normalsTex, uv).xyz);
- #else
- normal.xz = texture2D(normalsTex, uv).ra;
- normal.y = sqrt(1.0 - dot(normal.xz, normal.xz));
- #endif
- return normal;
- }
- vec4 GetDetailTextureColor(vec2 uv) {
- #if (SMF_DETAIL_TEXTURE_SPLATTING == 0)
- vec2 detailTexCoord = vertexWorldPos.xz * vec2(SMF_DETAILTEX_RES);
- vec4 detailCol = (texture2D(detailTex, detailTexCoord) * 2.0) - 1.0;
- #else
- vec4 splatTexCoord0 = vertexWorldPos.xzxz * splatTexScales.rrgg;
- vec4 splatTexCoord1 = vertexWorldPos.xzxz * splatTexScales.bbaa;
- vec4 splatDetails;
- splatDetails.r = texture2D(splatDetailTex, splatTexCoord0.st).r;
- splatDetails.g = texture2D(splatDetailTex, splatTexCoord0.pq).g;
- splatDetails.b = texture2D(splatDetailTex, splatTexCoord1.st).b;
- splatDetails.a = texture2D(splatDetailTex, splatTexCoord1.pq).a;
- splatDetails = (splatDetails * 2.0) - 1.0;
- vec4 splatCofac = texture2D(splatDistrTex, uv) * splatTexMults;
- vec4 detailCol = vec4(dot(splatDetails, splatCofac));
- #endif
- return detailCol;
- }
- vec4 GetShadeInt(float groundLightInt, float groundShadowCoeff, float groundDiffuseAlpha) {
- vec4 groundShadeInt = vec4(0.0, 0.0, 0.0, 1.0);
- vec4 waterShadeInt = vec4(0.0, 0.0, 0.0, 1.0);
- groundShadeInt.rgb = groundAmbientColor + groundDiffuseColor * (groundLightInt * groundShadowCoeff);
- groundShadeInt.rgb *= SMF_INTENSITY_MULT;
- #if (SMF_VOID_WATER == 1)
- // cut out all underwater fragments indiscriminately
- groundShadeInt.a = float(vertexWorldPos.y >= 0.0);
- #endif
- #if (SMF_VOID_GROUND == 1)
- // assume the map(per)'s diffuse texture provides sensible alphas
- // note that voidground overrides voidwater if *both* are enabled
- // (limiting it to just above-water fragments would be arbitrary)
- groundShadeInt.a = groundDiffuseAlpha;
- #endif
- #if (SMF_WATER_ABSORPTION == 1)
- {
- float waterShadeAlpha = abs(vertexWorldPos.y) * SMF_SHALLOW_WATER_DEPTH_INV;
- float waterShadeDecay = 0.2 + (waterShadeAlpha * 0.1);
- float vertexStepHeight = min(1023.0, -floor(vertexWorldPos.y));
- float waterLightInt = min((groundLightInt + 0.2) * 2.0, 1.0);
- // vertex below shallow water depth --> alpha=1
- // vertex above shallow water depth --> alpha=waterShadeAlpha
- //
- waterShadeAlpha = min(1.0, waterShadeAlpha + float(vertexWorldPos.y <= -SMF_SHALLOW_WATER_DEPTH));
- waterShadeInt.rgb = waterBaseColor.rgb - (waterAbsorbColor.rgb * vertexStepHeight);
- waterShadeInt.rgb = max(waterMinColor.rgb, waterShadeInt.rgb);
- waterShadeInt.rgb *= (SMF_INTENSITY_MULT * waterLightInt);
- // allow voidground maps to create holes in the seabed
- // (SMF_WATER_ABSORPTION == 1 implies voidwater is not
- // enabled but says nothing about the voidground state)
- waterShadeInt.a = groundShadeInt.a;
- // make shadowed areas darker over deeper water
- waterShadeInt.rgb -= (waterShadeInt.rgb * waterShadeDecay * (1.0 - groundShadowCoeff));
- // if depth is greater than _SHALLOW_ depth, select waterShadeInt
- // otherwise interpolate between groundShadeInt and waterShadeInt
- // (both are already cosine-weighted)
- waterShadeInt.rgb = mix(groundShadeInt.rgb, waterShadeInt.rgb, waterShadeAlpha);
- }
- return mix(groundShadeInt, waterShadeInt, float(vertexWorldPos.y < 0.0));
- #else
- return groundShadeInt;
- #endif
- }
- void main() {
- vec2 diffTexCoords = diffuseTexCoords;
- vec2 specTexCoords = vertexWorldPos.xz * specularTexGen;
- vec2 normTexCoords = vertexWorldPos.xz * normalTexGen;
- // not calculated in the vertex shader to save varying components (OpenGL2.0 allows just 32)
- vec3 cameraDir = vertexWorldPos.xyz - cameraPos;
- vec3 normal = GetFragmentNormal(normTexCoords);
- #if (SMF_DETAIL_NORMALS == 1 || SMF_PARALLAX_MAPPING == 1)
- // detail-normals are (assumed to be) defined within STN space
- // (for a regular vertex normal equal to <0, 1, 0>, the S- and
- // T-tangents are aligned with Spring's +x and +z (!) axes)
- vec3 tTangent = cross(normal, vec3(-1.0, 0.0, 0.0));
- vec3 sTangent = cross(normal, tTangent);
- mat3 stnMatrix = mat3(sTangent, tTangent, normal);
- #endif
- #if (SMF_PARALLAX_MAPPING == 1)
- {
- // use specular-texture coordinates to index parallaxHeightTex
- // (ie. specularTex and parallaxHeightTex must have equal size)
- // cameraDir does not need to be normalized, x/z and y/z ratios
- // do not change
- vec2 uvOffset = GetParallaxUVOffset(specTexCoords, transpose(stnMatrix) * cameraDir);
- vec2 normTexSize = 1.0 / normalTexGen;
- vec2 specTexSize = 1.0 / specularTexGen;
- // scale the parallax offset since it is in spectex-space
- diffTexCoords += (uvOffset * (specTexSize / SMF_TEXSQUARE_SIZE));
- normTexCoords += (uvOffset * (specTexSize / normTexSize));
- specTexCoords += (uvOffset);
- normal = GetFragmentNormal(normTexCoords);
- }
- #endif
- #if (SMF_DETAIL_NORMALS == 1)
- {
- vec4 dtSample = texture2D(detailNormalTex, normTexCoords);
- vec3 dtNormal = (dtSample.xyz * 2.0) - 1.0;
- // convert dtNormal from TS to WS before mixing
- normal = normalize(mix(normal, stnMatrix * dtNormal, dtSample.a));
- }
- #endif
- #if (DEFERRED_MODE == 0)
- float cosAngleDiffuse = clamp(dot(normalize(lightDir.xyz), normal), 0.0, 1.0);
- float cosAngleSpecular = clamp(dot(normalize(halfDir), normal), 0.0, 1.0);
- #endif
- vec4 diffuseCol = texture2D(diffuseTex, diffTexCoords);
- vec4 detailCol = GetDetailTextureColor(specTexCoords);
- // non-zero default specularity on non-SSMF maps (for DL)
- vec4 specularCol = vec4(0.5, 0.5, 0.5, 1.0);
- vec4 emissionCol = vec4(0.0, 0.0, 0.0, 0.0);
- #if (DEFERRED_MODE == 0 && SMF_SKY_REFLECTIONS == 1)
- {
- // cameraDir does not need to be normalized for reflect()
- vec3 reflectDir = reflect(cameraDir, normal);
- vec3 reflectCol = textureCube(skyReflectTex, gl_NormalMatrix * reflectDir).rgb;
- vec3 reflectMod = texture2D(skyReflectModTex, specTexCoords).rgb;
- diffuseCol.rgb = mix(diffuseCol.rgb, reflectCol, reflectMod);
- }
- #endif
- #if (DEFERRED_MODE == 0 && HAVE_INFOTEX == 1)
- // increase contrast and brightness for the overlays
- // TODO: make the multiplier configurable by users?
- vec2 infoTexCoords = vertexWorldPos.xz * infoTexGen;
- diffuseCol.rgb += (texture2D(infoTex, infoTexCoords).rgb * infoTexIntensityMul);
- diffuseCol.rgb -= (vec3(0.5, 0.5, 0.5) * float(infoTexIntensityMul == 1.0));
- #endif
- float shadowCoeff = 1.0;
- #if (DEFERRED_MODE == 0 && HAVE_SHADOWS == 1)
- {
- vec2 p17 = vec2(shadowParams.z, shadowParams.z);
- vec2 p18 = vec2(shadowParams.w, shadowParams.w);
- vec4 vertexShadowPos = shadowMat * vertexWorldPos;
- vertexShadowPos.st *= (inversesqrt(abs(vertexShadowPos.st) + p17) + p18);
- vertexShadowPos.st += shadowParams.xy;
- // same as ARB shader: shadowCoeff = 1 - (1 - shadowCoeff) * groundShadowDensity
- shadowCoeff = shadow2DProj(shadowTex, vertexShadowPos).r;
- shadowCoeff = mix(1.0, shadowCoeff, groundShadowDensity);
- }
- #endif
- #if (DEFERRED_MODE == 0)
- {
- // GroundMaterialAmbientDiffuseColor * LightAmbientDiffuseColor
- vec4 shadeInt = GetShadeInt(cosAngleDiffuse, shadowCoeff, diffuseCol.a);
- gl_FragColor.rgb = (diffuseCol.rgb + detailCol.rgb) * shadeInt.rgb;
- gl_FragColor.a = shadeInt.a;
- }
- #endif
- #if (SMF_LIGHT_EMISSION == 1)
- {
- // apply self-illumination aka. glow, not masked by shadows
- emissionCol = texture2D(lightEmissionTex, specTexCoords);
- #if (DEFERRED_MODE == 0)
- gl_FragColor.rgb = gl_FragColor.rgb * (1.0 - emissionCol.a) + emissionCol.rgb;
- #endif
- }
- #endif
- #if (SMF_ARB_LIGHTING == 0)
- specularCol = texture2D(specularTex, specTexCoords);
- #if (DEFERRED_MODE == 0)
- // sun specular lighting contribution
- float specularExp = specularCol.a * 16.0;
- float specularPow = pow(cosAngleSpecular, specularExp);
- vec3 specularInt = specularCol.rgb * specularPow;
- specularInt *= shadowCoeff;
- // no need to multiply by groundSpecularColor anymore
- gl_FragColor.rgb += specularInt;
- #endif
- #endif
- #if (DEFERRED_MODE == 0 && MAX_DYNAMIC_MAP_LIGHTS > 0)
- for (int i = 0; i < MAX_DYNAMIC_MAP_LIGHTS; i++) {
- vec3 lightVec = gl_LightSource[BASE_DYNAMIC_MAP_LIGHT + i].position.xyz - vertexWorldPos.xyz;
- vec3 halfVec = gl_LightSource[BASE_DYNAMIC_MAP_LIGHT + i].halfVector.xyz;
- float lightRadius = gl_LightSource[BASE_DYNAMIC_MAP_LIGHT + i].constantAttenuation;
- float lightDistance = length(lightVec);
- float lightScale = float(lightDistance <= lightRadius);
- float lightCosAngDiff = clamp(dot(normal, lightVec / lightDistance), 0.0, 1.0);
- float lightCosAngSpec = clamp(dot(normal, normalize(halfVec)), 0.0, 1.0);
- #ifdef OGL_SPEC_ATTENUATION
- float lightAttenuation =
- (gl_LightSource[BASE_DYNAMIC_MAP_LIGHT + i].constantAttenuation) +
- (gl_LightSource[BASE_DYNAMIC_MAP_LIGHT + i].linearAttenuation * lightDistance) +
- (gl_LightSource[BASE_DYNAMIC_MAP_LIGHT + i].quadraticAttenuation * lightDistance * lightDistance);
- lightAttenuation = 1.0 / max(lightAttenuation, 1.0);
- #else
- float lightAttenuation = 1.0 - min(1.0, ((lightDistance * lightDistance) / (lightRadius * lightRadius)));
- #endif
- float vectorDot = dot((-lightVec / lightDistance), gl_LightSource[BASE_DYNAMIC_MAP_LIGHT + i].spotDirection);
- float cutoffDot = gl_LightSource[BASE_DYNAMIC_MAP_LIGHT + i].spotCosCutoff;
- #if (SMF_ARB_LIGHTING == 0)
- float lightSpecularPow = max(0.0, pow(lightCosAngSpec, specularExp));
- #else
- float lightSpecularPow = 0.0;
- #endif
- lightScale *= float(vectorDot >= cutoffDot);
- gl_FragColor.rgb += (lightScale * gl_LightSource[BASE_DYNAMIC_MAP_LIGHT + i].ambient.rgb);
- gl_FragColor.rgb += (lightScale * lightAttenuation * (diffuseCol.rgb * gl_LightSource[BASE_DYNAMIC_MAP_LIGHT + i].diffuse.rgb * lightCosAngDiff));
- gl_FragColor.rgb += (lightScale * lightAttenuation * (specularCol.rgb * gl_LightSource[BASE_DYNAMIC_MAP_LIGHT + i].specular.rgb * lightSpecularPow));
- }
- #endif
- #if (DEFERRED_MODE == 1)
- gl_FragData[GBUFFER_NORMTEX_IDX] = vec4((normal + vec3(1.0, 1.0, 1.0)) * 0.5, 1.0);
- gl_FragData[GBUFFER_DIFFTEX_IDX] = diffuseCol + detailCol;
- gl_FragData[GBUFFER_SPECTEX_IDX] = specularCol;
- gl_FragData[GBUFFER_EMITTEX_IDX] = emissionCol;
- gl_FragData[GBUFFER_MISCTEX_IDX] = vec4(0.0, 0.0, 0.0, 0.0);
- // linearly transform the eye-space depths, might be more useful?
- // gl_FragDepth = gl_FragCoord.z / gl_FragCoord.w;
- #else
- gl_FragColor.rgb = mix(gl_Fog.color.rgb, gl_FragColor.rgb, fogFactor);
- #endif
- }
- [f=0000000] Creating TreeDrawer
- [f=0000000] Creating ProjectileDrawer & UnitDrawer
- [f=0000000] Creating Projectile Textures
- [f=0000000] Warning: [CCEG::Load] railgun: Unknown tag CSimpleParticleSystem::colorchange
- [f=0000000] Warning: [CCEG::Load] ebombexpl: Unknown tag smoke::sizegrowth
- [f=0000000] Warning: [CCEG::Load] genericshellexplosion-large-blue-emp: Unknown tag CSimpleParticleSystem::delay
- [f=0000000] Warning: [CCEG::Load] nukeartyexpl: Unknown tag smoke::sizegrowth
- [f=0000000] Warning: [CCEG::Load] AREAHEALING: Unknown tag smoke::sizegrowth
- [f=0000000] Warning: [CCEG::Load] FACTORY_EXPLOSION_SMALL: Unknown tag smoke::sizegrowth
- [f=0000000] Warning: [CCEG::Load] FACTORY_EXPLOSION_SMALL: Unknown tag smoke::sizegrowth
- [f=0000000] Warning: [CCEG::Load] POWERPLANT_EXPLOSION_BIG: Unknown tag smoke::sizegrowth
- [f=0000000] Warning: [CCEG::Load] POWERPLANT_EXPLOSION_MEDIUM: Unknown tag smoke::sizegrowth
- [f=0000000] Warning: [CCEG::Load] FACTORY_EXPLOSION: Unknown tag smoke::sizegrowth
- [f=0000000] Warning: [CCEG::Load] FACTORY_EXPLOSION: Unknown tag smoke::sizegrowth
- [f=0000000] Warning: [CCEG::Load] FACTORY_EXPLOSION_MEDIUM: Unknown tag smoke::sizegrowth
- [f=0000000] Warning: [CCEG::Load] FACTORY_EXPLOSION_MEDIUM: Unknown tag smoke::sizegrowth
- [f=0000000] Warning: [CCEG::Load] POWERPLANT_EXPLOSION: Unknown tag smoke::sizegrowth
- [f=0000000] Warning: [CCEG::Load] dirt: Unknown tag CSimpleParticleSystem::colorchange
- [f=0000000] Warning: [CCEG::Load] blacksmoke: Unknown tag CSimpleParticleSystem::colorchange
- [f=0000000] Warning: [CCEG::Load] dirtsmall: Unknown tag CSimpleParticleSystem::colorchange
- [f=0000000] [Shader] Warning: [GLSL-SO::Compile] shader-object name: GLSL/ModelVertProg.glsl, compile-log:
- Vertex shader failed to compile with the following errors:
- ERROR: 6:23: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:23: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:55: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:55: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:62: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:62: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: error(#273) 3 compilation errors. No code generated
- [f=0000000] [Shader] Warning:
- // SHADER VERSION
- // SHADER FLAGS
- #define BASE_DYNAMIC_MODEL_LIGHT 2
- #define MAX_DYNAMIC_MODEL_LIGHTS 1
- // SHADER SOURCE
- #line 1
- // note: gl_ModelViewMatrix actually only contains the
- // model matrix, view matrix is on the projection stack
- //
- // todo: clip gl_Position against gl_ClipPlane[3] if advFade
- // note: many gfx will fallback to software rendering when
- // gl_ClipDistance or gl_ClipPosition are used, so it might
- // be better to use may a `discard` in the fragment shader
- //
- // note: shadow-map texture coordinates should be generated
- // per fragment (the non-linear projection used can produce
- // shifting artefacts with large triangles due to the linear
- // interpolation of vertex positions), but this is a source
- // of acne itself
- // #define use_normalmapping
- // #define flip_normalmap
- //uniform mat4 cameraMat;
- //uniform mat4 cameraInv;
- uniform vec3 cameraPos;
- #if (USE_SHADOWS == 1)
- uniform mat4 shadowMatrix;
- uniform vec4 shadowParams;
- #endif
- varying vec4 vertexWorldPos;
- varying vec3 cameraDir;
- varying float fogFactor;
- #ifdef use_normalmapping
- varying mat3 tbnMatrix;
- #else
- varying vec3 normalv;
- #endif
- uniform int numModelDynLights;
- void main(void)
- {
- #ifdef use_normalmapping
- vec3 tangent = gl_MultiTexCoord5.xyz;
- vec3 bitangent = gl_MultiTexCoord6.xyz;
- tbnMatrix = gl_NormalMatrix * mat3(tangent, bitangent, gl_Normal);
- #else
- normalv = gl_NormalMatrix * gl_Normal;
- #endif
- vertexWorldPos = gl_ModelViewMatrix * gl_Vertex;
- gl_Position = gl_ProjectionMatrix * vertexWorldPos;
- cameraDir = vertexWorldPos.xyz - cameraPos;
- #if (USE_SHADOWS == 1)
- gl_TexCoord[1] = shadowMatrix * vertexWorldPos;
- gl_TexCoord[1].st = gl_TexCoord[1].st * (inversesqrt( abs(gl_TexCoord[1].st) + shadowParams.z) + shadowParams.w) + shadowParams.xy;
- #endif
- gl_TexCoord[0].st = gl_MultiTexCoord0.st;
- #if (DEFERRED_MODE == 0)
- float fogCoord = length(cameraDir.xyz);
- fogFactor = (gl_Fog.end - fogCoord) * gl_Fog.scale; //gl_Fog.scale := 1.0 / (gl_Fog.end - gl_Fog.start)
- fogFactor = clamp(fogFactor, 0.0, 1.0);
- #endif
- }
- [f=0000000] [Shader] Warning: [GLSL-SO::Compile] shader-object name: GLSL/ModelFragProg.glsl, compile-log:
- Fragment shader failed to compile with the following errors:
- ERROR: 6:16: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:16: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:58: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:58: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:70: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:70: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:76: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:76: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:108: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:108: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:109: error(#143) Undeclared identifier GBUFFER_NORMTEX_IDX
- ERROR: 6:109: error(#166) Integer expression required []
- ERROR: 6:110: error(#143) Undeclared identifier GBUFFER_DIFFTEX_IDX
- ERROR: 6:110: error(#166) Integer expression required []
- ERROR: 6:113: error(#143) Undeclared identifier GBUFFER_SPECTEX_IDX
- ERROR: 6:113: error(#166) Integer expression required []
- ERROR: 6:114: error(#143) Undeclared identifier GBUFFER_EMITTEX_IDX
- ERROR: 6:114: error(#166) Integer expression required []
- ERROR: 6:115: error(#143) Undeclared identifier GBUFFER_MISCTEX_IDX
- ERROR: 6:115: error(#166) Integer expression required []
- ERROR: error(#273) 15 compilation errors. No code generated
- [f=0000000] [Shader] Warning:
- // SHADER VERSION
- // SHADER FLAGS
- #define BASE_DYNAMIC_MODEL_LIGHT 2
- #define MAX_DYNAMIC_MODEL_LIGHTS 1
- // SHADER SOURCE
- #line 1
- // #define use_normalmapping
- // #define flip_normalmap
- #define textureS3o1 diffuseTex
- #define textureS3o2 shadingTex
- uniform sampler2D textureS3o1;
- uniform sampler2D textureS3o2;
- uniform samplerCube specularTex;
- uniform samplerCube reflectTex;
- uniform vec3 sunDir;
- uniform vec3 sunDiffuse;
- uniform vec3 sunAmbient;
- #if (USE_SHADOWS == 1)
- uniform sampler2DShadow shadowTex;
- uniform float shadowDensity;
- #endif
- uniform vec4 teamColor; // alpha contains `far distance fading factor`
- varying vec4 vertexWorldPos;
- varying vec3 cameraDir;
- varying float fogFactor;
- #ifdef use_normalmapping
- uniform sampler2D normalMap;
- varying mat3 tbnMatrix;
- #else
- varying vec3 normalv;
- #endif
- uniform int numModelDynLights;
- void main(void)
- {
- #ifdef use_normalmapping
- vec2 tc = gl_TexCoord[0].st;
- #ifdef flip_normalmap
- tc.t = 1.0 - tc.t;
- #endif
- vec3 nvTS = normalize((texture2D(normalMap, tc).xyz - 0.5) * 2.0);
- vec3 normal = tbnMatrix * nvTS;
- #else
- vec3 normal = normalize(normalv);
- #endif
- vec3 light = max(dot(normal, sunDir), 0.0) * sunDiffuse + sunAmbient;
- vec4 diffuse = texture2D(textureS3o1, gl_TexCoord[0].st);
- vec4 extraColor = texture2D(textureS3o2, gl_TexCoord[0].st);
- vec3 reflectDir = reflect(cameraDir, normal);
- vec3 specular = textureCube(specularTex, reflectDir).rgb * extraColor.g * 4.0;
- vec3 reflection = textureCube(reflectTex, reflectDir).rgb;
- #if (USE_SHADOWS == 1)
- float shadow = shadow2DProj(shadowTex, gl_TexCoord[1]).r;
- shadow = 1.0 - (1.0 - shadow) * shadowDensity;
- vec3 shade = mix(sunAmbient, light, shadow);
- reflection = mix(shade, reflection, extraColor.g); // reflection
- reflection += extraColor.rrr; // self-illum
- specular *= shadow;
- #else
- reflection = mix(light, reflection, extraColor.g); // reflection
- reflection += extraColor.rrr; // self-illum
- #endif
- #if (DEFERRED_MODE == 0)
- gl_FragColor = diffuse;
- gl_FragColor.rgb = mix(gl_FragColor.rgb, teamColor.rgb, gl_FragColor.a); // teamcolor
- gl_FragColor.rgb = gl_FragColor.rgb * reflection + specular;
- #endif
- #if (DEFERRED_MODE == 0 && MAX_DYNAMIC_MODEL_LIGHTS > 0)
- for (int i = 0; i < MAX_DYNAMIC_MODEL_LIGHTS; i++) {
- vec3 lightVec = gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].position.xyz - vertexWorldPos.xyz;
- vec3 halfVec = gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].halfVector.xyz;
- float lightRadius = gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].constantAttenuation;
- float lightDistance = length(lightVec);
- float lightScale = (lightDistance > lightRadius)? 0.0: 1.0;
- float lightCosAngDiff = clamp(dot(normal, lightVec / lightDistance), 0.0, 1.0);
- float lightCosAngSpec = clamp(dot(normal, normalize(halfVec)), 0.0, 1.0);
- #ifdef OGL_SPEC_ATTENUATION
- float lightAttenuation =
- (gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].constantAttenuation) +
- (gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].linearAttenuation * lightDistance) +
- (gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].quadraticAttenuation * lightDistance * lightDistance);
- lightAttenuation = 1.0 / max(lightAttenuation, 1.0);
- #else
- float lightAttenuation = 1.0 - min(1.0, ((lightDistance * lightDistance) / (lightRadius * lightRadius)));
- #endif
- float vectorDot = dot((-lightVec / lightDistance), gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].spotDirection);
- float cutoffDot = gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].spotCosCutoff;
- lightScale *= ((vectorDot < cutoffDot)? 0.0: 1.0);
- gl_FragColor.rgb += (lightScale * gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].ambient.rgb);
- gl_FragColor.rgb += (lightScale * lightAttenuation * (diffuse.rgb * gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].diffuse.rgb * lightCosAngDiff));
- gl_FragColor.rgb += (lightScale * lightAttenuation * (specular.rgb * gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].specular.rgb * pow(lightCosAngSpec, 4.0)));
- }
- #endif
- #if (DEFERRED_MODE == 1)
- gl_FragData[GBUFFER_NORMTEX_IDX] = vec4(normal, 1.0);
- gl_FragData[GBUFFER_DIFFTEX_IDX] = vec4(mix(diffuse.rgb, teamColor.rgb, diffuse.a), extraColor.a * teamColor.a);
- // do not premultiply reflection, leave it to the deferred lighting pass
- // gl_FragData[GBUFFER_DIFFTEX_IDX] = vec4(mix(diffuse.rgb, teamColor.rgb, diffuse.a) * reflection, extraColor.a * teamColor.a);
- gl_FragData[GBUFFER_SPECTEX_IDX] = vec4(specular, 1.0);
- gl_FragData[GBUFFER_EMITTEX_IDX] = vec4(extraColor.r, extraColor.r, extraColor.r, 1.0);
- gl_FragData[GBUFFER_MISCTEX_IDX] = vec4(0.0, 0.0, 0.0, 0.0);
- #else
- gl_FragColor.rgb = mix(gl_Fog.color.rgb, gl_FragColor.rgb, fogFactor); // fog
- gl_FragColor.a = extraColor.a * teamColor.a;
- #endif
- }
- [f=0000000] [Shader] Warning: [GLSL-SO::Compile] shader-object name: GLSL/ModelVertProg.glsl, compile-log:
- Vertex shader failed to compile with the following errors:
- ERROR: 6:23: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:23: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:55: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:55: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:62: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:62: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: error(#273) 3 compilation errors. No code generated
- [f=0000000] [Shader] Warning:
- // SHADER VERSION
- // SHADER FLAGS
- #define BASE_DYNAMIC_MODEL_LIGHT 2
- #define MAX_DYNAMIC_MODEL_LIGHTS 1
- // SHADER SOURCE
- #line 1
- // note: gl_ModelViewMatrix actually only contains the
- // model matrix, view matrix is on the projection stack
- //
- // todo: clip gl_Position against gl_ClipPlane[3] if advFade
- // note: many gfx will fallback to software rendering when
- // gl_ClipDistance or gl_ClipPosition are used, so it might
- // be better to use may a `discard` in the fragment shader
- //
- // note: shadow-map texture coordinates should be generated
- // per fragment (the non-linear projection used can produce
- // shifting artefacts with large triangles due to the linear
- // interpolation of vertex positions), but this is a source
- // of acne itself
- // #define use_normalmapping
- // #define flip_normalmap
- //uniform mat4 cameraMat;
- //uniform mat4 cameraInv;
- uniform vec3 cameraPos;
- #if (USE_SHADOWS == 1)
- uniform mat4 shadowMatrix;
- uniform vec4 shadowParams;
- #endif
- varying vec4 vertexWorldPos;
- varying vec3 cameraDir;
- varying float fogFactor;
- #ifdef use_normalmapping
- varying mat3 tbnMatrix;
- #else
- varying vec3 normalv;
- #endif
- uniform int numModelDynLights;
- void main(void)
- {
- #ifdef use_normalmapping
- vec3 tangent = gl_MultiTexCoord5.xyz;
- vec3 bitangent = gl_MultiTexCoord6.xyz;
- tbnMatrix = gl_NormalMatrix * mat3(tangent, bitangent, gl_Normal);
- #else
- normalv = gl_NormalMatrix * gl_Normal;
- #endif
- vertexWorldPos = gl_ModelViewMatrix * gl_Vertex;
- gl_Position = gl_ProjectionMatrix * vertexWorldPos;
- cameraDir = vertexWorldPos.xyz - cameraPos;
- #if (USE_SHADOWS == 1)
- gl_TexCoord[1] = shadowMatrix * vertexWorldPos;
- gl_TexCoord[1].st = gl_TexCoord[1].st * (inversesqrt( abs(gl_TexCoord[1].st) + shadowParams.z) + shadowParams.w) + shadowParams.xy;
- #endif
- gl_TexCoord[0].st = gl_MultiTexCoord0.st;
- #if (DEFERRED_MODE == 0)
- float fogCoord = length(cameraDir.xyz);
- fogFactor = (gl_Fog.end - fogCoord) * gl_Fog.scale; //gl_Fog.scale := 1.0 / (gl_Fog.end - gl_Fog.start)
- fogFactor = clamp(fogFactor, 0.0, 1.0);
- #endif
- }
- [f=0000000] [Shader] Warning: [GLSL-SO::Compile] shader-object name: GLSL/ModelFragProg.glsl, compile-log:
- Fragment shader failed to compile with the following errors:
- ERROR: 6:16: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:16: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:58: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:58: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:70: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:70: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:76: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:76: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:108: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:108: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:109: error(#143) Undeclared identifier GBUFFER_NORMTEX_IDX
- ERROR: 6:109: error(#166) Integer expression required []
- ERROR: 6:110: error(#143) Undeclared identifier GBUFFER_DIFFTEX_IDX
- ERROR: 6:110: error(#166) Integer expression required []
- ERROR: 6:113: error(#143) Undeclared identifier GBUFFER_SPECTEX_IDX
- ERROR: 6:113: error(#166) Integer expression required []
- ERROR: 6:114: error(#143) Undeclared identifier GBUFFER_EMITTEX_IDX
- ERROR: 6:114: error(#166) Integer expression required []
- ERROR: 6:115: error(#143) Undeclared identifier GBUFFER_MISCTEX_IDX
- ERROR: 6:115: error(#166) Integer expression required []
- ERROR: error(#273) 15 compilation errors. No code generated
- [f=0000000] [Shader] Warning:
- // SHADER VERSION
- // SHADER FLAGS
- #define BASE_DYNAMIC_MODEL_LIGHT 2
- #define MAX_DYNAMIC_MODEL_LIGHTS 1
- // SHADER SOURCE
- #line 1
- // #define use_normalmapping
- // #define flip_normalmap
- #define textureS3o1 diffuseTex
- #define textureS3o2 shadingTex
- uniform sampler2D textureS3o1;
- uniform sampler2D textureS3o2;
- uniform samplerCube specularTex;
- uniform samplerCube reflectTex;
- uniform vec3 sunDir;
- uniform vec3 sunDiffuse;
- uniform vec3 sunAmbient;
- #if (USE_SHADOWS == 1)
- uniform sampler2DShadow shadowTex;
- uniform float shadowDensity;
- #endif
- uniform vec4 teamColor; // alpha contains `far distance fading factor`
- varying vec4 vertexWorldPos;
- varying vec3 cameraDir;
- varying float fogFactor;
- #ifdef use_normalmapping
- uniform sampler2D normalMap;
- varying mat3 tbnMatrix;
- #else
- varying vec3 normalv;
- #endif
- uniform int numModelDynLights;
- void main(void)
- {
- #ifdef use_normalmapping
- vec2 tc = gl_TexCoord[0].st;
- #ifdef flip_normalmap
- tc.t = 1.0 - tc.t;
- #endif
- vec3 nvTS = normalize((texture2D(normalMap, tc).xyz - 0.5) * 2.0);
- vec3 normal = tbnMatrix * nvTS;
- #else
- vec3 normal = normalize(normalv);
- #endif
- vec3 light = max(dot(normal, sunDir), 0.0) * sunDiffuse + sunAmbient;
- vec4 diffuse = texture2D(textureS3o1, gl_TexCoord[0].st);
- vec4 extraColor = texture2D(textureS3o2, gl_TexCoord[0].st);
- vec3 reflectDir = reflect(cameraDir, normal);
- vec3 specular = textureCube(specularTex, reflectDir).rgb * extraColor.g * 4.0;
- vec3 reflection = textureCube(reflectTex, reflectDir).rgb;
- #if (USE_SHADOWS == 1)
- float shadow = shadow2DProj(shadowTex, gl_TexCoord[1]).r;
- shadow = 1.0 - (1.0 - shadow) * shadowDensity;
- vec3 shade = mix(sunAmbient, light, shadow);
- reflection = mix(shade, reflection, extraColor.g); // reflection
- reflection += extraColor.rrr; // self-illum
- specular *= shadow;
- #else
- reflection = mix(light, reflection, extraColor.g); // reflection
- reflection += extraColor.rrr; // self-illum
- #endif
- #if (DEFERRED_MODE == 0)
- gl_FragColor = diffuse;
- gl_FragColor.rgb = mix(gl_FragColor.rgb, teamColor.rgb, gl_FragColor.a); // teamcolor
- gl_FragColor.rgb = gl_FragColor.rgb * reflection + specular;
- #endif
- #if (DEFERRED_MODE == 0 && MAX_DYNAMIC_MODEL_LIGHTS > 0)
- for (int i = 0; i < MAX_DYNAMIC_MODEL_LIGHTS; i++) {
- vec3 lightVec = gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].position.xyz - vertexWorldPos.xyz;
- vec3 halfVec = gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].halfVector.xyz;
- float lightRadius = gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].constantAttenuation;
- float lightDistance = length(lightVec);
- float lightScale = (lightDistance > lightRadius)? 0.0: 1.0;
- float lightCosAngDiff = clamp(dot(normal, lightVec / lightDistance), 0.0, 1.0);
- float lightCosAngSpec = clamp(dot(normal, normalize(halfVec)), 0.0, 1.0);
- #ifdef OGL_SPEC_ATTENUATION
- float lightAttenuation =
- (gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].constantAttenuation) +
- (gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].linearAttenuation * lightDistance) +
- (gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].quadraticAttenuation * lightDistance * lightDistance);
- lightAttenuation = 1.0 / max(lightAttenuation, 1.0);
- #else
- float lightAttenuation = 1.0 - min(1.0, ((lightDistance * lightDistance) / (lightRadius * lightRadius)));
- #endif
- float vectorDot = dot((-lightVec / lightDistance), gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].spotDirection);
- float cutoffDot = gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].spotCosCutoff;
- lightScale *= ((vectorDot < cutoffDot)? 0.0: 1.0);
- gl_FragColor.rgb += (lightScale * gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].ambient.rgb);
- gl_FragColor.rgb += (lightScale * lightAttenuation * (diffuse.rgb * gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].diffuse.rgb * lightCosAngDiff));
- gl_FragColor.rgb += (lightScale * lightAttenuation * (specular.rgb * gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].specular.rgb * pow(lightCosAngSpec, 4.0)));
- }
- #endif
- #if (DEFERRED_MODE == 1)
- gl_FragData[GBUFFER_NORMTEX_IDX] = vec4(normal, 1.0);
- gl_FragData[GBUFFER_DIFFTEX_IDX] = vec4(mix(diffuse.rgb, teamColor.rgb, diffuse.a), extraColor.a * teamColor.a);
- // do not premultiply reflection, leave it to the deferred lighting pass
- // gl_FragData[GBUFFER_DIFFTEX_IDX] = vec4(mix(diffuse.rgb, teamColor.rgb, diffuse.a) * reflection, extraColor.a * teamColor.a);
- gl_FragData[GBUFFER_SPECTEX_IDX] = vec4(specular, 1.0);
- gl_FragData[GBUFFER_EMITTEX_IDX] = vec4(extraColor.r, extraColor.r, extraColor.r, 1.0);
- gl_FragData[GBUFFER_MISCTEX_IDX] = vec4(0.0, 0.0, 0.0, 0.0);
- #else
- gl_FragColor.rgb = mix(gl_Fog.color.rgb, gl_FragColor.rgb, fogFactor); // fog
- gl_FragColor.a = extraColor.a * teamColor.a;
- #endif
- }
- [f=0000000] [Shader] Warning: [GLSL-SO::Compile] shader-object name: GLSL/ModelVertProg.glsl, compile-log:
- Vertex shader failed to compile with the following errors:
- ERROR: 6:23: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:23: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:55: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:55: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:62: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:62: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: error(#273) 3 compilation errors. No code generated
- [f=0000000] [Shader] Warning:
- // SHADER VERSION
- // SHADER FLAGS
- #define BASE_DYNAMIC_MODEL_LIGHT 2
- #define MAX_DYNAMIC_MODEL_LIGHTS 1
- // SHADER SOURCE
- #line 1
- // note: gl_ModelViewMatrix actually only contains the
- // model matrix, view matrix is on the projection stack
- //
- // todo: clip gl_Position against gl_ClipPlane[3] if advFade
- // note: many gfx will fallback to software rendering when
- // gl_ClipDistance or gl_ClipPosition are used, so it might
- // be better to use may a `discard` in the fragment shader
- //
- // note: shadow-map texture coordinates should be generated
- // per fragment (the non-linear projection used can produce
- // shifting artefacts with large triangles due to the linear
- // interpolation of vertex positions), but this is a source
- // of acne itself
- // #define use_normalmapping
- // #define flip_normalmap
- //uniform mat4 cameraMat;
- //uniform mat4 cameraInv;
- uniform vec3 cameraPos;
- #if (USE_SHADOWS == 1)
- uniform mat4 shadowMatrix;
- uniform vec4 shadowParams;
- #endif
- varying vec4 vertexWorldPos;
- varying vec3 cameraDir;
- varying float fogFactor;
- #ifdef use_normalmapping
- varying mat3 tbnMatrix;
- #else
- varying vec3 normalv;
- #endif
- uniform int numModelDynLights;
- void main(void)
- {
- #ifdef use_normalmapping
- vec3 tangent = gl_MultiTexCoord5.xyz;
- vec3 bitangent = gl_MultiTexCoord6.xyz;
- tbnMatrix = gl_NormalMatrix * mat3(tangent, bitangent, gl_Normal);
- #else
- normalv = gl_NormalMatrix * gl_Normal;
- #endif
- vertexWorldPos = gl_ModelViewMatrix * gl_Vertex;
- gl_Position = gl_ProjectionMatrix * vertexWorldPos;
- cameraDir = vertexWorldPos.xyz - cameraPos;
- #if (USE_SHADOWS == 1)
- gl_TexCoord[1] = shadowMatrix * vertexWorldPos;
- gl_TexCoord[1].st = gl_TexCoord[1].st * (inversesqrt( abs(gl_TexCoord[1].st) + shadowParams.z) + shadowParams.w) + shadowParams.xy;
- #endif
- gl_TexCoord[0].st = gl_MultiTexCoord0.st;
- #if (DEFERRED_MODE == 0)
- float fogCoord = length(cameraDir.xyz);
- fogFactor = (gl_Fog.end - fogCoord) * gl_Fog.scale; //gl_Fog.scale := 1.0 / (gl_Fog.end - gl_Fog.start)
- fogFactor = clamp(fogFactor, 0.0, 1.0);
- #endif
- }
- [f=0000000] [Shader] Warning: [GLSL-SO::Compile] shader-object name: GLSL/ModelFragProg.glsl, compile-log:
- Fragment shader failed to compile with the following errors:
- ERROR: 6:16: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:16: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:58: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:58: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:70: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:70: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:76: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:76: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:108: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:108: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:109: error(#143) Undeclared identifier GBUFFER_NORMTEX_IDX
- ERROR: 6:109: error(#166) Integer expression required []
- ERROR: 6:110: error(#143) Undeclared identifier GBUFFER_DIFFTEX_IDX
- ERROR: 6:110: error(#166) Integer expression required []
- ERROR: 6:113: error(#143) Undeclared identifier GBUFFER_SPECTEX_IDX
- ERROR: 6:113: error(#166) Integer expression required []
- ERROR: 6:114: error(#143) Undeclared identifier GBUFFER_EMITTEX_IDX
- ERROR: 6:114: error(#166) Integer expression required []
- ERROR: 6:115: error(#143) Undeclared identifier GBUFFER_MISCTEX_IDX
- ERROR: 6:115: error(#166) Integer expression required []
- ERROR: error(#273) 15 compilation errors. No code generated
- [f=0000000] [Shader] Warning:
- // SHADER VERSION
- // SHADER FLAGS
- #define BASE_DYNAMIC_MODEL_LIGHT 2
- #define MAX_DYNAMIC_MODEL_LIGHTS 1
- // SHADER SOURCE
- #line 1
- // #define use_normalmapping
- // #define flip_normalmap
- #define textureS3o1 diffuseTex
- #define textureS3o2 shadingTex
- uniform sampler2D textureS3o1;
- uniform sampler2D textureS3o2;
- uniform samplerCube specularTex;
- uniform samplerCube reflectTex;
- uniform vec3 sunDir;
- uniform vec3 sunDiffuse;
- uniform vec3 sunAmbient;
- #if (USE_SHADOWS == 1)
- uniform sampler2DShadow shadowTex;
- uniform float shadowDensity;
- #endif
- uniform vec4 teamColor; // alpha contains `far distance fading factor`
- varying vec4 vertexWorldPos;
- varying vec3 cameraDir;
- varying float fogFactor;
- #ifdef use_normalmapping
- uniform sampler2D normalMap;
- varying mat3 tbnMatrix;
- #else
- varying vec3 normalv;
- #endif
- uniform int numModelDynLights;
- void main(void)
- {
- #ifdef use_normalmapping
- vec2 tc = gl_TexCoord[0].st;
- #ifdef flip_normalmap
- tc.t = 1.0 - tc.t;
- #endif
- vec3 nvTS = normalize((texture2D(normalMap, tc).xyz - 0.5) * 2.0);
- vec3 normal = tbnMatrix * nvTS;
- #else
- vec3 normal = normalize(normalv);
- #endif
- vec3 light = max(dot(normal, sunDir), 0.0) * sunDiffuse + sunAmbient;
- vec4 diffuse = texture2D(textureS3o1, gl_TexCoord[0].st);
- vec4 extraColor = texture2D(textureS3o2, gl_TexCoord[0].st);
- vec3 reflectDir = reflect(cameraDir, normal);
- vec3 specular = textureCube(specularTex, reflectDir).rgb * extraColor.g * 4.0;
- vec3 reflection = textureCube(reflectTex, reflectDir).rgb;
- #if (USE_SHADOWS == 1)
- float shadow = shadow2DProj(shadowTex, gl_TexCoord[1]).r;
- shadow = 1.0 - (1.0 - shadow) * shadowDensity;
- vec3 shade = mix(sunAmbient, light, shadow);
- reflection = mix(shade, reflection, extraColor.g); // reflection
- reflection += extraColor.rrr; // self-illum
- specular *= shadow;
- #else
- reflection = mix(light, reflection, extraColor.g); // reflection
- reflection += extraColor.rrr; // self-illum
- #endif
- #if (DEFERRED_MODE == 0)
- gl_FragColor = diffuse;
- gl_FragColor.rgb = mix(gl_FragColor.rgb, teamColor.rgb, gl_FragColor.a); // teamcolor
- gl_FragColor.rgb = gl_FragColor.rgb * reflection + specular;
- #endif
- #if (DEFERRED_MODE == 0 && MAX_DYNAMIC_MODEL_LIGHTS > 0)
- for (int i = 0; i < MAX_DYNAMIC_MODEL_LIGHTS; i++) {
- vec3 lightVec = gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].position.xyz - vertexWorldPos.xyz;
- vec3 halfVec = gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].halfVector.xyz;
- float lightRadius = gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].constantAttenuation;
- float lightDistance = length(lightVec);
- float lightScale = (lightDistance > lightRadius)? 0.0: 1.0;
- float lightCosAngDiff = clamp(dot(normal, lightVec / lightDistance), 0.0, 1.0);
- float lightCosAngSpec = clamp(dot(normal, normalize(halfVec)), 0.0, 1.0);
- #ifdef OGL_SPEC_ATTENUATION
- float lightAttenuation =
- (gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].constantAttenuation) +
- (gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].linearAttenuation * lightDistance) +
- (gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].quadraticAttenuation * lightDistance * lightDistance);
- lightAttenuation = 1.0 / max(lightAttenuation, 1.0);
- #else
- float lightAttenuation = 1.0 - min(1.0, ((lightDistance * lightDistance) / (lightRadius * lightRadius)));
- #endif
- float vectorDot = dot((-lightVec / lightDistance), gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].spotDirection);
- float cutoffDot = gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].spotCosCutoff;
- lightScale *= ((vectorDot < cutoffDot)? 0.0: 1.0);
- gl_FragColor.rgb += (lightScale * gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].ambient.rgb);
- gl_FragColor.rgb += (lightScale * lightAttenuation * (diffuse.rgb * gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].diffuse.rgb * lightCosAngDiff));
- gl_FragColor.rgb += (lightScale * lightAttenuation * (specular.rgb * gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].specular.rgb * pow(lightCosAngSpec, 4.0)));
- }
- #endif
- #if (DEFERRED_MODE == 1)
- gl_FragData[GBUFFER_NORMTEX_IDX] = vec4(normal, 1.0);
- gl_FragData[GBUFFER_DIFFTEX_IDX] = vec4(mix(diffuse.rgb, teamColor.rgb, diffuse.a), extraColor.a * teamColor.a);
- // do not premultiply reflection, leave it to the deferred lighting pass
- // gl_FragData[GBUFFER_DIFFTEX_IDX] = vec4(mix(diffuse.rgb, teamColor.rgb, diffuse.a) * reflection, extraColor.a * teamColor.a);
- gl_FragData[GBUFFER_SPECTEX_IDX] = vec4(specular, 1.0);
- gl_FragData[GBUFFER_EMITTEX_IDX] = vec4(extraColor.r, extraColor.r, extraColor.r, 1.0);
- gl_FragData[GBUFFER_MISCTEX_IDX] = vec4(0.0, 0.0, 0.0, 0.0);
- #else
- gl_FragColor.rgb = mix(gl_Fog.color.rgb, gl_FragColor.rgb, fogFactor); // fog
- gl_FragColor.a = extraColor.a * teamColor.a;
- #endif
- }
- [f=0000000] [Shader] Warning: [GLSL-SO::Compile] shader-object name: GLSL/ModelVertProg.glsl, compile-log:
- Vertex shader failed to compile with the following errors:
- ERROR: 6:23: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:23: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:55: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:55: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:62: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:62: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: error(#273) 3 compilation errors. No code generated
- [f=0000000] [Shader] Warning:
- // SHADER VERSION
- // SHADER FLAGS
- #define BASE_DYNAMIC_MODEL_LIGHT 2
- #define MAX_DYNAMIC_MODEL_LIGHTS 1
- // SHADER SOURCE
- #line 1
- // note: gl_ModelViewMatrix actually only contains the
- // model matrix, view matrix is on the projection stack
- //
- // todo: clip gl_Position against gl_ClipPlane[3] if advFade
- // note: many gfx will fallback to software rendering when
- // gl_ClipDistance or gl_ClipPosition are used, so it might
- // be better to use may a `discard` in the fragment shader
- //
- // note: shadow-map texture coordinates should be generated
- // per fragment (the non-linear projection used can produce
- // shifting artefacts with large triangles due to the linear
- // interpolation of vertex positions), but this is a source
- // of acne itself
- // #define use_normalmapping
- // #define flip_normalmap
- //uniform mat4 cameraMat;
- //uniform mat4 cameraInv;
- uniform vec3 cameraPos;
- #if (USE_SHADOWS == 1)
- uniform mat4 shadowMatrix;
- uniform vec4 shadowParams;
- #endif
- varying vec4 vertexWorldPos;
- varying vec3 cameraDir;
- varying float fogFactor;
- #ifdef use_normalmapping
- varying mat3 tbnMatrix;
- #else
- varying vec3 normalv;
- #endif
- uniform int numModelDynLights;
- void main(void)
- {
- #ifdef use_normalmapping
- vec3 tangent = gl_MultiTexCoord5.xyz;
- vec3 bitangent = gl_MultiTexCoord6.xyz;
- tbnMatrix = gl_NormalMatrix * mat3(tangent, bitangent, gl_Normal);
- #else
- normalv = gl_NormalMatrix * gl_Normal;
- #endif
- vertexWorldPos = gl_ModelViewMatrix * gl_Vertex;
- gl_Position = gl_ProjectionMatrix * vertexWorldPos;
- cameraDir = vertexWorldPos.xyz - cameraPos;
- #if (USE_SHADOWS == 1)
- gl_TexCoord[1] = shadowMatrix * vertexWorldPos;
- gl_TexCoord[1].st = gl_TexCoord[1].st * (inversesqrt( abs(gl_TexCoord[1].st) + shadowParams.z) + shadowParams.w) + shadowParams.xy;
- #endif
- gl_TexCoord[0].st = gl_MultiTexCoord0.st;
- #if (DEFERRED_MODE == 0)
- float fogCoord = length(cameraDir.xyz);
- fogFactor = (gl_Fog.end - fogCoord) * gl_Fog.scale; //gl_Fog.scale := 1.0 / (gl_Fog.end - gl_Fog.start)
- fogFactor = clamp(fogFactor, 0.0, 1.0);
- #endif
- }
- [f=0000000] [Shader] Warning: [GLSL-SO::Compile] shader-object name: GLSL/ModelFragProg.glsl, compile-log:
- Fragment shader failed to compile with the following errors:
- ERROR: 6:16: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:16: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:58: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:58: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:70: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:70: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:76: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:76: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:108: error(#71) Syntax error incorrect preprocessor directive
- WARNING: 6:108: warning(#64) Unexpected tokens following the preprocessor directive - expected a newline(#if )
- ERROR: 6:109: error(#143) Undeclared identifier GBUFFER_NORMTEX_IDX
- ERROR: 6:109: error(#166) Integer expression required []
- ERROR: 6:110: error(#143) Undeclared identifier GBUFFER_DIFFTEX_IDX
- ERROR: 6:110: error(#166) Integer expression required []
- ERROR: 6:113: error(#143) Undeclared identifier GBUFFER_SPECTEX_IDX
- ERROR: 6:113: error(#166) Integer expression required []
- ERROR: 6:114: error(#143) Undeclared identifier GBUFFER_EMITTEX_IDX
- ERROR: 6:114: error(#166) Integer expression required []
- ERROR: 6:115: error(#143) Undeclared identifier GBUFFER_MISCTEX_IDX
- ERROR: 6:115: error(#166) Integer expression required []
- ERROR: error(#273) 15 compilation errors. No code generated
- [f=0000000] [Shader] Warning:
- // SHADER VERSION
- // SHADER FLAGS
- #define BASE_DYNAMIC_MODEL_LIGHT 2
- #define MAX_DYNAMIC_MODEL_LIGHTS 1
- // SHADER SOURCE
- #line 1
- // #define use_normalmapping
- // #define flip_normalmap
- #define textureS3o1 diffuseTex
- #define textureS3o2 shadingTex
- uniform sampler2D textureS3o1;
- uniform sampler2D textureS3o2;
- uniform samplerCube specularTex;
- uniform samplerCube reflectTex;
- uniform vec3 sunDir;
- uniform vec3 sunDiffuse;
- uniform vec3 sunAmbient;
- #if (USE_SHADOWS == 1)
- uniform sampler2DShadow shadowTex;
- uniform float shadowDensity;
- #endif
- uniform vec4 teamColor; // alpha contains `far distance fading factor`
- varying vec4 vertexWorldPos;
- varying vec3 cameraDir;
- varying float fogFactor;
- #ifdef use_normalmapping
- uniform sampler2D normalMap;
- varying mat3 tbnMatrix;
- #else
- varying vec3 normalv;
- #endif
- uniform int numModelDynLights;
- void main(void)
- {
- #ifdef use_normalmapping
- vec2 tc = gl_TexCoord[0].st;
- #ifdef flip_normalmap
- tc.t = 1.0 - tc.t;
- #endif
- vec3 nvTS = normalize((texture2D(normalMap, tc).xyz - 0.5) * 2.0);
- vec3 normal = tbnMatrix * nvTS;
- #else
- vec3 normal = normalize(normalv);
- #endif
- vec3 light = max(dot(normal, sunDir), 0.0) * sunDiffuse + sunAmbient;
- vec4 diffuse = texture2D(textureS3o1, gl_TexCoord[0].st);
- vec4 extraColor = texture2D(textureS3o2, gl_TexCoord[0].st);
- vec3 reflectDir = reflect(cameraDir, normal);
- vec3 specular = textureCube(specularTex, reflectDir).rgb * extraColor.g * 4.0;
- vec3 reflection = textureCube(reflectTex, reflectDir).rgb;
- #if (USE_SHADOWS == 1)
- float shadow = shadow2DProj(shadowTex, gl_TexCoord[1]).r;
- shadow = 1.0 - (1.0 - shadow) * shadowDensity;
- vec3 shade = mix(sunAmbient, light, shadow);
- reflection = mix(shade, reflection, extraColor.g); // reflection
- reflection += extraColor.rrr; // self-illum
- specular *= shadow;
- #else
- reflection = mix(light, reflection, extraColor.g); // reflection
- reflection += extraColor.rrr; // self-illum
- #endif
- #if (DEFERRED_MODE == 0)
- gl_FragColor = diffuse;
- gl_FragColor.rgb = mix(gl_FragColor.rgb, teamColor.rgb, gl_FragColor.a); // teamcolor
- gl_FragColor.rgb = gl_FragColor.rgb * reflection + specular;
- #endif
- #if (DEFERRED_MODE == 0 && MAX_DYNAMIC_MODEL_LIGHTS > 0)
- for (int i = 0; i < MAX_DYNAMIC_MODEL_LIGHTS; i++) {
- vec3 lightVec = gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].position.xyz - vertexWorldPos.xyz;
- vec3 halfVec = gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].halfVector.xyz;
- float lightRadius = gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].constantAttenuation;
- float lightDistance = length(lightVec);
- float lightScale = (lightDistance > lightRadius)? 0.0: 1.0;
- float lightCosAngDiff = clamp(dot(normal, lightVec / lightDistance), 0.0, 1.0);
- float lightCosAngSpec = clamp(dot(normal, normalize(halfVec)), 0.0, 1.0);
- #ifdef OGL_SPEC_ATTENUATION
- float lightAttenuation =
- (gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].constantAttenuation) +
- (gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].linearAttenuation * lightDistance) +
- (gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].quadraticAttenuation * lightDistance * lightDistance);
- lightAttenuation = 1.0 / max(lightAttenuation, 1.0);
- #else
- float lightAttenuation = 1.0 - min(1.0, ((lightDistance * lightDistance) / (lightRadius * lightRadius)));
- #endif
- float vectorDot = dot((-lightVec / lightDistance), gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].spotDirection);
- float cutoffDot = gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].spotCosCutoff;
- lightScale *= ((vectorDot < cutoffDot)? 0.0: 1.0);
- gl_FragColor.rgb += (lightScale * gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].ambient.rgb);
- gl_FragColor.rgb += (lightScale * lightAttenuation * (diffuse.rgb * gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].diffuse.rgb * lightCosAngDiff));
- gl_FragColor.rgb += (lightScale * lightAttenuation * (specular.rgb * gl_LightSource[BASE_DYNAMIC_MODEL_LIGHT + i].specular.rgb * pow(lightCosAngSpec, 4.0)));
- }
- #endif
- #if (DEFERRED_MODE == 1)
- gl_FragData[GBUFFER_NORMTEX_IDX] = vec4(normal, 1.0);
- gl_FragData[GBUFFER_DIFFTEX_IDX] = vec4(mix(diffuse.rgb, teamColor.rgb, diffuse.a), extraColor.a * teamColor.a);
- // do not premultiply reflection, leave it to the deferred lighting pass
- // gl_FragData[GBUFFER_DIFFTEX_IDX] = vec4(mix(diffuse.rgb, teamColor.rgb, diffuse.a) * reflection, extraColor.a * teamColor.a);
- gl_FragData[GBUFFER_SPECTEX_IDX] = vec4(specular, 1.0);
- gl_FragData[GBUFFER_EMITTEX_IDX] = vec4(extraColor.r, extraColor.r, extraColor.r, 1.0);
- gl_FragData[GBUFFER_MISCTEX_IDX] = vec4(0.0, 0.0, 0.0, 0.0);
- #else
- gl_FragColor.rgb = mix(gl_Fog.color.rgb, gl_FragColor.rgb, fogFactor); // fog
- gl_FragColor.a = extraColor.a * teamColor.a;
- #endif
- }
- [f=0000000] Creating Water
- [f=0000000] Game::LoadInterface (Camera&Mouse): 173 ms
- [f=0000000] Game::LoadInterface (Console): 13 ms
- [f=0000000] [Sound] Error: Unable to open audio file: FailedCommand
- [f=0000000] [Sound] Error: CSound::GetSoundId: could not find sound: FailedCommand
- [f=0000000] Loading LuaRules
- [f=0000000] -------------Survival Debug Messages----------------
- [f=0000000] TEAM
- [f=0000000] TEAM , 0, 0, false, false, outer_colonies, 0, <table>, 1
- [f=0000000] ----------------------------------------------------
- [f=0000000] -------------Survival Debug Messages----------------
- [f=0000000] TEAM
- [f=0000000] TEAM , 1, 1, false, false, outer_colonies, 0, <table>, 1
- [f=0000000] ----------------------------------------------------
- [f=0000000] -------------Survival Debug Messages----------------
- [f=0000000] TEAM
- [f=0000000] TEAM , 2, 2, false, false, outer_colonies, 0, <table>, 1
- [f=0000000] ----------------------------------------------------
- [f=0000000] -------------Survival Debug Messages----------------
- [f=0000000] TEAM
- [f=0000000] TEAM , 3, 3, false, false, outer_colonies, 0, <table>, 1
- [f=0000000] ----------------------------------------------------
- [f=0000000] -------------Survival Debug Messages----------------
- [f=0000000] TEAM
- [f=0000000] TEAM , 4, 4, false, false, outer_colonies, 1, <table>, 1
- [f=0000000] ----------------------------------------------------
- [f=0000000] -------------Survival Debug Messages----------------
- [f=0000000] TEAM
- [f=0000000] TEAM , 5, 5, false, false, outer_colonies, 1, <table>, 1
- [f=0000000] ----------------------------------------------------
- [f=0000000] -------------Survival Debug Messages----------------
- [f=0000000] TEAM
- [f=0000000] TEAM , 6, 6, false, false, outer_colonies, 1, <table>, 1
- [f=0000000] ----------------------------------------------------
- [f=0000000] -------------Survival Debug Messages----------------
- [f=0000000] TEAM
- [f=0000000] TEAM , 7, -1, false, false, , 2, <table>, 1
- [f=0000000] ----------------------------------------------------
- [f=0000000] Survival Spawner: Normal
- [f=0000000] [gadgets.lua] Error: Failed to load: chickens_unit_spawner_defense.lua ([string "LuaRules/Gadgets/chickens_unit_spawner_defe..."]:277: attempt to index field 'difficulties' (a nil value))
- [f=0000000] Loading gadget: Lua unit script framework <unit_script.lua>
- [f=0000000] ammobox, 131
- [f=0000000] LUARULES-DRAW (GADGETS)
- [f=0000000] Loading LuaGaia
- [f=0000000] Loading LuaUI
- [f=0000000] LuaSocketEnabled: yes
- [f=0000000] This game has locked LuaUI access
- [f=0000000] This game has locked LuaUI access
- [f=0000000] Using LUAUI_DIRNAME = LuaUI/
- [f=0000000] Reloaded ctrlpanel from file: LuaUI/ctrlpanel.txt
- [f=0000000] LuaUI: bound F11 to the widget selector
- [f=0000000] LuaUI: bound CTRL+F11 to tweak mode
- [f=0000000] Error: [UnitDefIndex] ERROR_TYPE for key "extractSquare" in UnitDefs __index
- [f=0000000] Loaded API widget: Shared Functions <api_shared_functions.lua>
- [f=0000000] Loaded API widget: Avatars <api_avatars.lua>
- [f=0000000] Loaded API widget: Chili Framework <api_chili.lua>
- [f=0000000] Loaded API widget: Lups <lups_wrapper.lua>
- [f=0000000] Hardware mouse-cursor is disabled!
- [f=0000000] Set "shadows" config-parameter to 1
- [f=0000000] Set UnitLodDist to 1000
- [f=0000000] model shaders is enabled!
- [f=0000000] Ground-decals rendering is disabled!
- [f=0000000] Set maximum particles to: 500
- [f=0000000] Set UnitIconDist to 200
- [f=0000000] Loaded widget: EPIC Menu <gui_epicmenu.lua>
- [f=0000000] Loaded widget: Chili Minimap <gui_chili_minimap.lua>
- [f=0000000] Loaded widget: Chili Widget Selector <gui_chili_widgetselector.lua>
- [f=0000000] Loaded widget: Custom Cursor Sets <gui_customcursorsets.lua>
- [f=0000000] Mexspot Fetcher fetching
- [f=0000000] Loaded widget: Mexspot Fetcher <wg_mexspot_fetcher.lua>
- [f=0000000] *** Common Colors ***
- [f=0000000] - ÿÿraven4444 (Red)
- [f=0000000] - ÿ9¯LanselptXC (Purple)
- [f=0000000] - ÿÿÿGhost333 (Yellow)
- [f=0000000] - ÿDªGKAGamer (Blue)
- [f=0000000] - ÿÌGugu42 (Green)
- [f=0000000] - ÿÿfKingDalak (Orange)
- [f=0000000] - ÿÿÿÂCorlian (Parchment)
- [f=0000000] Loaded widget: Common Team Colors <gui_common_colors.lua>
- [f=0000000] Loaded widget: Commander Name Tags <unit_comm_nametags.lua>
- [f=0000000] Loaded widget: HealthBars <unit_healthbars.lua>
- [f=0000000] Loaded widget: Outline <gfx_outline.lua>
- [f=0000000] Loaded widget: BuildETA <gui_build_eta.lua>
- [f=0000000] Loaded widget: AA Command Helper <cmd_attackcmd_aid.lua>
- [f=0000000] End spec mode / action finder
- [f=0000000] Loaded widget: Action Finder <cmd_actionfinder.lua>
- [f=0000000] Loaded widget: Auto Group <unit_auto_group.lua>
- [f=0000000] Loaded widget: Autoquit <autoquit.lua>
- [f=0000000] Loaded widget: CameraShake <camera_shake.lua>
- [f=0000000] Loaded widget: Chili Rejoining Progress Bar <gui_chili_rejoin_progress.lua>
- [f=0000000] Loaded widget: Chili Resource Bars <gui_chili_resource_bars.lua>
- [f=0000000] Loaded widget: Chili Selections & CursorTip <gui_chili_selections_and_cursortip.lua>
- [f=0000000] Loaded widget: Context Menu <gui_contextmenu.lua>
- [f=0000000] Loaded widget: Custom Unit Rings <unit_customrings.lua>
- [f=0000000] Loaded widget: Darkening <gui_darkening.lua>
- [f=0000000] Loaded widget: Funks EndGame Graph <gui_chili_endgraph.lua>
- [f=0000000] Loaded widget: Ground Texture Highlight - Frames <gui_power_range.lua>
- [f=0000000] Loaded widget: GroupMove <unit_group_move.lua>
- [f=0000000] Loaded widget: Highlight Geos <gui_highlight_geos.lua>
- [f=0000000] Loaded widget: Keep Morpheds Selected <keep_morphed_selected.lua>
- [f=0000000] Loaded widget: Load Own Moving <unit_load_own_moving.lua>
- [f=0000000] Loaded widget: Local Widgets Config <localwidgets.lua>
- [f=0000000] Loaded widget: Luarules Console Commands <cnslcmd.lua>
- [f=0000000] Loaded widget: Mex Placement Handler <cmd_mex_placement.lua>
- [f=0000000] Loaded widget: MinimapEvents <minimap_events.lua>
- [f=0000000] Loaded widget: Pause Screen <gui_pausescreen.lua>
- [f=0000000] Loaded widget: Point Tracker <gui_point_tracker.lua>
- [f=0000000] Loaded widget: Reset Hotkeys <reset_hotkeys.lua>
- [f=0000000] Loaded widget: SmartSelect <unit_smart_select.lua>
- [f=0000000] Loaded widget: Spectate Selected <gui_spectate_selected.lua>
- [f=0000000] Loaded widget: State Reverse Toggle <cmd_state_reverse_toggle.lua>
- [f=0000000] Loaded widget: Stereo3D <gfx_stereo3d.lua>
- [f=0000000] Loaded widget: Auto First Build Facing <autofirstbuildfacing.lua>
- [f=0000000] Loaded widget: NoDuplicateOrders <cmd_no_duplicate_orders.lua>
- [f=0000000] Loaded widget: Stockpiler <unit_stockpile.lua>
- [f=0000000] Loaded widget: Supply Bar <gui_chili_supplydisplay.lua>
- [f=0000000] Loaded widget: Write GameState <gamestate_write.lua>
- [f=0000000] Loaded widget: Music Player <snd_music.lua>
- [f=0000000] Loaded widget: Show All Commands <unit_showallcommands.lua>
- [f=0000000] Loaded widget: Ghost Radar v1.11 <unit_ghostradar.lua>
- [f=0000000] Loaded widget: Nuke Button <gui_nukebutton.lua>
- [f=0000000] Loaded widget: MiniMap Start Boxes <minimap_startbox.lua>
- [f=0000000] Loaded widget: Transport AI <unit_transport_ai.lua>
- [f=0000000] Loaded widget: StartRadius <gui_startradius.lua>
- [f=0000000] Loaded widget: Unit Auto Reclaim/Heal/Assist <unit_auto_reclaim_heal_assist.lua>
- [f=0000000] Loaded widget: Stall Assist <cmd_stall_assist.lua>
- [f=0000000] Loaded widget: Auto Group Com <unit_auto_group_com.lua>
- [f=0000000] Loaded widget: Start Point Remover & Comm Selector <init_start_point_remover.lua>
- [f=0000000] Loaded widget: Improved MetalMakers <unit_improved_metal_maker.lua>
- [f=0000000] Loaded widget: Mission Briefing <gui_mission_briefing.lua>
- [f=0000000] Loaded widget: Radar Colours <gui_radar_colors.lua>
- [f=0000000] Loaded widget: Attack AoE <gui_attack_aoe.lua>
- [f=0000000] Loaded widget: Select Keys <gui_selectkeys.lua>
- [f=0000000] Loaded widget: Unit Icons <unit_icons.lua>
- [f=0000000] map shaders is disabled!
- [f=0000000] model shaders is disabled!
- [f=0000000] dynamic-sky rendering is disabled!
- [f=0000000] dynamic-sun rendering is disabled!
- [f=0000000] Set maximum nano-particles to: 500
- [f=0000000] Set maximum particles to: 2000
- [f=0000000] Set "shadows" config-parameter to 0
- [f=0000000] Loaded widget: Graphics Settings (1 - Ultra Low) <gfx_settings_ultra_low.lua>
- [f=0000000] map shaders is disabled!
- [f=0000000] model shaders is enabled!
- [f=0000000] dynamic-sky rendering is disabled!
- [f=0000000] dynamic-sun rendering is disabled!
- [f=0000000] Set maximum nano-particles to: 1000
- [f=0000000] Set maximum particles to: 2500
- [f=0000000] Set "shadows" config-parameter to 0
- [f=0000000] Loaded widget: Graphics Settings (2 - Low) <gfx_settings_low.lua>
- [f=0000000] Loaded widget: AllyCursors <gui_ally_cursors.lua>
- [f=0000000] Loaded widget: BA Waypoint Dragger <unit_waypoint_dragger.lua>
- [f=0000000] Loaded widget: CEG Spawner <dbg_ceg_spawner.lua>
- [f=0000000] Loaded widget: CommandInsert <gui_commandinsert.lua>
- [f=0000000] Loaded widget: Dev Commands <dbg_devcommands.lua>
- [f=0000000] Loaded widget: Fancy Teamplatter <gui_fancy_teamplatter.lua>
- [f=0000000] Loaded widget: QueueCopypasta <cmd_queue_copypasta.lua>
- [f=0000000] Loaded widget: Rank Icons 2 <unit_rank_icons.lua>
- [f=0000000] Reloaded cmdcolors from file: cmdcolors.tmp
- [f=0000000] Loaded widget: SelectionHalo <gui_selectionhalo.lua>
- [f=0000000] Loaded widget: Select n Center! <gui_center_n_select.lua>
- [f=0000000] Loaded widget: LupsManager <gfx_lups_manager.lua>
- [f=0000000] Loaded widget: Units on Fire <gfx_lups_units_on_fire.lua>
- [f=0000000] Loaded widget: Smoke Signal <gfx_lups_smokesignal.lua>
- [f=0000000] Loaded widget: Chili Chat 2.1 <gui_chili_chat2_1.lua>
- [f=0000000] Loaded widget: Chili Deluxe Player List - Alpha 2.02 (Modified for Evolution RTS) <gui_chili_deluxeplayerlist.lua>
- [f=0000000] Loaded widget: Chili Docking <gui_chili_docking.lua>
- [f=0000000] Loaded widget: Mouse Buildspacing <gui_buildspacing.lua>
- [f=0000000] Loaded widget: Image Preloader <dbg_buildpic_preload.lua>
- [f=0000000] Epicmenu: tab (overviewmode, Combo Overhead/Free Camera (experimental))
- [f=0000000] Epicmenu: alt+t (trackmode, Combo Overhead/Free Camera (experimental))
- [f=0000000] Epicmenu: alt+k (thirdpersontrack, Combo Overhead/Free Camera (experimental))
- [f=0000000] Loaded widget: Combo Overhead/Free Camera (experimental) <camera_cofc.lua>
- [f=0000000] Loaded widget: Default Group Recall Fix <gui_group_recall_fix.lua>
- [f=0000000] Loaded widget: CustomFormations2 <unit_customformations2.lua>
- [f=0000000] Loaded widget: Chili Integral Menu <gui_chili_integral_menu.lua>
- [f=0000000] [EPIC Menu] Error: Could not open keybind file LuaUI/Configs/evo_keys.lua for writing
- [f=0000000] LuaUI v0.3
- [f=0000000] Initializing PathCache
- [f=0000000] Finalizing
- [f=0000000] Set water rendering mode to 0 (basic)
- [f=0000000] [Shader] Warning: [GLSL-SO::Compile] shader-object name: GLSL/bumpWaterCoastBlurFS.glsl, compile-log:
- Fragment shader failed to compile with the following errors:
- ERROR: 6:57: error(#132) Syntax error: 'out' parse error
- ERROR: error(#273) 1 compilation errors. No code generated
- [f=0000000] [Shader] Warning:
- // SHADER VERSION
- #version 120
- // SHADER FLAGS
- // SHADER SOURCE
- #line 1
- /**
- * @project Spring RTS
- * @file bumpWaterCoastBlurFS.glsl
- * @brief Input is a 0/1 bitmap and 1 indicates land.
- * Now this shader blurs this map, so you get something like
- * a distance to land map (->coastmap).
- * @author jK
- *
- * Copyright (C) 2008,2009. Licensed under the terms of the
- * GNU GPL, v2 or later.
- */
- #define res 15.0
- #define renderToAtlas (gl_TexCoord[2].x > 0.5)
- #define radius gl_TexCoord[2].y
- uniform sampler2D tex0; //! final (fullsize) texture
- uniform sampler2D tex1; //! atlas with to be updated rects
- const float kernel = 1.0 / 10.0;
- vec2 texelScissor = vec2(dFdx(gl_TexCoord[0].p), dFdy(gl_TexCoord[0].q)); // heightmap pos
- vec2 texel0 = vec2(dFdx(gl_TexCoord[0].s), dFdy(gl_TexCoord[0].t)); // 0..1
- vec4 tex2D(vec2 offset) {
- if (renderToAtlas) {
- return texture2D(tex0, gl_TexCoord[0].st + offset * texel0);
- } else {
- vec2 scissor = gl_TexCoord[0].pq + (offset * texelScissor);
- bool outOfAtlasBound = any(greaterThan(scissor,vec2(1.0))) || any(lessThan(scissor,vec2(0.0)));
- if (outOfAtlasBound) {
- return texture2D(tex1, gl_TexCoord[0].st);
- } else {
- return texture2D(tex1, gl_TexCoord[0].st + offset * texel0);
- }
- }
- }
- vec2 getDistRect(float d, vec2 offset) {
- vec2 dist;
- float minDist = res - d * res;
- dist.x = floor(minDist);
- float iDist = dist.x * dist.x;
- minDist *= minDist;
- dist.y = sqrt(minDist - iDist);
- dist += offset;
- return dist;
- }
- float sqlength(vec2 v) {
- return dot(v, v);
- }
- void LoopIter(in out float maxDist, in out vec3 minDist, float i) {
- // 0____1____2
- // | |
- // | |
- // 3 x 4
- // | |
- // | |
- // 5____6____7
- vec4 v1, v2;
- v1.x = tex2D(vec2(-i, radius)).g;
- v1.y = tex2D(vec2( i, radius)).g;
- v1.z = tex2D(vec2(-i, -radius)).g;
- v1.w = tex2D(vec2( i, -radius)).g;
- v2.x = tex2D(vec2( radius, i)).g;
- v2.y = tex2D(vec2( radius, -i)).g;
- v2.z = tex2D(vec2(-radius, i)).g;
- v2.w = tex2D(vec2(-radius, -i)).g;
- v1 = max(v1, v2 );
- v1.xy = max(v1.xy, v1.zw);
- v1.x = max(v1.x, v1.y );
- v1.x = max(v1.x, maxDist );
- vec2 dist = getDistRect(v1.x, vec2(radius, i));
- //minDist.z = min(minDist.z, sqlength(dist));
- if (sqlength(dist) < minDist.z) {
- maxDist = v1.x;
- minDist = vec3(dist, sqlength(dist));
- }
- }
- void main() {
- if (radius < 0.5) {
- //! initialize
- gl_FragColor = texture2D(tex1, gl_TexCoord[0].st);
- return;
- }
- if (radius > 9.5) {
- //! blur the texture in the final stage
- vec2
- groundSurrounding = tex2D(vec2( 1.0, 1.0)).rb;
- groundSurrounding += tex2D(vec2(-1.0, 1.0)).rb;
- groundSurrounding += tex2D(vec2(-1.0,-1.0)).rb;
- groundSurrounding += tex2D(vec2( 1.0,-1.0)).rb;
- gl_FragColor = texture2D(tex1, gl_TexCoord[0].st);
- if (groundSurrounding.x + gl_FragColor.r == 5.0) {
- gl_FragColor.r = 1.0;
- } else {
- gl_FragColor.r = 0.93 - (groundSurrounding.y + gl_FragColor.b) / 5.0;
- }
- return;
- } else if (radius > 8.5) {
- //! blur the texture in the final stage
- vec2
- blur = texture2D(tex0, gl_TexCoord[0].st + vec2( 1.0, 1.0) * texel0).rg;
- blur += texture2D(tex0, gl_TexCoord[0].st + vec2(-1.0, 1.0) * texel0).rg;
- blur += texture2D(tex0, gl_TexCoord[0].st + vec2(-1.0,-1.0) * texel0).rg;
- blur += texture2D(tex0, gl_TexCoord[0].st + vec2( 1.0,-1.0) * texel0).rg;
- gl_FragColor = texture2D(tex0, gl_TexCoord[0].st);
- gl_FragColor.r = step(5.0, blur.x + gl_FragColor.r);
- gl_FragColor.g = mix(gl_FragColor.g, blur.y * 0.25, 0.4);
- return;
- }
- float maxValue = 0.0;
- vec3 minDist = vec3(1e9);
- // driver fails at unrolling when count is not known
- // at compile-time, so we do it manually (radius is
- // in [0.5, 8.5], so we need at most 8 iterations)
- float iter = 0.0;
- if (iter <= radius) { LoopIter(maxValue, minDist, iter); iter += 1.0; }
- if (iter <= radius) { LoopIter(maxValue, minDist, iter); iter += 1.0; }
- if (iter <= radius) { LoopIter(maxValue, minDist, iter); iter += 1.0; }
- if (iter <= radius) { LoopIter(maxValue, minDist, iter); iter += 1.0; }
- if (iter <= radius) { LoopIter(maxValue, minDist, iter); iter += 1.0; }
- if (iter <= radius) { LoopIter(maxValue, minDist, iter); iter += 1.0; }
- if (iter <= radius) { LoopIter(maxValue, minDist, iter); iter += 1.0; }
- if (iter <= radius) { LoopIter(maxValue, minDist, iter); iter += 1.0; }
- //! PROCESS maxValue
- //if (maxValue == 0.0)
- // discard;
- float fDist = 1.0 - (min(res, sqrt(minDist.z)) / res);
- if (renderToAtlas) {
- gl_FragColor = texture2D(tex0, gl_TexCoord[0].st);
- } else {
- gl_FragColor = texture2D(tex1, gl_TexCoord[0].st);
- }
- gl_FragColor.g = max(gl_FragColor.g, fDist * fDist * fDist);
- }
- [f=0000000] Error: Spring 96.0 has crashed.
- [f=0000000] Error: DLL information:
- [f=0000000] Error: 0x00400000 spring
- [f=0000000] Error: 0x772a0000 ntdll
- [f=0000000] Error: 0x76b40000 kernel32
- [f=0000000] Error: 0x76160000 KERNELBASE
- [f=0000000] Error: 0x76970000 ADVAPI32
- [f=0000000] Error: 0x75c40000 msvcrt
- [f=0000000] Error: 0x762f0000 sechost
- [f=0000000] Error: 0x76db0000 RPCRT4
- [f=0000000] Error: 0x74cd0000 SspiCli
- [f=0000000] Error: 0x74cc0000 CRYPTBASE
- [f=0000000] Error: 0x63a50000 GLU32
- [f=0000000] Error: 0x63a80000 OPENGL32
- [f=0000000] Error: 0x76a10000 GDI32
- [f=0000000] Error: 0x76cb0000 USER32
- [f=0000000] Error: 0x75bf0000 LPK
- [f=0000000] Error: 0x766a0000 USP10
- [f=0000000] Error: 0x62ff0000 DDRAW
- [f=0000000] Error: 0x6d0d0000 DCIMAN32
- [f=0000000] Error: 0x75cf0000 SETUPAPI
- [f=0000000] Error: 0x761b0000 CFGMGR32
- [f=0000000] Error: 0x76310000 OLEAUT32
- [f=0000000] Error: 0x74d30000 ole32
- [f=0000000] Error: 0x75c00000 DEVOBJ
- [f=0000000] Error: 0x68ed0000 dwmapi
- [f=0000000] Error: 0x75b80000 IMAGEHLP
- [f=0000000] Error: 0x74ea0000 SHELL32
- [f=0000000] Error: 0x76c50000 SHLWAPI
- [f=0000000] Error: 0x74380000 WINMM
- [f=0000000] Error: 0x75bb0000 WS2_32
- [f=0000000] Error: 0x762e0000 NSI
- [f=0000000] Error: 0x10000000 DevIL
- [f=0000000] Error: 0x747c0000 MSVCP80
- [f=0000000] Error: 0x74720000 MSVCR80
- [f=0000000] Error: 0x6b600000 OpenAL32
- [f=0000000] Error: 0x70780000 vorbisfile
- [f=0000000] Error: 0x68140000 ogg
- [f=0000000] Error: 0x64cc0000 vorbis
- [f=0000000] Error: 0x62e80000 zlib1
- [f=0000000] Error: 0x66fc0000 freetype6
- [f=0000000] Error: 0x62aa0000 glew32
- [f=0000000] Error: 0x01390000 SDL
- [f=0000000] Error: 0x7c340000 MSVCR71
- [f=0000000] Error: 0x76100000 IMM32
- [f=0000000] Error: 0x761f0000 MSCTF
- [f=0000000] Error: 0x63db0000 dsound
- [f=0000000] Error: 0x6e020000 POWRPROF
- [f=0000000] Error: 0x76ab0000 CLBCatQ
- [f=0000000] Error: 0x6dfa0000 MMDevApi
- [f=0000000] Error: 0x67af0000 PROPSYS
- [f=0000000] Error: 0x6d110000 wdmaud
- [f=0000000] Error: 0x6d100000 ksuser
- [f=0000000] Error: 0x6d0f0000 AVRT
- [f=0000000] Error: 0x6e0b0000 AUDIOSES
- [f=0000000] Error: 0x67c80000 msacm32
- [f=0000000] Error: 0x62b40000 MSACM32
- [f=0000000] Error: 0x67920000 midimap
- [f=0000000] Error: 0x5bdd0000 gameoverlayrenderer
- [f=0000000] Error: 0x75c20000 psapi
- [f=0000000] Error: 0x72ee0000 profapi
- [f=0000000] Error: 0x68ef0000 uxtheme
- [f=0000000] Error: 0x68f70000 saHook
- [f=0000000] Error: 0x04d60000 pmls
- [f=0000000] Error: 0x6e1b0000 OLEACC
- [f=0000000] Error: 0x75e90000 WININET
- [f=0000000] Error: 0x762c0000 api-ms-win-downlevel-user32-l1-1-0
- [f=0000000] Error: 0x76aa0000 api-ms-win-downlevel-shlwapi-l1-1-0
- [f=0000000] Error: 0x761e0000 api-ms-win-downlevel-version-l1-1-0
- [f=0000000] Error: 0x74bf0000 version
- [f=0000000] Error: 0x77270000 api-ms-win-downlevel-normaliz-l1-1-0
- [f=0000000] Error: 0x762d0000 normaliz
- [f=0000000] Error: 0x04e10000 iertutil
- [f=0000000] Error: 0x74e90000 api-ms-win-downlevel-advapi32-l1-1-0
- [f=0000000] Error: 0x693b0000 ntmarta
- [f=0000000] Error: 0x76530000 WLDAP32
- [f=0000000] Error: 0x63d70000 Schannel
- [f=0000000] Error: 0x76580000 CRYPT32
- [f=0000000] Error: 0x75c30000 MSASN1
- [f=0000000] Error: 0x72e20000 mswsock
- [f=0000000] Error: 0x72e10000 wshtcpip
- [f=0000000] Error: 0x685e0000 atiglpxx
- [f=0000000] Error: 0x07080000 atioglxx
- [f=0000000] Error: 0x68560000 atigktxx
- [f=0000000] Error: 0x6de10000 aticfx32
- [f=0000000] Error: 0x056a0000 atiadlxy
- [f=0000000] Error: 0x76050000 WINTRUST
- [f=0000000] Error: 0x639f0000 DINPUT
- [f=0000000] Error: 0x6e1a0000 HID
- [f=0000000] Error: 0x6c970000 wship6
- [f=0000000] Error: 0x665c0000 dbghelp
- [f=0000000] Error: Exception: Access violation (0xc0000005)
- [f=0000000] Error: Exception Address: 0x0774c6e2
- [f=0000000] Error: Stacktrace for Spring 96.0:
- [f=0000000] Error: This stack trace indicates a problem with your graphic card driver. Please try upgrading or downgrading it. Specifically recommended is the latest driver, and one that is as old as your graphic card. Make sure to use a driver removal utility, before installing other drivers.
- [f=0000000] Error: (0) C:\Windows\system32\atioglxx.dll(atiPPHSN+0x5f1a62) [0x0774C6E2]
- [f=0000000] Error: (1) C:\Windows\SysWOW64\ntdll.dll(RtlInitUnicodeString+0x164) [0x772CE38C]
- [f=0000000] Error: (2) C:\Windows\SysWOW64\ntdll.dll(RtlAllocateHeap+0xac) [0x772CE0F2]
- [f=0000000] Error: (3) C:\Windows\system32\atioglxx.dll(atiPPHSN+0x5f2fe1) [0x0774DC61]
- [f=0000000] Error: [ErrorMessageBox][1] msg="Spring has crashed:
- Access violation.
- A stacktrace has been written to:
- C:\Users\Joshua\Documents\My Games\Spring\infolog.txt" IsMainThread()=1 fromMain=0
- [f=0000000] Error: [ErrorMessageBox][2]
- [f=0000000] [SpringApp::ShutDown][1]
- [f=0000000] [ThreadPool::SetThreadCount][1] #wanted=0 #current=3
- [f=0000000] [ThreadPool::SetThreadCount][2] #threads=0
- [f=0000000] [SpringApp::ShutDown][2]
- [f=0000000] [~CGame][1]
- [f=0000000] [~CGame][2]
- [f=0000000] [~CGame][3]
- [f=0000000] [~CGame][4]
- [f=0000000] [~CGame][5]
- [f=0000000] MetalMakers widget disabled for spectators
- [f=0000000] [~CGame][6]
- [f=0000000] [EPIC Menu] Error: Could not open keybind file LuaUI/Configs/evo_keys.lua for writing
- [f=0000000] [~CGame][7]
- [f=0000000] [~CGame][8]
- [f=0000000] [CCollisionHandler] dis-/continuous tests: 0/0
- [f=0000000] [~CGame][9]
- [f=0000000] [~CGame][10]
- [f=0000000] [~CPathCache(24x28)] cacheHits=0 hitPercentage=0% numHashColls=0 maxCacheSize=0
- [f=0000000] [~CPathCache(24x28)] cacheHits=0 hitPercentage=0% numHashColls=0 maxCacheSize=0
- [f=0000000] [~CPathCache(96x112)] cacheHits=0 hitPercentage=0% numHashColls=0 maxCacheSize=0
- [f=0000000] [~CPathCache(96x112)] cacheHits=0 hitPercentage=0% numHashColls=0 maxCacheSize=0
- [f=0000000] Statistics for RectangleOptimizer: 0%
- [f=0000000] Statistics for RectangleOptimizer: 0%
- [f=0000000] [~CGame][11]
- [f=0000000] [~CGame][12]
- [f=0000000] [~CGame][13]
- [f=0000000] [~CGame][14]
- [f=0000000] [~CGame][15]
- [f=0000000] [~CGame][16]
- [f=0000000] [Sound] [~CSound][1] soundThread=02CB3860
- [f=0000000] [Sound] [~CSound][2]
- [f=0000000] [Sound] [~CSound][3]
- [f=0000000] [~CGame][17]
- [f=0000000] [SpringApp::ShutDown][3]
- [f=0000000] [SpringApp::ShutDown][4]
- [f=0000000] Statistics for UDP connection:
- Received: 2901 bytes in 51 packets (56.8824 bytes/package)
- Sent: 256 bytes in 24 packets (10.6667 bytes/package)
- Relative protocol overhead: 0 up, 0.105481 down
- 3 incoming chunks dropped, 0 outgoing chunks resent
- [f=0000000] Writing demo: demos/20140413_112952_Eye_Of_Horus_v2_96.sdf
- [f=0000000] [SpringApp::ShutDown][5]
- [f=0000000] [SpringApp::ShutDown][6]
- [f=0000000] [SpringApp::ShutDown][7]
- [f=0000000] [SpringApp::ShutDown][8]
- [f=0000000] [SpringApp::ShutDown][9]
- [SpringApp::ShutDown][10]
- [SpringApp::ShutDown][11]
- [WatchDog::Uninstall][1] hangDetectorThread=02CB3550
- [WatchDog::Uninstall][2]
- [WatchDog::Uninstall][3]
- [SpringApp::ShutDown][12]
- Error: [ErrorMessageBox][3]
- Error: [ErrorMessageBox][4]
- Fatal: Spring: Unhandled exception
- Spring has crashed:
- Access violation.
- A stacktrace has been written to:
- C:\Users\Joshua\Documents\My Games\Spring\infolog.txt
Advertisement
Add Comment
Please, Sign In to add comment