public void Render(SceneEntity entity) { entity.DrawAll(this); foreach (var light in lights) { MainLight = light; entity.DrawAll(light.Shader, this); } }
internal void AddLight(Light light) { lights.Add(light); }
public void AddLight(Light light) { renderer.AddLight(light); }
public void SetUniforms(Camera camera, Light light, Matrix4 model, BaseMaterial material) { //Matrix uniforms SetUniform("mvpMat", model * camera.ViewMatrix * camera.ProjectionMatrix); SetUniform("mvMat", model * camera.ViewMatrix); SetUniform("normalMat", Matrix4.Transpose(Matrix4.Invert(model))); //Light uniforms if (light != null) { if (light is PointLight) { SetUniform("light.position", ((PointLight)light).Position); } SetUniform("light.diffuse", light.Diffuse); SetUniform("light.ambient", light.Ambient); SetUniform("light.specular", light.Specular); } //Material uniforms SetUniform("material.diffuse", material.Diffuse); SetUniform("material.ambient", material.Ambient); SetUniform("material.specular", material.Specular); SetUniform("material.emissive", material.Emissive); }