C++, OpenImageIO, CUDA
DemoReel_2021 from Xicheng Wang on Vimeo.
There three academic projects in this video here.
1. Mipmap
This program is to generate mipmaps from an input image using Gaussian Filter. And display the mipmap and the original image together in a window. Users can scale the pixmap via the mousewheel or up and down keys to compare the differences between them. The user would see the aliasing artifacts on the mipmap less than the original image when the user scale down the image.
2. 2D Game Engine
This shooter game is done by teams of three people. It’s based on our own developed 2D game engine. I was the team lead and designed the game. There are main features of the game and the game engine below.
Finite state machine (like patrol, chase, attack)
In-play UI (Pause menu, Heads up UI to display score and health points)
2D assets (Tilesets and Sprite Animation)
Player controller (wasd move around and fire bullets towards mouse pointer with mouse click)
Camera effect (Camera shake)
3. Particles & CUDA
The reason why I want to implement the particle system using CUDA and OpenGL is that I found when there were a large number of particles, or a complicated system such as SPH, or many collision triangles, the program would be very slow. So I want to combine CUDA and OpenGL to implement a particle system. I only implemented a simple particle system with collision detection because of the limited time, and I spent a lot of time to figure out how to combine CUDA and OpenGL.