Thanks to visit codestin.com
Credit goes to github.com

Skip to content

manurare/ULR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unstructured Lumigraph Rendering (ULR)

This project is mainly based on the seminal work Unstructured Lumigraph Rendering (ULR). It includes an image-based renderer using explicit geometry that can render color, blending weigths and depth. The explicit geometry can be of two types: an accurate reconstruction (i.e., colmap) or a approximate coarse proxy (cube or plane).

reconstruction.mp4
proxy.mp4

Dependencies

Install

Clone the repo and initialize submodules

git clone https://github.com/manurare/ULR.git
git submodule update --init 

For GLEW and Eigen use:

sudo apt-get install libglew-dev
sudo apt install libeigen3-dev

Build Colmap, Pangolin and Triangle inside the third_party directory. For Triangle

cd third_party/triangle
mkdir build
cd build
cmake ..
make -j

Once done, we can build this repo

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j

Data

Should be inside directory named datasets

Examples of working datasets come from SIBR datasets. Download the Unstructured Lumigraph option.

Own data

Create the exact same folder structure as SIBR datasets. You can use the following:

rsync -a --include='*/' --exclude='*' SIBR_dataset/ yourOwnDataset/

Please name your images under the yourOwnDataset/sibr_cm/images directory as: %08zu.jpg, i.e., 8 digits with zero padding. Also, make sure the filenames start indexing at 0.

Run the code

./main datasets/tree18/sibr_cm/ [0|1]

The last argument can take 0 or 1 values:

  • 0: Do not use proxy geometry. Use SfM (colmap) dense reconstruction instead.
  • 1 (default): Use a simple proxy geometry. At the moment only plane and cube shapes are supported.

Controls

We can fly-through the scene using controls similar to those of videogames:

  • Click & Drag: Rotate view
  • Mouse Wheel: Zoom in/out
  • W|S: Shift vertically
  • A|D: Shift horizontally
  • K: Increase candidates (max 8)
  • L: Decrease candidates (min 1)
  • E: Show depth
  • B: Show blending weights
  • P: Overlay wireframe

Clarifications

The original work creates the blending field per vertex. They evaluate the contribution of each input view at the vertices defined by the intersection of a coarse image grid and the proxy. Instead, in this project, I evaluate the contribution of each input view per fragment recovering the final blending field.

About

Unofficial implementation of Unstructured Lumigraph Rendering (ULR)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages