void LoadMeshes() { LoadDefaultTextures(); try { string pcube = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Geometry", "cube.obj"); RSMI.Importer importer = new RSMI.Importer(); List <RSMI.Containers.Mesh> meshes = importer.Parse(pcube); if (mat == null) { mat = new Material.PBRMaterial { Metallic = defaultBlack, Albedo = defaultDarkGray, Occlusion = defaultWhite, Roughness = defaultBlack, Height = defaultWhite, Thickness = defaultBlack, Emission = defaultBlack }; } if (tessMat == null) { tessMat = new Material.PBRTess { Metallic = defaultBlack, Albedo = defaultDarkGray, Occlusion = defaultWhite, Roughness = defaultBlack, Height = defaultBlack, Thickness = defaultBlack, Emission = defaultBlack }; } if (meshes.Count > 0) { cubeMesh = meshes[0]; cube = new MeshRenderer(meshes[0]); cube.Mat = mat; if (UIPreviewPane.Instance != null) { UIPreviewPane.Instance.SetMesh(cube); } } string psphere = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Geometry", "sphere.obj"); importer = new RSMI.Importer(); meshes = importer.Parse(psphere); if (meshes.Count > 0) { sphereMesh = meshes[0]; sphere = new MeshRenderer(meshes[0]); sphere.Mat = mat; lightMesh = new MeshRenderer(meshes[0]); lightMesh.Mat = lightMat; } string prounded = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Geometry", "cube-rounded.obj"); importer = new RSMI.Importer(); meshes = importer.Parse(prounded); if (meshes.Count > 0) { cubeRoundedMesh = meshes[0]; cubeRounded = new MeshRenderer(meshes[0]); cubeRounded.Mat = mat; } //NOTE TO SELF: Recreate the cylnder 3D object with better UV string pcyl = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Geometry", "cylinder.obj"); importer = new RSMI.Importer(); meshes = importer.Parse(pcyl); if (meshes.Count > 0) { cylinderMesh = meshes[0]; cylinder = new MeshRenderer(meshes[0]); cylinder.Mat = mat; } string pplane = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Geometry", "plane.obj"); importer = new RSMI.Importer(); meshes = importer.Parse(pplane); if (meshes.Count > 0) { planeMesh = meshes[0]; plane = new MeshRenderer(meshes[0]); plane.Mat = mat; } } catch (Exception e) { Log.Error(e); } }
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; } }