author: m5282025 Yoshiki Sakai
slides link: https://docs.google.com/presentation/d/1u5dwRc7636iZIzBgPNTOS9zPeFmRFznbFkx4gCqBw80/edit?usp=sharing
src: the folder to maintain sourceslib: the folder to maintain dependenciesshaders: shader filesdata: point clouds in .xyz format (+doraemon.offfrom the provided project).vscode: VSCode config files
-
Created an enum for determining the drawing mode of the program (point cloud or triangle mesh).
This is read as the fourth argument to the program (args[3]). -
Created
XYZLoader.java
This is a class for loading.xyzformat files.
Does mostly the same stuff as theOFFLoaderclass, but reads normals (if they exist) and compute faces using RBF (TO BE DONE). -
Created
RBFInterpolator.java
This is a class for performing RBF interpolation.
The functionevaluate()is called fromsample()function in theDualContouringclass.
The initial creation of matrix A takes quite long.
Currently uses the thin-plate formula because that seems to work the best.
Triharmonic function is somehow faster (and it works), so I'm using that for now. -
Decided to use only 1/4 of the vertices for RBF to shorten the wait time until render.
-
Created
setNormal()method inTriangleMesh.java
Since the class was missing a method to add normals... -
Added lines in
MeshNode.javato draw point clouds (render()method). -
Adapted
DualContouring.javato useTriangleMeshinstead ofTrimesh. -
Created
getMesh()method inDualContouring.javato directly acquire the triangle mesh. -
Assign random color to the mesh.
-
Flipped the camera movement direction when arrow keys are pressed.
-
Changed the light source position.
-
... and few more adjustments that I can't recall
- Load a 3D point-cloud using the
xyzfile format (list of point coordinates and normal) - Visualize the 3D point-cloud using OpenGL
- Implement surface reconstruction with radial basis functions (RBF)
- Implement the Marching Cubes algorithm to convert the zero level-set of the RBF to a triangle mesh
- Implement data-structures for manipulating triangle meshes
- Visualize the reconstructed surface using OpenGL
Some resources I found useful while implementing...