Ray tracing engine
Shapes
Support plane
Support sphere
Support square / rectangle
Acceleration structures
Support Axis Aligned Bounding Box
Support Naive
Support Regular Grid
Parallelize build
Support Bounding Volume Hierarchy
Parallelize build
Support ray packet intersections
Support KD-Tree
Make all acceleration structures as templates
Shaders
Support DepthMap
Support only material color
Support simple shader without shadows
Support Whitted
Support Path Tracing
Fix algorithm
Support Bidirectional Path Tracing
Support Metropolis light transport
Support Wireframe shader
Fix refractions
Improve shaders performance
Samplers
Support constant
Support stratified
Support Halton Sequence
Support Mersenne Twister
Support PCG
Cameras
Support orthographic Camera
Support perspective Camera
Support fisheye Camera
Loaders
Support Wavefront OBJ
Optimize code
Support Autodesk FBX
Support CAD STL
Support PLY
Lights
Support point light
Support triangle area light
Support sphere area light
Support plane area light
Ray tracing JNI layer
Refactor DrawView translation unit
Improve DrawView code readability
Fix race conditions
Android Interface
Compatible with Android 4.1 (API 16)
Support preview (rasterization of 1 frame)
Support any OpenGL framerate
Support reset button
Support export rendered image
Fix memory leak in Java UI
Fix load of obj files in Android 10
Improve Java UI code to more Object Oriented
Change Android icon
Remove usage of deprecated methods
Add Android instrumented unit tests
Make Android instrumented tests run on debug and release
Make all Android instrumented tests pass without flakiness
Linux Interface
Support Linux's UI with Qt 4
Support Linux's UI with Qt 5
Support options menu in GUI
Support about menu in GUI
Support for selection of OBJ files in GUI
Support selection of all ray tracer options in GUI
Building process
Compatible with C++11 compilers
Compatible with C++03 compilers
Compatible with GNU C++ Compiler (g++)
Compatible with Clang++
Compatible with MinGW (g++)
Compatible with Microsoft Visual C++ (MSVC)
Support compiler warnings for clang / g++ in CMake
Support compiler warnings for Java
Support warnings for Gradle
Support rules with optimizations for proguard
Support C++ compilation with optimization flags
Support C++ exceptions
Support CMake jobs to improve building time
Support CMake to clone the third party repositories
Support CMake to pull new versions of third party repositories
Split the Android application in 3 layers:
MobileRT (ray tracing engine)
Rendering components (cameras, lights, loaders, samplers, shaders)
UI (Android through JNI, Linux through Qt)
System
Support unit tests (code coverage)
Support to export rendered image to a file
Support to store rendered image to a database
Support to load image from a database
Support to continue rendering an image loaded from a database
Remove MobileRT duplicated code
Remove Components duplicated code
Remove Android JNI duplicated code
Remove Android UI duplicated code
Remove Qt duplicated code
Remove Java tests duplicated code
Remove C++ tests duplicated code
Add message reasons to all assertions
Load lights and cameras from files
Prepare more scene models
Support Android interface
Support Linux interface
Support MacOS X interface
Support Windows interface
Support web browser interface
Support Clang format
Docker
Make a docker image with MobileRT
Create image based on ubuntu
Create image based on alpine
Create image based on centos
Create image based on archlinux
Create image based on gentoo
Add an example model to the docker image
Make the ray tracer distribute the load across different engines
Use docker compose to launch multiple containers and distribute the load
Documentation
Support doxygen documentation in the MobileRT
Support doxygen documentation in the Components
Support doxygen documentation in the JNI layer
Support doxygen documentation in the Qt interface
Support javadoc in the Android UI
Add comments for readability in the native building files
Add comments for readability in the gradle building files
Add comments for readability in the scripts
Broadcast bitmap to multiple desktop devices
Support Android interface to send updated bitmap regularly to Kafka topic via REST API
Develop small pc application that subscribes to that topic via KAFKA client
Support application to show bitmap in every update
Broadcast bitmap to multiple Android devices
Support Linux interface to send updated bitmap regularly to Kafka topic via KAFKA client
Support Android interface to subscribe to that that topic via REST API
Support Android interface to show bitmap in every update
Tests
C++ unit tests
Android instrumentation tests
C++ end to end tests (selenium)
Android performance tests
C++ performance tests
Support CI/CD pipeline
Support linter
Support Android
Support Linux
Support MacOS
Support Windows
Support Docker with multiple Linux distributions
Infrastructure
Create Makefile to boot local K8s cluster
Create Helm Chart for MobileRT
Deploy MobileRT into cloud server
Deploy into AWS EC2 instance
Deploy MobileRT into Kubernetes environment
Deploy into AWS EKS cluster
Last updated