コード例 #1
0
        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;
        }
コード例 #2
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;
        }