コード例 #1
0
ファイル: SpriteContext.cs プロジェクト: petriw/Balder
 static SpriteContext()
 {
     XScalingInterpolator = new Interpolator();
     XScalingInterpolator.SetNumberOfInterpolationPoints(1);
     YScalingInterpolator = new Interpolator();
     YScalingInterpolator.SetNumberOfInterpolationPoints(1);
 }
コード例 #2
0
        static Triangle()
        {
            FlatInterpolator = new Interpolator();
            FlatInterpolator.SetNumberOfInterpolationPoints(4);

            GouraudInterpolator = new Interpolator();
            GouraudInterpolator.SetNumberOfInterpolationPoints(12);

            TextureInterpolator = new Interpolator();
            TextureInterpolator.SetNumberOfInterpolationPoints(8);
        }
コード例 #3
0
ファイル: Triangle.cs プロジェクト: Conn/Balder
        static Triangle()
        {
            FlatInterpolator = new Interpolator();
            FlatInterpolator.SetNumberOfInterpolationPoints(4);

            GouraudInterpolator = new Interpolator();
            GouraudInterpolator.SetNumberOfInterpolationPoints(12);

            TextureInterpolator = new Interpolator();
            TextureInterpolator.SetNumberOfInterpolationPoints(8);
        }
コード例 #4
0
ファイル: SimpleSpanRenderer.cs プロジェクト: tekbob27/Balder
		static SimpleSpanRenderer()
		{
			DepthInterpolator = new Interpolator();
			DepthInterpolator.SetNumberOfInterpolationPoints(1);
			DepthInterpolator.InitializePoints(DefaultSpanLength);

			GouraudInterpolator = new Interpolator();
			GouraudInterpolator.SetNumberOfInterpolationPoints(5);
			GouraudInterpolator.InitializePoints(DefaultSpanLength);

			TextureInterpolator = new Interpolator();
			TextureInterpolator.SetNumberOfInterpolationPoints(3);
			TextureInterpolator.InitializePoints(DefaultSpanLength);
		}
コード例 #5
0
        static SimpleSpanRenderer()
        {
            DepthInterpolator = new Interpolator();
            DepthInterpolator.SetNumberOfInterpolationPoints(1);
            DepthInterpolator.InitializePoints(DefaultSpanLength);

            GouraudInterpolator = new Interpolator();
            GouraudInterpolator.SetNumberOfInterpolationPoints(5);
            GouraudInterpolator.InitializePoints(DefaultSpanLength);

            TextureInterpolator = new Interpolator();
            TextureInterpolator.SetNumberOfInterpolationPoints(3);
            TextureInterpolator.InitializePoints(DefaultSpanLength);
        }
コード例 #6
0
        private static Span?GetSpan(int interpolationIndex, Interpolator interpolator, Vertex vertexA, bool useTexture)
        {
            var y      = ((int)vertexA.TranslatedScreenCoordinates.Y) + interpolationIndex;
            var xstart = interpolator.Points[0].InterpolatedValues[interpolationIndex];
            var xend   = interpolator.Points[1].InterpolatedValues[interpolationIndex];

            var ustart = 0f;
            var vstart = 0f;
            var uend   = 0f;
            var vend   = 0f;


            if (useTexture)
            {
                ustart = interpolator.Points[4].InterpolatedValues[interpolationIndex];
                uend   = interpolator.Points[5].InterpolatedValues[interpolationIndex];
                vstart = interpolator.Points[6].InterpolatedValues[interpolationIndex];
                vend   = interpolator.Points[7].InterpolatedValues[interpolationIndex];
            }

            var swap = false;

            if (xstart > xend)
            {
                var temp = xstart;
                xstart = xend;
                xend   = temp;
                swap   = true;

                temp   = ustart;
                ustart = uend;
                uend   = temp;

                temp   = vstart;
                vstart = vend;
                vend   = temp;
            }

            xend += 0.5f;
            var length = xend - xstart;

            var absLength = (int)System.Math.Round((double)length + 0.5);

            if (absLength >= 1)
            {
                var span = new Span
                {
                    Y      = y,
                    XStart = (int)xstart,
                    XEnd   = (int)xend,
                    UStart = ustart,
                    UEnd   = uend,
                    VStart = vstart,
                    VEnd   = vend,
                    Length = absLength,
                    Swap   = swap
                };
                return(span);
            }

            return(null);
        }
コード例 #7
0
ファイル: Triangle.cs プロジェクト: Conn/Balder
        private static Span? GetSpan(int interpolationIndex, Interpolator interpolator, Vertex vertexA, bool useTexture)
        {
            var y = ((int)vertexA.TranslatedScreenCoordinates.Y) + interpolationIndex;
            var xstart = interpolator.Points[0].InterpolatedValues[interpolationIndex];
            var xend = interpolator.Points[1].InterpolatedValues[interpolationIndex];

            var ustart = 0f;
            var vstart = 0f;
            var uend = 0f;
            var vend = 0f;

            if (useTexture)
            {
                ustart = interpolator.Points[4].InterpolatedValues[interpolationIndex];
                uend = interpolator.Points[5].InterpolatedValues[interpolationIndex];
                vstart = interpolator.Points[6].InterpolatedValues[interpolationIndex];
                vend = interpolator.Points[7].InterpolatedValues[interpolationIndex];
            }

            var swap = false;

            if (xstart > xend)
            {
                var temp = xstart;
                xstart = xend;
                xend = temp;
                swap = true;

                temp = ustart;
                ustart = uend;
                uend = temp;

                temp = vstart;
                vstart = vend;
                vend = temp;
            }

            xend += 0.5f;
            var length = xend - xstart;

            var absLength = (int)System.Math.Round((double)length + 0.5);

            if (absLength >= 1)
            {
                var span = new Span
                            {
                                Y = y,
                                XStart = (int)xstart,
                                XEnd = (int)xend,
                                UStart = ustart,
                                UEnd = uend,
                                VStart = vstart,
                                VEnd = vend,
                                Length = absLength,
                                Swap = swap
                            };
                return span;
            }

            return null;
        }