Methane Kit v0.1

Евгений Городецкий обновлён 1 год назад v0.1.20191207.7 51ecc74 Релиз
0
Описание

Asteroids sample with single-threaded rendering was created in this release:

  • 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) <img src=“https://github.com/egorodet/MethaneKit/blob/3007c906b35121e34f2e0231d8eb8ce2939116c4/Apps/Samples/Asteroids/Screenshots/AsteroidsWinDirectX12.jpg?raw=true” alt=“Methane Asteroids DirectX 12” align=“right” valign=“middle” width=“400”/>

    • 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: <img src=“https://github.com/egorodet/MethaneKit/blob/35cba1472d814cf71bcf42651edcee32562d9448/Apps/Samples/Asteroids/Screenshots/AsteroidsWinCpuTrace.jpg?raw=true” alt=“Methane Asteroids ITT Trace in Intel Graphics Trace Analyzer” align=“right” valign=“middle” width=“300”/>

    • 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.

Get release binaries on GitHub.

Файлы
  • Нет файлов