protected AbstractRenderer3D(Camera3D camera, GlobalLight3D light) { Debug.Assert(camera != null, "3D renderers must be created with a non-null camera."); Debug.Assert(light != null, "3D renderers must be created with a non-null global light class."); Camera = camera; Light = light; keys = new List <K>(); map = new Dictionary <K, List <V> >(); }
public ModelRenderer(Camera3D camera, GlobalLight3D light, uint bufferCapacity = 0, uint indexCapacity = 0) : base(camera, light, bufferCapacity, indexCapacity) { shader = new Shader(); shader.Attach(ShaderTypes.Vertex, "ModelShadow.vert"); shader.Attach(ShaderTypes.Fragment, "ModelShadow.frag"); shader.AddAttribute <float>(3, GL_FLOAT); shader.AddAttribute <float>(2, GL_FLOAT); shader.AddAttribute <float>(1, GL_FLOAT); shader.AddAttribute <float>(3, GL_FLOAT); Bind(bufferId, indexId); }
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; }
public SkeletonRenderer(Camera3D camera, GlobalLight3D light, uint bufferCapacity, uint indexCapacity) : base(camera, light, bufferCapacity, indexCapacity) { shader = new Shader(); shader.Attach(ShaderTypes.Vertex, "Skeletal.vert"); shader.Attach(ShaderTypes.Fragment, "ModelShadow.frag"); shader.AddAttribute <float>(3, GL_FLOAT); shader.AddAttribute <float>(2, GL_FLOAT); shader.AddAttribute <float>(1, GL_FLOAT); shader.AddAttribute <float>(3, GL_FLOAT); shader.AddAttribute <float>(2, GL_FLOAT); shader.AddAttribute <ushort>(2, GL_UNSIGNED_SHORT); Bind(bufferId, indexId); shadowShader = new Shader(); shadowShader.Attach(ShaderTypes.Vertex, "ShadowMapSkeletal.vert"); shadowShader.Attach(ShaderTypes.Fragment, "ShadowMap.frag"); shadowShader.Initialize(); shadowShader.Use(); shadowShader.SetUniform("images", new[] { 0, 1, 2, 3, 4, 5 }); }
protected MeshRenderer(Camera3D camera, GlobalLight3D light, uint bufferCapacity = 0, uint indexCapacity = 0) : base(camera, light) { buffer = new PrimitiveBuffer(BufferFrequencies.Static, BufferUsages.Draw, bufferCapacity, indexCapacity); }