Update on Mirage

So, as it has been a while since I posted anything on this blog, I figured now might be a good time to talk about some of the things I've been working on for the past month (yeah, its been that long!)



This is definitely going to be one of my longer posts, so hold tight for the long ride!


Massive update number one: indirect + direct specular lighting! 

This is definitely the biggest change, and probably the most exciting. Mirage now has full support for specular lighting!

Just to demonstrate, here is what a massive change the specular lighting does to the fantastic "old brazilian kitchen" scene from UE4Arch. (I'll leave a link to it at the bottom of this blog)

Without specular lighting:



With specular lighting:



Only specular lighting:



As you can see here, the specular lighting makes for a really nice increase in quality. It is worth pointing out that there is still a lot of work to do in this area. Another important thing to point out is that rough reflections are supported, but right now are turned off because they dont work very well with another massive update in mirage (although this is still being worked on). One final thing, the specular reflections are pretty noisy at the moment. There is a lot of work planned to fix that, so stay tuned!


Massive update number two: normal mapping! 

Normal mapping absolutely doesn't need an introduction, and so I'm only briefly going to mention it here. It does still make for a really nice bump in visual quality though, and so I'm going to include a screen-shot at the bottom of the page


Normal mapping absolutely allows this material to shine, and it would be nowhere near detailed enough. (this is also a good showcase for rough reflections, before they had to be removed temporarily)

Massive update number three: proper specular reprojection for temporal filtering 

This is a major issue with utilizing temporal filter for specular reflections, as the resulting reflection output is directly dependent on the incident vector, which changes when the camera moves. So, if you reproject the reflections "naively" (i;e just reprojecting from surface location) you get very ugly smearing. This issue is addressed in mirage with a pretty simple multi-stage search algorithm, but there is still a lot of work to be done here. It's safe to say that it has a massive impact on the quality of the reflection reprojection though.

As there really isn't a great way to showcase this with a screenshot, I decided to make a Youtube video talking about it. Here's a link to it:

https://www.youtube.com/watch?v=G7JncE06Lew

It is worth noting that this reprojection technique is a little bit outdated and the new one is both higher quality and faster.

Massive update number four: emissive materials

Emissive materials are useful for lighting, as you can have material emit light. This is still definitely in its early stages, but already produces incredible looking results.




An orange emissive plane was used to here to simulate the lighting from the fireplace. I think it gives fantastic results!


These are probably the biggest improvements and changes in mirage since I previously posted. A few minor tweaks have been done, and performance has been generally improved throughout. The spatial filter was also completely redesigned, and is now 2.3 times faster. Of course, some things were added but either scrapped entirely/temporarily removed. This includes (but is not excluded to): Parallax Relief Mapping, Parallax Occlusion Mapping, Steep Parallax Mapping, Parallax Mapping (these were all used to simulate the same thing, but none of them was fast enough/couldn't produce high enough visual quality for me to consider them worthwhile) Volumetric lighting (is still probably going to be included in the more final versions of mirage, but is currently not fast enough to be worth it), Multiple meshes + instances (will definitely be included in the final version of mirage, but was removed because I realized there were more important things to work on) and transparency (was removed due to being way too expensive, future versions of mirage will at best support discarded transparency, but might not have any support for transparency at all, as it is just way too expensive) 


Kitchen scene: 
https://ue4arch.com/projects/brazilian-old-kitchen/

Comments

Popular posts from this blog

The primary problem with realistic rendering, and how mirage aims to solve it

An introduction and whats to come