Jump to content

Finalizing Direct Lighting


Josh

1,131 views

 Share

I have not used the engine outside the editor in a while, but I needed to for performance testing, so now I am back to real-time rendering. During the development of the GI system I broke most of the light types, so I had to spend a couple of days getting those to work again. While doing this, I decided to resolve some longstanding issues I have put off.

First, the PBR lighting will use a default gradient in place of the skybox, if no reflection map is set for the world. This is based off the ambient light level, so it will blend in with any scene. You can disable this by setting a black skybox, but this will give some acceptable default reflectance when an empty scene is created and it prevents unlit areas from looking completely flat:

pbr.thumb.jpg.099356ac6ca35969719c6f34cc46c3ef.jpg

Shadow acne will be a thing of the past. I found that using vkCmdSetDepthBias to use the hardware depth bias feature does a great job of eliminating shadow acne. This shot shows a light that is extremely close to the floor, yet no artifacts are visible:

lowangle.thumb.jpg.bb3a7c0243fed31e9043975cd26cb50b.jpg
Of course the new strip lights are can be used for dramatic effects:

I have not yet implemented shadows for directional lights. I was hoping this whole time I would come up with a brilliant idea that would make cascaded shadow maps obsolete, but that's the one are I haven't found any great new innovative technique to use.

Box lights are another new type of light, and can be used to simulate directional lights coming into a window, for levels that are mostly indoors.

The realtime GI system has been very popular. I am rolling around an idea to increase the quality and performance of the system, with the flip side of that being increased latency. But looking around at the world, the general global illumination never really changes suddenly all at once, so I think it is worth trying. The whole point of Ultra Engine is that it should run very fast, so if I can make the GI system favor performance, hopefully to where it has no impact at all on framerate, I think that is more consistent with our goals.

  • Like 6
 Share

4 Comments


Recommended Comments

2 hours ago, havenphillip said:

I mean initially you said the engine would be super fast. After all the things you've added is it what you had anticipated?

Yeah, of course. The only question is how much the specular reflection in the GI will cost, but that's something we did not have before at all.

  • Like 2
Link to comment
Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...