示例#1
0
        private void Glview_Load(object sender, EventArgs e)
        {
            ViewContext.VerifyContext(glview);
            ViewContext.Context.MakeCurrent(glview.WindowInfo);

            Log.Info("GL Version: " + OpenTK.Graphics.OpenGL.GL.GetString(OpenTK.Graphics.OpenGL.StringName.Version));
            IGL.Primary.PatchParameter((int)PatchParameterInt.PatchVertices, 3);
            IGL.Primary.Enable((int)EnableCap.DepthTest);
            IGL.Primary.Enable((int)EnableCap.Blend);
            IGL.Primary.DepthFunc((int)DepthFunction.Lequal);
            IGL.Primary.BlendFunc((int)BlendingFactor.SrcAlpha, (int)BlendingFactor.OneMinusSrcAlpha);
            IGL.Primary.Enable((int)EnableCap.CullFace);
            IGL.Primary.CullFace((int)CullFaceMode.Back);

            renderStack = new RenderStack();
            basePass    = new BasePass(null, glview.Width, glview.Height);
            bloomPass   = new BloomPass(glview.Width, glview.Height);
            renderStack.Add(basePass);
            renderStack.Add(bloomPass);

            LoadMeshes();

            Task.Run(async() =>
            {
                //initial hdri load
                await HdriManager.Load();
            });
        }
示例#2
0
 public UI3DPreview()
 {
     HdriManager.Scan();
     HdriManager.OnHdriLoaded += HdriManager_OnHdriLoaded;
     Camera.OnCameraChanged   += Camera_OnCameraChanged;
     InitializeComponent();
     Instance = this;
     InitGL();
     Console.WriteLine("3d view inited");
 }
示例#3
0
        private void HiddenForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (graph != null)
            {
                graph.Dispose();
            }

            HdriManager.Release();
            Materia.Material.PBRMaterial.ReleaseBRDF();
            Materia.Material.Material.ReleaseAll();
            Materia.Imaging.GLProcessing.ImageProcessor.ReleaseAll();
        }
示例#4
0
        public void Release()
        {
            if (defaultBlack != null)
            {
                defaultBlack.Release();
                defaultBlack = null;
            }

            if (defaultWhite != null)
            {
                defaultWhite.Release();
                defaultWhite = null;
            }

            if (defaultGray != null)
            {
                defaultGray.Release();
                defaultGray = null;
            }

            if (defaultDarkGray != null)
            {
                defaultDarkGray.Release();
                defaultDarkGray = null;
            }

            HdriManager.Release();

            if (mat != null)
            {
                mat.Release();
                mat = null;
            }

            if (sphere != null)
            {
                sphere.Release();
                sphere = null;
            }

            if (cube != null)
            {
                cube.Release();
                cube = null;
            }

            if (glview != null)
            {
                FHost.Child = null;
                glview.Dispose();
                glview = null;
            }
        }
示例#5
0
        public UI3DPreview()
        {
            HdriManager.Scan();
            HdriManager.OnHdriLoaded += HdriManager_OnHdriLoaded;
            InitializeComponent();
            previewRenderMode = PreviewRenderMode.FullShading;
            Instance          = this;

            materialSettings = new MaterialSettings();
            materialSettings.Load();
            materialSettings.OnMaterialUpdated += MaterialSettings_OnMaterialUpdated;

            lightSettings = new LightingSettings();
            lightSettings.OnLightingUpdated += LightSettings_OnLightingUpdated;

            InitGL();
            Log.Info("3d view inited");
        }
示例#6
0
        private void Glview_Load(object sender, EventArgs e)
        {
            ViewContext.VerifyContext(glview);
            ViewContext.Context.MakeCurrent(glview.WindowInfo);

            GL.Enable(EnableCap.DepthTest);
            GL.Enable(EnableCap.Blend);
            GL.DepthFunc(DepthFunction.Lequal);
            GL.BlendFunc(BlendingFactor.SrcAlpha, BlendingFactor.OneMinusSrcAlpha);
            GL.Enable(EnableCap.CullFace);
            GL.CullFace(CullFaceMode.Back);

            LoadMeshes();

            lightColor    = new TK.Vector3(1, 1, 1);
            lightPosition = new TK.Vector3(0, 4, 4);

            Task.Run(async() =>
            {
                //initial hdri load
                await HdriManager.Load();
            });
        }
示例#7
0
        public void Release()
        {
            if (renderStack != null)
            {
                renderStack.Release();
                renderStack = null;
            }

            if (materialSettings != null)
            {
                materialSettings.Save();
            }

            if (lightMat != null)
            {
                lightMat.Release();
                lightMat = null;
            }

            if (defaultBlack != null)
            {
                defaultBlack.Release();
                defaultBlack = null;
            }

            if (defaultWhite != null)
            {
                defaultWhite.Release();
                defaultWhite = null;
            }

            if (defaultGray != null)
            {
                defaultGray.Release();
                defaultGray = null;
            }

            if (defaultDarkGray != null)
            {
                defaultDarkGray.Release();
                defaultDarkGray = null;
            }

            HdriManager.Release();

            if (tessMat != null)
            {
                tessMat.Release();
                tessMat = null;
            }

            if (mat != null)
            {
                mat.Release();
                mat = null;
            }

            if (sphere != null)
            {
                sphere.Release();
                sphere = null;
            }

            if (cube != null)
            {
                cube.Release();
                cube = null;
            }

            if (cylinder != null)
            {
                cylinder.Release();
                cylinder = null;
            }

            if (cubeRounded != null)
            {
                cubeRounded.Release();
                cubeRounded = null;
            }

            if (plane != null)
            {
                plane.Release();
                plane = null;
            }

            if (custom != null)
            {
                custom.Release();
                custom = null;
            }

            if (lightMesh != null)
            {
                lightMesh.Release();
                lightMesh = null;
            }

            if (glview != null)
            {
                FHost.Child = null;
                glview.Dispose();
                glview = null;
            }
        }