示例#1
0
        public SkyboxRenderer()
        {
            if (_cube == null)
            {
                var size = 500f;

                _cube = new ModelBaked(ModelManager.LoadModel3ToVao(new[] {
                    -size, size, -size,
                    -size, -size, -size,
                    size, -size, -size,
                    size, -size, -size,
                    size, size, -size,
                    -size, size, -size,

                    -size, -size, size,
                    -size, -size, -size,
                    -size, size, -size,
                    -size, size, -size,
                    -size, size, size,
                    -size, -size, size,

                    size, -size, -size,
                    size, -size, size,
                    size, size, size,
                    size, size, size,
                    size, size, -size,
                    size, -size, -size,

                    -size, -size, size,
                    -size, size, size,
                    size, size, size,
                    size, size, size,
                    size, -size, size,
                    -size, -size, size,

                    -size, size, -size,
                    size, size, -size,
                    size, size, size,
                    size, size, size,
                    -size, size, size,
                    -size, size, -size,

                    -size, -size, -size,
                    -size, -size, size,
                    size, -size, -size,
                    size, -size, -size,
                    -size, -size, size,
                    size, -size, size
                }), new Shader("skybox"));

                _texture = TextureManager.LoadCubeMap();
            }
        }
示例#2
0
        public SkyboxRenderer()
        {
            if (cube == null)
            {
                var SIZE = 500f;

                cube = new ModelBaked <object>(ModelManager.LoadModel3ToVao(new[] {
                    -SIZE, SIZE, -SIZE,
                    -SIZE, -SIZE, -SIZE,
                    SIZE, -SIZE, -SIZE,
                    SIZE, -SIZE, -SIZE,
                    SIZE, SIZE, -SIZE,
                    -SIZE, SIZE, -SIZE,

                    -SIZE, -SIZE, SIZE,
                    -SIZE, -SIZE, -SIZE,
                    -SIZE, SIZE, -SIZE,
                    -SIZE, SIZE, -SIZE,
                    -SIZE, SIZE, SIZE,
                    -SIZE, -SIZE, SIZE,

                    SIZE, -SIZE, -SIZE,
                    SIZE, -SIZE, SIZE,
                    SIZE, SIZE, SIZE,
                    SIZE, SIZE, SIZE,
                    SIZE, SIZE, -SIZE,
                    SIZE, -SIZE, -SIZE,

                    -SIZE, -SIZE, SIZE,
                    -SIZE, SIZE, SIZE,
                    SIZE, SIZE, SIZE,
                    SIZE, SIZE, SIZE,
                    SIZE, -SIZE, SIZE,
                    -SIZE, -SIZE, SIZE,

                    -SIZE, SIZE, -SIZE,
                    SIZE, SIZE, -SIZE,
                    SIZE, SIZE, SIZE,
                    SIZE, SIZE, SIZE,
                    -SIZE, SIZE, SIZE,
                    -SIZE, SIZE, -SIZE,

                    -SIZE, -SIZE, -SIZE,
                    -SIZE, -SIZE, SIZE,
                    SIZE, -SIZE, -SIZE,
                    SIZE, -SIZE, -SIZE,
                    -SIZE, -SIZE, SIZE,
                    SIZE, -SIZE, SIZE
                }), new Shader <object>("skybox"));

                texture = TextureManager.LoadCubeMap();
            }
        }
示例#3
0
        public override void Render(float partialTicks)
        {
            Vector3 partialPos   = Vector3.Lerp(LastPos, Pos, partialTicks);
            float   partialScale = LastParticleScale + (ParticleScale - LastParticleScale) * partialTicks;

            partialPos.Y += partialScale / 2;

            ModelBaked model = ParticleRenderer.ParticleModel;

            model.Shader.SetMatrix4("transformationMatrix", MatrixHelper.CreateTransformationMatrix(partialPos, Vector3.Zero, partialScale));

            GL.BindTexture(TextureTarget.Texture2D, TextureId);
            model.RawModel.Render();
        }
示例#4
0
        public override void Render(float partialTicks)
        {
            Vector3 partialPos   = Vector3.Lerp(LastPos, Pos, partialTicks);
            float   partialScale = lastParticleScale + (particleScale - lastParticleScale) * partialTicks;

            partialPos.Y += partialScale / 2;

            ModelBaked <Particle> model = ParticleRenderer.ParticleModel;

            model.Shader.UpdateGlobalUniforms();
            model.Shader.UpdateModelUniforms();
            model.Shader.UpdateInstanceUniforms(MatrixHelper.CreateTransformationMatrix(partialPos, Vector3.Zero, partialScale), this);

            GL.BindTexture(TextureTarget.Texture2D, textureID);
            model.RawModel.Render(PrimitiveType.Quads);
        }
示例#5
0
        public override void Render(float partialTicks)
        {
            Vector3 partialPos = Vector3.Lerp(LastPos, Pos, partialTicks);
            Vector3 partialRot = Vector3.Lerp(_lastRot, _rot, partialTicks);

            float partialScale = LastParticleScale + (ParticleScale - LastParticleScale) * partialTicks;
            float partialAlpha = LastParticleAlpha + (ParticleAlpha - LastParticleAlpha) * partialTicks;

            partialPos.Y += partialScale / 2.0f;

            ModelBaked model = ParticleRenderer.ParticleModel;

            model.Shader.SetMatrix4("transformationMatrix", MatrixHelper.CreateTransformationMatrix(partialPos, partialRot, partialScale));
            model.Shader.SetVector2("UVmin", UVmin);
            model.Shader.SetVector2("UVmax", UVmax);
            model.Shader.SetFloat("alpha", partialAlpha);

            GL.BindTexture(TextureTarget.Texture2D, TextureId);
            model.RawModel.Render();
        }
示例#6
0
 static ParticleRenderer()
 {
     ParticleModel = new ModelParticle(new Shader("particle", "UVmin", "UVmax", "alpha"));
 }
 static ParticleRenderer()
 {
     ParticleModel = new ModelParticle(new ShaderParticle());
 }