private void OnCreated_GlControl(object sender, GlControlEventArgs e) { GlControl glControl = (GlControl)sender; this.displayManager.CreateDisplay(glControl); bool result = WrapSOIL.Initialize(); if (result == false) { MessageBox.Show("SOIL: Failed initialize : " + WrapSOIL.GetSoilLastError()); return; } this.loader = new Loader(); //Camera this.camera = new Camera(new Vertex3f(0, 10, 0), 20f); //Light - Sun this.lgihtList = new List <Light>(); this.sun = new DirectionalLight(new Vertex3f(-0.5f, -1.5f, 0.5f), new Vertex3f(150, 250, -150), new Vertex3f(0.4f, 0.4f, 0.4f), new Vertex3f(1, 0, 0)); this.lgihtList.Add(sun); //Renderer this.renderer = new MasterRenderer(this.camera, this.loader, this.sun, glControl.ClientSize.Width, glControl.ClientSize.Height); this.guiRenderer = new GUIRenderer(this.loader); this.inputManager.OnEventMouseWheel += this.camera.OnEventWheel; //Water this.waterTileList = new List <WaterTile>(); this.waterTileList.Add(new WaterTile(75, -75, WATER_HEIGHT)); //Water this.waterFrameBuffers = new WaterFrameBuffers(); this.waterShader = new WaterShader(); this.waterRenderer = new WaterRenderer(loader, waterShader, this.renderer.ProjectionMatrix, this.waterFrameBuffers); //Load Resources this.entities = new List <Entity>(); this.terrain = LoadTerrain(this.loader); LoadEntities(this.terrain, this.entities, this.loader); LoadPlayer(this.loader, this.entities); //Light - Point this.lgihtList.Add(new Light(GetHeightPosition(this.terrain, 185, 12.7f, -293), new Vertex3f(2, 0, 0), new Vertex3f(1, 0.01f, 0.002f))); this.lgihtList.Add(new Light(GetHeightPosition(this.terrain, 370, 12.7f, -300), new Vertex3f(0, 2, 2), new Vertex3f(1, 0.01f, 0.002f))); this.lgihtList.Add(new Light(GetHeightPosition(this.terrain, 293, 12.7f, -305), new Vertex3f(2, 2, 0), new Vertex3f(1, 0.01f, 0.002f))); //LoadGUI(this.loader); //LoadGUI_Texture(this.loader, this.waterFrameBuffers.RefractionTexture); LoadGUI_Texture(this.loader, renderer.DepthMap); //MousePicker this.mousePicker = new MousePicker(this.camera, this.renderer.ProjectionMatrix, this.terrain); }
public WaterRenderer(Loader loader, WaterShader shader, Matrix4x4f projectionMatrix, WaterFrameBuffers fbos) { this.shader = shader; this.fbos = fbos; this.dudvTexture = loader.LoadRepeatTexture(DUDV_MAP_NAME); this.normalMap = loader.LoadRepeatTexture(NORMAL_MAP_NAME); this.shader.Start(); this.shader.ConnectTextureUnits(); this.shader.LoadProjectionMatrix(projectionMatrix); this.shader.Stop(); SetUpVAO(loader); }