• Stars
    star
    104
  • Rank 330,604 (Top 7 %)
  • Language
    C++
  • License
    MIT License
  • Created over 11 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A Photorealistic 3D Rendering Engine

allpttiny

This is an 3D Rendering Engine written in C++. For the details of this project, please see report.pdf. See my blog post (in Chinese) for other interesting stories..

Features

  • Phong Model and Monte Carlo Path Tracing Model
  • rendering of plane, sphere and mesh
  • read mesh from a simple obj file
  • fast SAH-Based KDtree
  • depth of field
  • custom texture
  • mesh smoothing
  • mesh simplification with polygon reduction
  • qt-based gui

Usage

Dependencies

Compile

$ make	(command line)
$ make gui   (gui)

Use

Command line:

./ray-tracing <demo id>, show demo scene (0~10) defined in main.cc.

The display is based on OpenCV, allowing keyboard control of the viewpoint:

  • Left/Right Arrow - Orbit around the center.
  • Up/Down Arrow - Rotate the output picture.
  • > < - Rotate viewpoint direction.
  • = - - Zoom in/out.
  • h j k l - Move viewpoint, keep direction.
  • \[ \] - Move focal plane (only available in DOF demo)

GUI:

GUI is only an objviewer with some simple control.

gui

Examples

Obj and ground texture:

pict

Depth of field (There is also a video in demo/small/):

dof

Caustic using path tracing:

caustic

A Large scene:

allpt

More Repositories

1

OpenPano

Automatic Panorama Stitching From Scratch
C++
1,844
star
2

wechat-dump

Cracking encrypted wechat message history from android
Python
1,645
star
3

speaker-recognition

A Speaker Recognition System
C++
675
star
4

Adversarial-Face-Attack

Black-Box Adversarial Attack on Public Face Recognition Systems
Python
401
star
5

dash-docset-tensorflow

dash/zeal docset for TensorFlow 1 & 2
CSS
197
star
6

SoPaper

Automatically Search and Download Papers
Python
194
star
7

RAM-multiprocess-dataloader

Demystify RAM Usage in Multi-Process Data Loaders
Python
169
star
8

moco.tensorflow

A TensorFlow re-implementation of Momentum Contrast (MoCo): https://arxiv.org/abs/1911.05722
Python
161
star
9

cocoapi

Contains the "pycocotools" package on PyPI. Changes made to the official cocoapi about packaging.
Jupyter Notebook
123
star
10

GroupNorm-reproduce

An official collection of code in different frameworks that reproduces experiments in "Group Normalization"
Python
117
star
11

dotfiles

my dotfiles..
Python
58
star
12

dotvim

Over 1200+ lines of vimrc
Vim Script
43
star
13

Stereo-Pose-Machines

Stereo Pose Machines - Real Time 3D Pose Estimation
Python
43
star
14

vim-PinyinSearch

help vim search Chinese by Pinyin
Vim Script
39
star
15

FRN-on-common-ImageNet-baseline

Filter Response Normalization tested on better ImageNet baselines.
Python
35
star
16

dash-docset-matlab

Generate Dash Docset for Matlab
22
star
17

haDNN

Proof-of-Concept CNN in Halide
C++
21
star
18

hexo-tag-vimhighlight

Highlight code using vim in hexo
CoffeeScript
20
star
19

duxiu-downloader

Download e-books from duxiu.com
JavaScript
14
star
20

math

notes on math
TeX
8
star
21

dash-docset-jax

Create nice dash/zeal docset for JAX+Flax
Python
7
star
22

N-Body

Parallel N-Body Simulation Program
C++
5
star
23

dash-docset-torch

Dash/zeal docset for torch
Shell
5
star
24

ImageResizer

An Image Resizer using Seam Carving alogrithm.
C++
5
star
25

sigmod14contest

Code for ACM SIGMOD 2014 programming contest
C++
5
star
26

tensorflow-wheels

A repo to store custom tensorflow wheels in releases
5
star
27

Mandelbrot-Set

draw Mandelbrot set based on Xwindow. Use mpi / openmp / pthread to speed up
C++
3
star
28

vim-SugarCpp

support SugarCpp in vim.
Vim Script
2
star
29

sudoku

A sudoku solver using dancing links and algorithm X
C++
1
star
30

googlecli

Command Line Google Search
Python
1
star