Another video of the state of Victor:

This demonstrates some of the improvements I’ve made. Recent work since this video has been primarily focused on building a voxel geometry demonstration and implementing some performance improvements.

nanogui support

nanogui is a great little GUI framework that integrates nicely with OpenGL. It’s quite extensible, which is great as I have made use of its core set of user interface widgets to build more complex user interfaces.

Effects

I’ve supported a number of effects in Victor for a while, but this video fully shows several of them including SSAO (screen-space ambient occlusion), motion blur, and a vignette effect.

PBR

The last post showed a PBR-specific video, while this video shows the PBR functioning in an existing environment.

It’s worth noting that since this video there’s been further changes to the PBR support in Victor. Some of these are still in-progress, particularly related to physically-correct lighting.

Render Targets

Render targets are well-supported now, and are shown in the video by rendering an entirely new scene and showing it embedded within a nanogui window.

I’m using these for a proof-of-concept editor that allows editing materials with a live demonstration of any changes made. It’s still in progress and the latest work to fix performance and add voxel support has broken it a bit, but once things are working properly I’ll be able to upload a video of it in action.

Parallax Mapping

The last video didn’t show this at all, but it’s shown in this video (though it may be difficult to see!) - the bricks on the “ground” are all parallax mapped to give an illusion of depth without requiring the extra geometry.

The parallax mapping can be seen more obviously in the render target view, where the parallax effect stretches around the sphere.

What’s happening now?

My focus at the moment in Victor is primarily:

  • a voxel demonstration with modifiable geometry
  • performance improvements; visibility culling was a great start but Victor really needs culling via something like an octree to really start performing nicely on complex scenes (right now it still has to manipulate every object in a scene to perform the visibility cull, whereas with an octree a large number of objects could be skipped).
  • fixes to PBR lighting and shadowing, which is currently a little broken

This might take a while (months), but I’m aiming to add more videos of some of these features as they mature. The editor proof-of-concept is also something that I’m pretty excited about, so once that’s cleaned up a bit and has some key problems fixed I’ll be able to show that off too.