Exemplo n.º 1
0
        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> >();
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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;
        }
Exemplo n.º 4
0
        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 });
        }
Exemplo n.º 5
0
 protected MeshRenderer(Camera3D camera, GlobalLight3D light, uint bufferCapacity = 0, uint indexCapacity = 0) :
     base(camera, light)
 {
     buffer = new PrimitiveBuffer(BufferFrequencies.Static, BufferUsages.Draw, bufferCapacity, indexCapacity);
 }