Featured

Cinema Engine Introduction

Cinema Engine is a graphics engine that I will be writing as part of the CSE 167 final project. The aim of this engine is to create a basic cinematic experience for the user through the use of different post-processing and shading techniques. The different elements that I will aim to implement include HDR, Bloom, Depth of Field, Motion Blur, Shadow Mapping, God Rays, Fog, Real-Time reflections (such as water reflections), a Basic Particle System and SSAO. On top of all this I also want to implement some basic audio and may create my own soundtrack for the demonstration.

Inspiration for this engine originated from recent games such as “Jedi: Fallen Order”, “Death Stranding” and “Red Dead Redemption 2” which all provide a cinematic experience for the player and all set the bar for realistic realtime graphics. My engine will not come close to achieving what these games do over these next two weeks, however I will try to implement as much as I can.

Current state of the graphics engine (picking up from project 4)

By the end of the project I hope to be able to create a scene that has a similar atmosphere to that seen in the Featured Image above. As of now, I have set up a new project and have copied over my previous code from CSE 167 Project 4.

Cinema Engine Update #2

This past week was very productive. Over this week I added in various features to the engine. These include adding/finishing: The deferred rendering pipeline, bloom support, dedicated post-processing for specific glowing objects, heightmap support for terrain, multi-texturing support, fog and support for multiple lights.

Screenshot demonstrating slight motion blur

One main area I am working on at the moment is adding in motion blur to the list of post-processing effects. The way that I am doing the motion blur is similar to the method outlined in the book GPU Gems 3. I am most of the way there, I just have to clean up a few bugs and do the right math when calculating the velocity buffer.

Screenshot showing fog, bloom and terrain

By tomorrow (the deadline), I hope to be done with the motion blur effect and have that working at a satisfactory level. At the moment, the project does not have many optimisations – the generated terrain is rendering at least 2 million vertices at once and I am rendering that terrain twice for artistic purposes. If I had more time, I would dedicate more time to working on optimising the terrain rendering method.

Cinema Engine Update #1

This week was spent mostly doing research into different rendering techniques and redesigning the code which I previously had from assignment four – so I did not have the time to implement anything too crazy.

However, some small things that I implemented this week include gamma correction, HDR tonemapping and basic framebuffer manipulation (laying down the ground work for deferred rendering and post-processing). I also was able to create my own 3D models and load them into the engine.

Normal Shading with Postprocessing Inversion Effect

By this time next week I hope to be done with the deferred rendering pipeline while also adding the bloom effect and texture support for models.

Concept Art for Final Scene (aiming to get to this point)
Design a site like this with WordPress.com
Get started