Skip to content

j-chick/cs453-final-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CS453 Final Project

Paper

Surface Simplification Using Quadric Error Metrics

Abstract

Many applications in computer graphics require complex, highly detailed models. However, the level of detail actually necessary may vary considerably. To control processing time, it is often desirable to use approximations in place of excessively detailed models. We have developed a surface simplification algorithm which can rapidly produce high quality approximations of polygonal models. The algorithm uses iterative contractions of vertex pairs to simplify models and maintains surface error approximations using quadric matrices. By contracting arbitrary vertex pairs (not just edges), our algorithm is able to join unconnected regions of models. This can facilitate much better approximations, both visually and with respect to geometric error. In order to allow topological joining, our system also supports non-manifold surface models

Citation

Setup

conda

conda create --file requirements.txt --name viz python=3.9 -y
conda activate viz

pip

# NOTE try pip3 if that doesn't work on Mac OS Catalina or later.
pip install -r requirements.txt

Running the Algorithm

python src/main.py \
    --simple-pair-selection \
    --n-contractions 1 \
    models/icosahedron.ply

This repository

assets/

  • citation-2417323.bib: BibTEX citation for original paper downloaded from ResearchGate.
  • quadrics.pdf: Original CMU paper, for convenience.

models/

  • cow.obj: Original 3D cow model from the original paper.

src/

  • garland_heckbert.py: Main file for the alorithm implementation.

Visualize Model

python scripts/viz_cow.py

Resources

  • Tips for writing mesh code in Python can be found here.

About

CS453 - Scientific Visualization

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors