* Added helper function for easy pipeline vertex input state create info structure setup from glTF model vertex class * Split glTF loader into header and implementation * Updated sample to use glTF * Removed collada files Replaced assets are now part of the asset pack * Return value for glTF model vertex input state create info helper * Removed unused assets * Use glTF assets * Added default material for glTF node's without materials * Use glTF assets * Apply pre-transforms to normals * Use glTF assets * Use glTF assets * Use vertex input state from glTF model class * Scene setup * Use glTF assets * Use glTF assets * Display error message and exit if glTF file could not be loaded * Use glTF assets * Use glTF assets * Use glTF assets * Remove unused buffer binds * Use glTF assets * Remove no longer used model files * Remove no longer used model files * Added support for rendering glTF models with images * glTF model normal pre-transform ignores translation * Use glTF assets * Use glTF assets * Use glTF assets * Use glTF assets * Use glTF assets * Only add combined image samplers to pool if actually used in the scene * Use global descriptor set layouts * Use global descriptor set layouts * Use glTF assets * Use glTF assets * Use glTF assets Code cleanup Updated GLSL and HLSL shaders * Use glTF assets Code cleanup * Use glTF assets Code cleanup Updated GLSL and HLSL shaders * Remove no-longer used model * Use glTF assets Code cleanup Updated GLSL and HLSL shaders * Use glTF assets Code cleanup Updated GLSL and HLSL shaders Removed no-longer used model * Use glTF assets Code cleanup Use RGBA texture instead of different compressed formats Removed no-longer used assets * Adnrdoid build file * Use glTF assets Code cleanup and refactoring Updated GLSL and HLSL shaders * Added vertex count and way of passing additional memory property type flags to glTF loader * Use glTF assets Updated GLSL and HLSL shaders Removed no-longer used assets * Use glTF assets Updated GLSL and HLSL shaders * Remove unfinished sample * Completely reworked push constants sample Use glTF assets Updated GLSL and HLSL shaders Removed no-longer used assets * Android CMake build files * Removed un-used asset * Explicit buffer binding function * Use glTF assets Code cleanup Updated GLSL and HLSL shaders * Use glTF assets Code cleanup * Use glTF assets Code cleanup Removed no-longer used assets * Use glTF assets Code cleanup Updated GLSL and HLSL shaders Removed no-longer used assets * Remove no-longer used asset * Use glTF assets Code cleanup and refactoring Performance optimizations Updated GLSL and HLSL shaders Removed no-longer used assets * Use glTF assets Code cleanup and refactoring Updated GLSL and HLSL shaders Removed no-longer used assets * Use glTF assets Code cleanup and refactoring Updated GLSL and HLSL shaders Removed no-longer used assets * Use glTF assets Code cleanup and refactoring Removed no-longer used assets * Use glTF assets Code cleanup and refactoring Removed no-longer used assets * Use glTF assets Code cleanup and refactoring * Use glTF assets Code cleanup and refactoring * Use glTF assets Code cleanup and refactoring Removed no-longer used assets * Pass vertex size and calculate multiplier in shaders instead of hard-coding With this, changes to the glTF vertex structure won't break the ray tracing samples * Load tangents (if present) * Use glTF assets Code cleanup and heavy refactoring Reworked debug display code * Android build * Normal mapping fixes Udpated HLSL shaders * Use glTF assets Code cleanup and heavy refactoring Reworked debug display code Updated GLSL and HLSL shaders * Code cleanup, comments * Use glTF assets Code cleanup and heavy refactoring Reworked debug display code Updated GLSL and HLSL shaders * Added sample count to framebuffer create info * Removed no-longer used assets * Android build Removed no-longer used assets * Code cleanup and heavy refactoring Updated GLSL and HLSL shaders Use tangents stored in GLSL instead of calculating them in the fragment shader * Renamed textured PBR sample main cpp file * Use glTF assets Code cleanup and refactoring Updated GLSL and HLSL shaders Removed no-longer used assets * Use glTF assets Removed no-longer used assets * Android build files * Android build files * Use glTF assets Removed no-longer used assets * Fixed HLSL shaders * Android build files * Use glTF assets Updated GLSL and HLSL shaders Removed no-longer used assets * Use glTF assets Updated GLSL and HLSL shaders Removed no-longer used assets * Added flag to disable glTF image loading Useful for samples that use their own textures or don't use textures at all to speed up loading * Use glTF assets Code cleanup Use Sponza scene instead of Sibenik to better highlight the effect Updated GLSL and HLSL shaders * Updated Android build files * Removed left-over comment * Use Sponza scene for the SSAO sample * Removed unused code * Removed ASSIMP No longer required as all samples now use the glTF file format * Added missing vertex shader stage * Removed old ASSIMP-based model loader * Added support for loading external glTF images from ktx Android fixes for loading external buffer files * Scene setup * Added missing shader stages * Removed ASSIMP from build files * Fixed compiler warning * Removed ASSIMP from readmes * Android build files cleanup * Replaced ktx submodule with only the files required for this repo The ktx submodule was a tad too big and contained lots of files not required for this repo * Moved ktx build files into base project * Use glTF assets * Use glTF assets * Removed license files, will be moved to asset pack * Use RGBA textures * Use RGBA cubemp texture with face assignment based on original images Refs #679 * Android build files * Removed textures All textures will be moved to the asset pack * Ignore asset folders * Removed font Fonts will be moved to the asset pack * Link to gltf asset pack * Updated gitignore * Android build file
75 lines
3 KiB
Markdown
Executable file
75 lines
3 KiB
Markdown
Executable file
<a class="site-logo" href="https://www.moltengl.com/moltenvk/" title="MoltenVK">
|
|
<img src="images/MoltenVK-Logo-Banner.png" alt="MoltenVK Home" style="width:256px;height:auto">
|
|
</a>
|
|
|
|
#MoltenVK Vulkan Examples
|
|
|
|
Copyright (c) 2016-2017 [The Brenwill Workshop Ltd.](http://www.brenwill.com).
|
|
This document is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
|
|
|
|
*This document is written in [Markdown](http://en.wikipedia.org/wiki/Markdown) format.
|
|
For best results, use a Markdown reader.*
|
|
|
|
|
|
<a name="intro"></a>
|
|
|
|
Introduction
|
|
------------
|
|
|
|
The *Xcode* project in this folder builds and runs the *Vulkan* examples in this
|
|
repository on *iOS* and *macOS*, using the **MoltenVK** *Vulkan* driver.
|
|
|
|
|
|
|
|
<a name="installing-moltenvk"></a>
|
|
|
|
Installing MoltenVK
|
|
-------------------
|
|
|
|
The examples in this repository can be run on *iOS* and *macOS* by using
|
|
the [**MoltenVK**](http://www.moltengl.com/moltenvk/) *Vulkan* driver.
|
|
|
|
These examples require **MoltenVK 0.18.0** or greater.
|
|
|
|
Follow these instructions to install **MoltenVK**:
|
|
|
|
1. [Download](https://moltengl.com/free-trial/) the **Molten** free evaluation trial.
|
|
This free trial includes **MoltenVK**, is full-featured, and is not time-limited.
|
|
You must purchase a license if you wish to use **MoltenVK** for a production
|
|
application or game, but you can use the evaluation version to run these examples.
|
|
|
|
2. Unzip the **Molten** package, and move it to a folder outside this repository.
|
|
|
|
3. Open a *Terminal* session and navigate to the directory containing this document,
|
|
remove the existing `MoltenVK` symbolic link in this directory, and create a new
|
|
symbolic link pointing to the `MoltenVK` directory in the **Molten** package:
|
|
|
|
cd path-to-this-directory
|
|
rm MoltenVK
|
|
ln -s path-to-Molten-package/MoltenVK
|
|
|
|
<a name="running-examples"></a>
|
|
|
|
Running the Vulkan Examples
|
|
---------------------------
|
|
|
|
The single `examples.xcodeproj` *Xcode* project can be used to run any of the examples
|
|
in this repository on either *iOS* or *macOS*. To do so, follow these instructions:
|
|
|
|
1. Open the `examples.xcodeproj` *Xcode* project.
|
|
|
|
2. Specify which of the many examples within this respository you wish to run, by opening
|
|
the `examples.h` file within *Xcode*, and following the instructions in the comments
|
|
within that file to indicate which of the examples you wish to run.
|
|
|
|
3. Run either the `examples-iOS` or `examples-macOS` *Xcode Scheme* to run the example in *iOS*
|
|
or *macOS*, repectively.
|
|
|
|
4. Many of the examples include an option to press keys to control the display of features
|
|
and scene components:
|
|
|
|
- On *iOS*, tap on the scene to display the keyboard. Tap again on the scene to hide the keyboard.
|
|
- On both *iOS* and *macOS*, use the numeric keys (*1, 2, 3...*) instead of function keys (*F1, F2, F3...*).
|
|
- On both *iOS* and *macOS*, use the regular keyboard *+* and *-* keys instead of the numpad *+* and *-* keys.
|
|
- On both *iOS* and *macOS*, use the *delete* key instead of the *escape* key.
|
|
|