示例#1
0
 public SurfacePreprocessor(SurfaceRenderer _renderer)
 {
     renderer    = _renderer;
     cacheWidth  = SurfaceRenderer.CACHE_WIDTH;
     cacheHeight = SurfaceRenderer.CACHE_HEIGHT;
     ColorCache  = new int?[cacheWidth, cacheHeight];
     VectorCache = new Vector[cacheWidth, cacheHeight];
 }
示例#2
0
        public Renderer(List <Polygon> _polygons)
        {
            polygons     = _polygons;
            directBitmap = new DirectBitmap(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);

            polygonDrawer   = new PolygonDrawer(directBitmap, polygons);
            surfaceRenderer = new SurfaceRenderer(DEFAULT_BACKGROUND, DEFAULT_LIGHT, DEFAULT_FUNCTION, DEFAULT_BUMPMAP);
            polygonFiller   = new PolygonFiller(directBitmap, surfaceRenderer, polygons);
        }
示例#3
0
 private void PreprocessBackgroundWithLightColor()
 {
     Parallel.For(0, cacheWidth, x =>
     {
         for (int y = 0; y < cacheHeight; ++y)
         {
             ColorCache[x, y] = SurfaceRenderer.RGB2Int(
                 (int)(renderer.Background.R(x, y) * renderer.Light.R * 255),
                 (int)(renderer.Background.G(x, y) * renderer.Light.G * 255),
                 (int)(renderer.Background.B(x, y) * renderer.Light.B * 255)
                 );
         }
     });
 }
示例#4
0
 public PolygonFiller(DirectBitmap _directBitmap, SurfaceRenderer _surfaceRenderer, List <Polygon> _polygons)
 {
     directBitmap    = _directBitmap;
     surfaceRenderer = _surfaceRenderer;
     polygons        = _polygons;
 }