Interactive real-time OpenCL (incl. GPU) ray-tracer (C++, OpenCL)
As a part of Advanced Graphics course I've been given a task of creating interactive real-time OpenCL ray-tracer. Final version has:
- interactive real-time movable camera and lights
- triangle primitives
- flat and Blinn-Phong lighting
- reflections, refractions and shadows
- .obj (with .mtl materials) file loading
- GUI to be able to change most of the parameters in run-time
- multiple BVH builders, including implementing “Efficient BVH Construction via Approximate Agglomerative Clustering" (Gu et al. 2013)
- naive supersampling
Optimization of MCMAP (C++, SIMD)
During Optimization and Vectorization course we’ve received assignment to find an open-source project and optimize it. By applying various optimization techniques like changing algorithms, as well as applying SIMD and tuning compilation settings, we’ve made the application on average 306% faster comparing to original version.
Heartbeat monitor (Arduino/C, Node.js)
Participating in health related Garage48 Tallinn hackathon, our team created an Arduino-based heart monitor, that sends data via Bluetooth and stores it in a database, accessible through a web-based real-time dashboard, allowing remote monitoring and potential diagnosing.
Character animation motion capture (Vicon Blade, Autodesk Motionbuilder)
Final assignment of Computer animation course was to create a short CGI movie with the requirement of using motion capture for character animation in groups. Me and two of my coursemates have captured motion data in VHTLab mocap lab with 14 MX40 Vicon IR cameras and Vicon Blade software. After that, it was my responsibility to clean-up animations in Autodesk MotionBuilder and retarget them to the character in Unreal Engine 4. In the images below can be seen one of resulting animation, a character standing and looking up around holding the torch vertically.