Projects.

Custom Game Engine

Tech: C++, OpenGL, Lua

This personal project was developed to put in practice what I was studying about computer graphics. The game engine isn’t entirely usable but it supports some features like: diffuse and specular materials, textures, lights, shadow mapping, rigid body physics, scripting and animations.

The devolpment was totally self-taught, using only C++ and a lot of books/documentations in the topic. The part that I most like to implement was the animation system… It was really nice to see my skeletons reproducing the animations of Doom 3 for the first time.

You can watch a playlist where I uploaded some videos of the development process here.

Vector Graphics Renderer

Tech: C++

This project was made for the final assignment of my summer course of 2D computer graphics at IMPA. The entire course was focused in vector graphics and each assignment was a piece of our final renderer. The program is capable of rendering very detailed vector graphics with bezier curves, color gradients, transparency, anti-aliasign, etc.

For the last assignment, we did a quad-tree optimization to accelerate the rendering. The difference was huge, making possible to rendering vector graphics with thousands of elements in milliseconds (like the image you see above). You can check out the source code and more details at github.

Tool for Thermography Analysis

Tech: Python, Qt

I developed this tool during my scientific initiation of biomedic engineering and image processing. With this program, it was possible to automate the analysis of thermograms made by graduate students in my research group. The goal was segment and extract regions of interest in sets of thermograms. When using this tool, the researchers were able to spend more time with important stages of the analysis, without wasting time in manual and repetitive process.

The user interface was made using Qt Library and the segmentation algorithms were developed with help of my guiding teacher. The program continues to be used by some of the researchers in my group, which makes me update it with new features every now and then.

Raytracer

Tech: C++, SDL2

This project consists of a basic ray tracing software that I implemented following Ray Tracing From The Ground Up. I didn’t complete the entire book but some chapters are worth mentioning: Ambient Occlusion, Depth of Field, Soft Shadows, Area Lights and Acceleration by Regular Grid. The book is kind old, what cause me some problems trying to use the provided start-project. So, I developed my own base project using SDL2 to display the image while the scene is being rendered.

As my first contact with real computer graphics, this project was very important to my understanding of some technical terms of the area. I still think about returning with this project… Maybe I rewrite it “from the ground up”.

Medieval Game

Tech: C++, SFML

This was my first project bigger than a hello-world-exercise. It was part of the final assignment to the OOP class during my second semester at university. The actual goal was design and implement a platform game with a set of features like progress save, different kind of enemies and support to 2 players.

The development was driven by design patterns, using UML diagrams and version control. I used SFML as the core library for math, rendering, audio, window, etc. The application itself was written in a very C++98 style, using a lot of raw pointers and hacks that I’m not proud of…. I will keep it here to remind me the good (and bad) moments at that time.