Portfolio


Particle Editor V1


[ref]

Keywords

C++, ImGUI, Tooling

Description

A particle editor for a unnamed game project. It features billboarded and velocity anchored billboarded (rotated away from a point) particles with each particle being able to affect distortion and bloom effects.

It also has a timeline for composoting different particle emitters into an effect and then exporting them.

Links



Particle Editor V2


[ref]

Keywords

C++, ImGUI, Tooling

Description

Another particle editor made for a game project. The main difference from the previous one is that it focuses on replicating the style from the game RIME.

Links



Colosizer


[ref]

Keywords

C++, ImGUI, Tooling

Description

A simple tool for resizing to powers of two dimensions and re-coloring images in bulk.

Links



Game Project

Stockman

Tiled Forward rendering. The color of each grid cell shows how many lights are in it.

[ref]

Keywords

C++, DX11, Tiled Forward

Description

A game project made during 2 months with a group of 8 people.

I worked on the particle editor and the rendering pipeline, implementing Tiled Forward/Forward+ shading, shadow mapping, debug rendering, and a few other techniques.

Links



Google Summer of Code 2018

Implementing a D3D11 Backend for gfx-rs (Mozilla)

Dota 2 using Vulkan, which in turn is using a Vulkan implementation using DX11.

[ref]

Keywords

Rust, DX11, Vulkan

Description

I participated in the Google Summer of Code 2018 (GSoC). I worked with Mozilla to add a DirectX 11 (DX11) backend for gfx-rs, which is a graphics abstraction library intended to be used in Servo, Mozilla's new experimental web browser.

The gfx-rs API is nearly identical to the Vulkan graphics API, so I was essentially making a Vulkan backend using only DX11. This meant pushing DX11 to its limits and some more, encountering & working around driver bugs, and re-implementing features (blitting, copying, etc.) using DX11.

Links


DirectX Bytecode Disassembler


[ref]

Keywords

Rust, DX11

Description

A disassembler for DirectX Bytecode (DXBC). This was an exploration in the DXBC file format, which is officially undocumented and is not supported to be assembled by Microsoft at all.

Some takeaways from this is that having documentation would've helped a lot, and that even though it's a really dense and packed file format, it's still simple enough to be nicer to work with than its successor, DXIL, which brings in the entire LLVM toolchain.

Links


3D Modelling


[ref]

Keywords

3D Modelling, Rigging, Blender

Description

I also sometimes dabble in 3D-modelling, often using Blender.

Most of my work consists of rigged characters, sometimes exported for game projects, with the art style being heavily biased towards low-poly models (but not flat shaded! Normals can be interpolated, why not take advantage of that).