Skip to content

mnhwt0108/raytracing-engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Raytracing_Engine

The project for Computer Graphics course. You are the !

Introduction

A renderer engine using ray-tracing technique from scratch in Java

Member

Number ID Name Task allocation
1 ITITWE19024 Dương Minh Nhựt Optimization, Secondary rays
2 ITITIU19182 Phạm Trần Anh Phúc Lights, Render
3 ITITIU19067 Lê Hữu Sỹ User Interface, Render

Motivation

Our team all had an interest in computer graphics in general and wanted to use this oppoturnity to implement a project that we all like, that being the process of rendering, specificly the ray-tracing rendering process.

Thanks to the analysis with much studies through documents and a whole lot of physics, every member on the team can recognize and understand its core problems, solutions, methodologies and implemented it with small inputs and libraries together.

Present slides: here

📖 Table of Contents

Table of Contents
  1. General Information
  2. Features
  3. Technologies
  4. Folder Structure
  5. Screenshot
  6. Acknowledge

🧮 General Information

  • GUI : Simple GUI implemented through Netbean IDE.
  • Renderer : The raytracer implemented from stratch using vecmath library.

📋 Features

List the ready features here:

Field Functions
Scene Add light - Import mesh - Import scene - Duplicate mesh - Remove light, mesh - Save scene - Load scene
Object Change name - Translate position - Transform scale - Change object settings (color, reflection, refraction, etc..)
Camera Change position - Change target - Change vector up - Change field of view - Targer an object
Render Change window height and width - Change shadow type - Antialiasing amount - Acceleration - Output image

🖥️ Technologies

- Libraries

Library README
vecmath javax.vecmath doc

🗺️ Folder Structure

├── GUI
├── accelerators
├── demo
├── geometry
├── objects
├── parser
├── raytracer
├── res
├── scene
├── scene

🖥 Diagrams

Class diagram

Sequence diagram

Request render

📸 Screenshots

User Interface

Main Panel Render Settings Object Settings

Results

Computer used to render
CPU Intel(R) Core(TM) i7-6700HQ CPU @2.60GHz
GPU NVIDIA GeForce GTX 965M
RAM 16GB
Reflective Sphere Standford University's Buddha Model
Sphere In Room Standford University's Bunny Model

Super Sampling Antialiasing

None x4 x9

💼 Acknowledgement

  • With deep gratitude and respect, we acknowledge the professional guidance of Dr. Nguyen Van Sinh and Dr. Le Duy Tan. The constant support and knowledge provided by the course helped us achieve our goals of successfully implenting the renderer.

Future Features

  • Rotation transform
  • Render more complex meshes
  • An easier way to move objects and the camera
  • More optimization
  • Real time render

What We Learnt

  • How the raytracing technique work
  • The core problems and solutions of raytracing
  • Usage of different libaries, computer graphics logic
  • Usage of Git, pull, merge and commit
  • Organize files to better manage development
  • Communication between members
  • Importance of thesis report

About

A render engine based on raytracing using Java

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages