Beispiel #1
0
        /// <summary>
        /// Renderizza tutte le entità e i terreni aggiunti
        /// </summary>
        /// <param name="light">La luce da utilizzare</param>
        /// <param name="camera">La camera dalla quale si vede la scena</param>
        public void Render(List <Light> lights, Camera camera, Vector4 clipPlane)
        {
            Prepare();
            shader.Start();
            shader.LoadClipPlane(clipPlane);
            shader.LoadSkyColor(RED, GREEN, BLUE);
            shader.LoadLights(lights);
            shader.LoadViewMatrix(camera);

            renderer.Render(entities);

            shader.Stop();

            normalMappingRenderer.Render(normalMapEntities, clipPlane, lights, camera);

            terrainShader.Start();
            terrainShader.LoadClipPlane(clipPlane);
            terrainShader.LoadSkyColor(RED, GREEN, BLUE);
            terrainShader.LoadLights(lights);
            terrainShader.LoadViewMatrix(camera);

            terrainRenderer.Render(terrains);

            terrainShader.Stop();

            skyboxRenderer.Render(camera);

            entities.Clear();
            terrains.Clear();
            normalMapEntities.Clear();
        }
Beispiel #2
0
 public TerrainRenderer(TerrainShader shader, Matrix4 projectionMatrix)
 {
     this.shader = shader;
     shader.Start();
     shader.LoadProjectionMatrix(projectionMatrix);
     shader.ConnectTextureUnits();
     shader.Stop();
 }