Asteroids sample now implements fully-functional rendering of the random-generated asteroids field rotating around a planet, but rendering is currently single-threaded (closed #31)
Asteroid mesh generation based on subdivided icosahedron with perlin-noise randomization.
Asteroid tri-planar texture arrays generation with perlin-noise and mip-levels implemented.
Asteroids orbiting simulation implemented with restoring its state after device reset.
Planet rendering implemented.
Graphics Core API new features:
Addressable resource bindings are supported to allow binding to variable chunks of large buffer to program arguments (closed #41):
Program Resource Bindings now support byte-offset specification for addressable resources.
Buffer resource can be created with addressable flag to be used in such bindings.
Texture arrays are now supported (closed #43).
Texture mip-map levels generation is now available (closed #44).
Render Command List now supports rendering given subset from vertex/index buffers.
Graphics Extensions and Helpers new features:
Icosahedron and geosphere mesh generation is added to Mesh primitives (closed #42).
Sphere mesh now supports correct texture coordinates generation for spheric texture mapping.
Uber-mesh was added to merge multiple meshes in a single index and vertex buffers.
Multi-octave perlin-noise generator was added.
Mesh-Buffers extension now supports rendering multiple subsets from Uber-mesh and Textured Mesh-Buffers extension supports per-subset texturing.
External modules added:
Perlin Noise library
DirectXTex library
Build infrastructure:
Added build options to enable ITT instrumentation and shaders code symbols.
Fixed application properties in plist/rc files.
Added build-numbers setup in Azure builds.
Fixed multiple shaders handling in one application/library.
Refactoring and optimizations:
Data::ParallelFor reworked based on std::async and std::future, instead of std::thread.
Optimized resource bindings creation, Program::ResourceBindings now can be created in parallel.
Optimized CPU overhead of applying Program::ResourceBindings::Apply
Optimized DirectX command lists by eliminating excessive input assembler calls and resource binding calls as well.
Instrumentation module moved under Data, Kit module moved under Graphics.