Skip to content

19/09/2023 r2

Compare
Choose a tag to compare
@stephen-hqxu stephen-hqxu released this 19 Sep 09:33
a68d0f6

Sky Rendering

This release adds a new sample DrawSky, which essentially renders a skybox-style environment. The sky is rendered using a single full-screen triangle.

It has been integrated into exisiting samples:

  • SimpleTerrain
  • SimpleWater

Assets Optimisation

Assets have been refactored and updated to include resources used by the latest release. Asset versions have been bumped and will be consistent with the release tag in the future, i.e., in the form of rx where x is an integer.

Also, we have changed the resource download referenced link to use GitHub Releases rather than GitHub Issues due to attachment size limit.

  • Pack terrain heightmap and normalmap into a single image heightfield.
    • This avoids wasting the alpha channel on normalmap, thus reducing memory consumption.
    • Use image view component swizzle to allow reading different channels based on different applications, from the same image memory.
  • Assets version has been bumped. Large assets are split into different archives.

Misc

  • Add contents to README.
  • Update license to include time and author info.
  • Add more fields to camera data uniform block.
  • Allow more customisation to pipeline creation in PipelineManager.
  • Fix a bug in createImageFromReadResult where only the first layer is copied to the image.
  • Use nearest min filter for SimpleTerrain sampler.
  • Avoid using hard-coded depth layout in SimpleWater draw function.
  • Capture all structured bindings of RendererInterface::DrawInfo by reference.
  • SimpleWater no longer preserves framebuffer output at the end.
  • ImageManager now allows creation of image with custom image creation flag.
  • ImageManager now allows creation of image view with custom component swizzle.
  • Fix incorrect perfect forward in FixedArray::pushBack.

Code clean-up

  • Refactor shader module batch compilation to reduce code redundancy.
  • Add SpanArray container; currently it doesn't have any use, yet.
  • Remove unused extension VK_EXT_vertex_attribute_divisor.

Optimise command buffer usage

  • Create command pool for each in-flight frame to allow batch command buffer reset.
  • Add new method to allocate one command buffer to avoid heap allocation.