Changeset 513
- Timestamp:
- 04/13/08 08:40:40 (9 months ago)
- Files:
-
- trunk/run/config.ini (modified) (1 diff)
- trunk/run/data/shaders/model.pixel.glsl (modified) (1 diff)
- trunk/run/data/shaders/model.vertex.glsl (modified) (1 diff)
- trunk/src/defend/Main.d (modified) (1 diff)
- trunk/src/defend/game/Game.d (modified) (8 diffs)
- trunk/src/defend/game/net/Server.d (modified) (1 diff)
- trunk/src/defend/objects/SceneNode.d (modified) (5 diffs)
- trunk/src/defend/terrain/Terrain.d (modified) (4 diffs)
- trunk/src/gen/scene/Graph.d (modified) (1 diff)
- trunk/src/windefend.cbp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/run/config.ini
r440 r513 16 16 17 17 # port for multiplayer 18 port= 6434418 port=31337 19 19 20 20 # number of threads for the thread pool (which isn't used yet) trunk/run/data/shaders/model.pixel.glsl
r511 r513 1 uniform sampler2D texture; 1 uniform sampler2D diffuseTexture; 2 uniform sampler2D lightTexture; 3 2 4 uniform vec3 color; 3 5 4 6 void main() 5 7 { 6 vec4 tex = texture2D(texture, vec2(gl_TexCoord[0])); 7 gl_FragColor = vec4(tex.rgb * (tex.a) + color * (1 - tex.a), 1.0) * gl_Color; 8 vec4 tex = texture2D(diffuseTexture, vec2(gl_TexCoord[0])); 9 vec4 light = texture2D(lightTexture, vec2(gl_TexCoord[1])); 10 11 gl_FragColor = vec4(tex.rgb * tex.a + color * (1 - tex.a), 1.0) * gl_Color * (light * 2); 8 12 } trunk/run/data/shaders/model.vertex.glsl
r511 r513 1 1 #define LIGHT_POSITION vec4(10.0, 10.0, 0.0, 1.0) 2 #define LIGHT_AMBIENT vec4( 0.9, 0.9, 0.9, 1.0)2 #define LIGHT_AMBIENT vec4(2.0, 2.0, 2.0, 1.0) 3 3 #define LIGHT_DIFFUSE vec4(1.0, 1.0, 1.0, 1.0) 4 5 uniform vec3 mapPos; 6 uniform vec3 mapSize; 4 7 5 8 void main(void) 6 9 { 7 gl_Position = ftransform(); 10 vec4 worldPos = gl_ModelViewMatrix * gl_Vertex; 11 gl_Position = gl_ProjectionMatrix * worldPos; 12 //gl_Position = ftransform(); 13 8 14 gl_TexCoord[0] = gl_MultiTexCoord0; 15 gl_TexCoord[1] = vec4(mapPos.x / mapSize.x, -mapPos.z / mapSize.y, 0.0, 0.0); 9 16 10 17 // Lighting trunk/src/defend/Main.d
r512 r513 254 254 } 255 255 256 renderer.setClearColor(vec3(0));257 258 256 scope(exit) 259 257 delete renderer; trunk/src/defend/game/Game.d
r512 r513 38 38 import defend.Map; 39 39 import defend.MapGenerator; 40 import defend.MiniMap; 40 41 import defend.Loop; 41 42 import defend.com.Gateway; … … 91 92 StaticCamera miniScreenCamera; 92 93 Sprite miniScreenSprite; 94 95 MiniMap miniMap; 93 96 94 97 // Demo recorder … … 207 210 sceneGraph.render(); 208 211 }); 209 210 // tmp211 {212 glDisable(GL_LIGHTING);213 }214 215 212 renderer.setMatrix(mainCamera.modelview, MatrixType.Modelview); 216 213 renderer.setMatrix(mainCamera.projection, MatrixType.Projection); … … 227 224 renderer.identity(); 228 225 hud.render(); 226 miniMap.render(vec2i(renderer.width - 150, renderer.height - HUD_HEIGHT + 10)); 229 227 renderer.setRenderState(RenderState.DepthTest, true); 230 228 }); … … 268 266 mainCamera = new MainCamera; 269 267 mainCamera.projection = mat4.projection(aspect, fov, 1, 100); 270 sceneGraph.addCamera("main", mainCamera, vec3(0 ));268 sceneGraph.addCamera("main", mainCamera, vec3(0, 0, 0.2)); 271 269 272 270 logger.info("initializing communication"); … … 289 287 particles = new ParticleSystemManager; 290 288 particles.addSystem("smoke", new SmokeParticleSystem("data/textures/smoke.bmp")); 291 292 /+// Create some houses to start with <- fu293 if(gateway.id == 0)294 gateway.createObject("house", ObjectPos(32, 30));295 else if(gateway.id == 1)296 gateway.createObject("house", ObjectPos(37, 30));+/297 289 298 290 logMemoryUsage(); … … 301 293 GC.collect(); 302 294 GC.disable(); 295 296 // Mini map 297 miniMap = new MiniMap; 303 298 304 299 // Initialize input … … 363 358 delete hud; 364 359 delete miniScreenSprite; 360 delete miniMap; 365 361 366 362 keyboard.remove(); trunk/src/defend/game/net/Server.d
r512 r513 638 638 phaseMutex = new Mutex(); 639 639 640 listener = new ServerSocket(new InternetAddress("0.0.0.0", config.multiplayer.port)); 640 logger.info("creating server socket"); 641 listener = new ServerSocket(new InternetAddress("0.0.0.0", config.multiplayer.port) /*, 32, true*/); 642 logger.info("server socket created"); 641 643 642 644 logger.info("created on port {}", config.multiplayer.port); trunk/src/defend/objects/SceneNode.d
r511 r513 1 1 module defend.objects.SceneNode; 2 2 3 import gen.util.Memory; 3 4 import gen.math.Vector; 4 5 import gen.math.BoundingBox; … … 11 12 import gen.rend.Texture; 12 13 import gen.rend.Renderer; 14 15 import defend.terrain.Terrain; 13 16 14 17 class GameObjectModel : SceneNode … … 32 35 33 36 public: 37 mixin MAllocator; 38 34 39 this(SceneNode parent, char[] file, vec3 color) 35 40 { … … 74 79 75 80 public: 81 mixin MAllocator; 82 76 83 this(GameObjectModel parent, Mesh mesh) 77 84 { … … 101 108 renderer.setShader(shader); 102 109 shader.setUniform("color", parent.color); 110 shader.setUniform("mapPos", absolutePosition); 111 shader.setUniform("mapSize", vec3(terrain.dimension.x, terrain.dimension.y, 0)); 112 shader.setUniform("diffuseTexture", 0); 113 shader.setUniform("lightTexture", 1); 114 renderer.setTexture(1, terrain.lightmapTexture); 103 115 104 116 mesh.render(); 105 117 106 118 renderer.popMatrix(); 119 120 renderer.setTexture(1, null); 107 121 } 108 122 } trunk/src/defend/terrain/Terrain.d
r511 r513 49 49 void heightmap(TerrainHeightmap h) { _heightmap = h; } 50 50 51 Texture lightmapTexture;52 51 Texture detailTexture; 53 52 … … 172 171 173 172 vec3 normal = getNormalForImage(x, z, size); 174 vec3 col = vec3(.1 , 0.15, .3) * normal.y; // ambient173 vec3 col = vec3(.15, 0.20, .35) * normal.y; // ambient 175 174 176 175 if(!rayIntersection(ray)) … … 326 325 mixin MAllocator; 327 326 327 Texture lightmapTexture; // tmp public 328 328 TerrainHeightmap heightmap() { return _heightmap; } 329 329 … … 446 446 447 447 void renderOrthogonal() // for mini map 448 { 449 renderer.setRenderState(RenderState.Blending, true); 450 renderer.setRenderState(RenderState.ZWrite, true); 451 //renderer.setRenderState(RenderState.BackfaceCulling, true); 452 renderer.setBlendFunc(BlendFunc.SrcAlpha, BlendFunc.OneMinusScrAlpha); 453 454 renderer.setTextureMode(1, TextureMode.Replace); 455 renderer.setTexture(2, lightmapTexture); 456 457 /*for(uint i = 0; i < alphaMaps.length; i++) 458 { 459 renderer.setTexture(0, alphaMaps[i]); 460 renderer.setTexture(1, diffuseMaps[i]); 461 462 foreach(patch; patches) 463 patch.render(); 464 }*/ 448 { 449 renderer.setShader(shader); 450 451 renderer.setTexture(0, alphaMap); 452 renderer.setTexture(1, diffuseMaps[0]); 453 renderer.setTexture(2, diffuseMaps[1]); 454 renderer.setTexture(3, diffuseMaps[2]); 455 renderer.setTexture(4, lightmapTexture); 456 457 shader.setUniform("alpha", 0); 458 shader.setUniform("texture1", 1); 459 shader.setUniform("texture2", 2); 460 shader.setUniform("texture3", 3); 461 shader.setUniform("lightmap", 4); 462 463 foreach(patch; patches) 464 patch.render(); 465 466 renderer.setShader(null); 465 467 466 468 renderer.setTexture(3, null); trunk/src/gen/scene/Graph.d
r511 r513 127 127 128 128 foreach(ref pass; data.renderPasses) 129 pass.create(1 024);129 pass.create(16); 130 130 131 131 cameras[name] = data; trunk/src/windefend.cbp
r507 r513 105 105 <Unit filename="defend\Map.d" /> 106 106 <Unit filename="defend\MapGenerator.d" /> 107 <Unit filename="defend\MiniMap.d" /> 107 108 <Unit filename="defend\Simulation.d" /> 108 109 <Unit filename="defend\com\Gateway.d" /> … … 126 127 <Unit filename="defend\objects\Effector.d" /> 127 128 <Unit filename="defend\objects\Import.d" /> 129 <Unit filename="defend\objects\SceneNode.d" /> 128 130 <Unit filename="defend\objects\civs\Neutral.d" /> 129 131 <Unit filename="defend\objects\civs\Test.d" />
