AcTools.Render.Kn5SpecificForward.ForwardKn5ObjectRenderer.InitializeInner C# (CSharp) Method

InitializeInner() protected method

protected InitializeInner ( ) : void
return void
        protected override void InitializeInner() {
            base.InitializeInner();

            MaterialsProvider = new MaterialsProviderSimple();
            TexturesProvider = new TexturesProvider();
            DeviceContextHolder.Set(MaterialsProvider);
            DeviceContextHolder.Set(TexturesProvider);
            
            CarHelper.SetKn5(DeviceContextHolder);
            CarHelper.SkinTextureUpdated += (sender, args) => IsDirty = true;

            var node = Kn5Converter.Convert(Kn5.RootNode, DeviceContextHolder);
            Scene.Add(node);

            CarNode = node as Kn5RenderableList;
            if (CarNode != null) {
                Scene.InsertRange(0, CarHelper.LoadAmbientShadows(CarNode, 0f));
                CarHelper.AdjustPosition(CarNode);
                CarHelper.LoadMirrors(CarNode, DeviceContextHolder);

                _carLights = CarHelper.LoadLights(CarNode).ToList();
            }

            Scene.UpdateBoundingBox();
            TrianglesCount = node.TrianglesCount;
            ObjectsCount = node.ObjectsCount;

            Camera = CreateCamera(node);
            _resetCamera = (CameraOrbit)Camera.Clone();

            if (_selectSkin != null) {
                SelectSkin(_selectSkin);
                _selectSkin = null;
            }
        }