Skip to content

ENH: shadows, bloom, shader options

Nicholas Milef requested to merge NickMilef/iMSTK:shadows into master

Features:

  • ENH: (Vulkan) Added shadows for directional lights:
  • These use simple filtering, so they may not look the best
  • You can turn them on/off on a per-light basis and also a per-object basis (both for casting and receiving shadows)
  • Uses a texture array so it only uses a single texture slot. The downside is that all of the texture maps are the same size.
  • You can have up to your device's limits of texture arrays (so at least 256 shadow maps, but you really shouldn't get there). Considering there's a limit of 16 lights at the moment, I'm not sure you can even attempt this.
  • ENH: (Vulkan) Added bloom effect
  • ENH: (VTK and Vulkan) Added emissivity, which is basically how much light an object emits (e.g., a light bulb would have a high emissivity)
  • ENH: (VTK and Vulkan) Changed the behavior of diffuse color. You can now apply a diffuse color AND a diffuse texture at the same time (multiplicative blending).
  • ENH: (Vulkan) Added image-based lighting
  • ENH: (Vulkan) Added HBAO
  • ENH: (Vulkan) Redesigned the memory manager to be much more efficient
  • ENH: (Vulkan) Added fullscreen mode and the ability to set the window size. Removed window resizing.

Bug fixes:

  • FIX: (Vulkan) Fixed precision errors in PBR shaders
  • FIX: (Vulkan) Crash on window close now fixed, can run multiple examples back-to-back now

Note: you may need to update your VulkanSDK and driver to 1.0.65 because there seems to have been a bug with the validation layer that prevented image arrays from working properly

Shadows

Edited by Nicholas Milef

Merge request reports