System Downloads (Releases) (for Mac) (for Windows)
1. Volume Render (Load raw datasets and raymarching technique)
2. Volume Pre-Computation (Material classfication and non-connected segmentation)
3. Volume Exploration (Obstruction selection and 2 occision removal modes)
-
Fork from
mlavik1/UnityVolumeRendering
, describe how the volume rendering algorithm works. such as load raw datasets, raymarching technique, transfer functions, and direct volume rendering implementation.
-
You can see more details on two branches called "Information theoretic measure of similarity" & "Isosurface-Mesh-Non-Connected-Segmentation".
We were inspried by previous research from the paper "Isosurface similarity maps", which identify the most representative structures of material based on information theory.
We implemented information theory to measure isosurface similarity map in
Scripts/VolumeObject/VolumeObjectFactory.cs
, by using theSeawispHunter.Maths
, a C# library with Unity as PluginsResources/Maths.dll
andResources/xunit.assert.dll
to compute entropy, conditional entropy, and mutual information.
In order to automatically identify ranges of iso-values that make up the major structure of the material, we next use a hierarchical clustering algorithm to cluster the isosurfaces of isovalues in
Scripts/PyCode_Clustering_Heapmap/Clustering.ipynb
.
We segment the material structure into connected components by using the
V-HACD library
with Unity as PluginsResources/VHACD_DLL.dll
andResources/libvhacd.dll
to merge any triangle meshes as convex solutions.
Then, the approximate convex decomposition meshes that collide with each other are considered as connected structures and combined into the same piece.
You can see
Shaders/SDF.cginc
for the lens placement is definition ofSigned distance function (SDF)
andShaders/DirectVolumeRenderingShader.shader
called that function to checkinsideLens
, if true, we follow the priniple of WYSIWYG to design our obstruction selection function.
We utilize the paper "WYSIWYP: What You See Is What You Pick", a clssic visibility-oriented picking technique has to compute the first and second derivative of the accumulated opacity of the ray to determine the change in the maximum opacity value of the material to determine the selected material.
Unlike them, we calculate each material structure's ray-accumulated opacity, visibility (*alpha*), to determine the most visible material
.
Local digging structure mode (
DiggingWidget
inShaders/DirectVolumeRenderingShader.shader
) This mode removes the obstruction locally and keeps the context around the local region.
Global erasing structure mode (
ErasingWidget
inShaders/DirectVolumeRenderingShader.shader
) This mode removes a whole connected material structure when users think that the whole material structure is well explored.
- Add new function : Inverse masking with occlusion component on a branch called "InverseMaskingWithOcclusionComponent"
VolumeVis-UX Survey Process (Website)
The questionnaire is designed to get feedback for three aspects of our system: usability, practicability, and applicability.
I would like to thank my advisor, Professor Wang Ko-Chih, for his assistance and guidance during this research.
I would like to express my appreciation to the original author, mlavik1, for releasing the open source and tutorial to volume rendering, which enabled me to finish my master thesis study on visualization of volume data, and interactive visualization.