Fractrace.PictureArt.FastPreviewRenderer.SetSmoothDeph C# (CSharp) Method

SetSmoothDeph() protected method

Tiefeninformationen werden weicher gemacht.
protected SetSmoothDeph ( double sdeph1, double sdeph2 ) : void
sdeph1 double
sdeph2 double
return void
        protected virtual void SetSmoothDeph(double[,] sdeph1, double[,] sdeph2)
        {
            for (int i = 0; i < pData.Width; i++)
            {
                for (int j = 0; j < pData.Height; j++)
                {
                    int neighborFound = 0;
                    double smoothDeph = 0;
                    sdeph2[i, j] = double.MinValue;
                    //int k=0;
                    for (int k = -1; k <= 1; k++)
                    {
                        //int l = -1;
                        for (int l = -1; l <= 1; l++)
                        {
                            int posX = i + k;
                            int posY = j + l;
                            if (posX >= 0 && posX < pData.Width && posY >= 0 && posY < pData.Height)
                            {
                                double newDeph = sdeph1[posX, posY];

                                // neu: es werden nur die Punkte benutzt, die echt größer sind
                                if (newDeph != double.MinValue)
                                {
                                    double valToAdded = sdeph1[i, j];
                                    if (newDeph > valToAdded)
                                        valToAdded = newDeph;
                                    smoothDeph += newDeph;
                                    neighborFound++;

                                }
                            }
                        }
                    }
                    if (neighborFound > 0 && sdeph1[i, j] != double.MinValue)
                    {
                        smoothDeph /= (double)neighborFound;
                        sdeph2[i, j] = 1.0 * (0.8 * sdeph1[i, j] + 0.2 * smoothDeph);
                    }
                    else
                    {
                        sdeph2[i, j] = double.MinValue;
                    }
                }
            }
        }