public MasterRenderer3D() { // Note that shader attributes aren't set here since custom VAOs are created per renderer. shadowMapShader = new Shader(); shadowMapShader.Attach(ShaderTypes.Vertex, "ShadowMap.vert"); shadowMapShader.Attach(ShaderTypes.Fragment, "ShadowMap.frag"); shadowMapShader.Initialize(); shadowMapShader.Use(); shadowMapShader.SetUniform("image", 0); // These default values are arbitrary, just to make sure something shows up. Light = new GlobalLight(); Light.Direction = vec3.UnitX; Light.Color = Color.White; Light.AmbientIntensity = 0.1f; // TODO: Consider making shadow map size reloadable. var accessor = Properties.Access(); var size = accessor.GetInt("shadow.map.size"); shadowMapTarget = new RenderTarget(size, size, RenderTargetFlags.Depth); modelRenderer = new ModelRenderer(Light); spriteBatch3D = new SpriteBatch3D(Light); skeletonRenderer = new SkeletonRenderer(Light); IsEnabled = true; }
public MasterRenderer3D(Camera3D camera) { this.camera = camera; // Note that shader attributes aren't set here since custom VAOs are created per renderer. shadowMapShader = new Shader(); shadowMapShader.Attach(ShaderTypes.Vertex, "ShadowMap.vert"); shadowMapShader.Attach(ShaderTypes.Fragment, "ShadowMap.frag"); shadowMapShader.Initialize(); shadowMapShader.Use(); shadowMapShader.SetUniform("images", Enumerable.Repeat(0, Constants.TextureLimit).ToArray()); Light = new GlobalLight3D(); shadowMapTarget = new RenderTarget(2048, 2048, RenderTargetFlags.Depth); modelRenderer = new ModelRenderer(camera, Light); spriteBatch3D = new SpriteBatch3D(camera, Light); skeletonRenderer = new SkeletonRenderer(camera, Light, 100000, 10000); IsDrawEnabled = true; }