Permalink
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
executable file 145 lines (90 sloc) 5.28 KB
MoltenVK Home

#MoltenVK Vulkan Examples

Copyright (c) 2016-2017 The Brenwill Workshop Ltd.. This document is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)

This document is written in Markdown format. For best results, use a Markdown reader.

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.

Installing MoltenVK

The examples in this repository can be run on iOS and macOS by using the MoltenVK Vulkan driver.

These examples require MoltenVK 0.18.0 or greater.

Follow these instructions to install MoltenVK:

  1. Download 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
    

Installing AssImp

The examples in this repository make use of the AssImp library to load resource assets from files. To run the examples you must download and install AssImp library as follows.

Note: Due to the way that AssImp makes use of the CMake utility, an installation of AssImp can only be built for a single platform. To create AssImp libraries for both iOS and macOS, download a separate copy of the AssImp directory for each platform (or create a copy of the downloaded AssImp directory for each platform before building).

####iOS

  1. Download AssImp 3.3.1.

  2. Unzip and rename the directory to assimp-3.3.1-ios.

  3. Open the file assimp-3.3.1-ios/port/iOS/IPHONEOS_ARM64_TOOLCHAIN.cmake file and comment out the following lines:

     #SET (CC         "${DEVROOT}/usr/bin/llvm-gcc")
     #SET (CXX        "${DEVROOT}/usr/bin/llvm-g++")
     #CMAKE_FORCE_C_COMPILER          (${CC} LLVM)
     #CMAKE_FORCE_CXX_COMPILER        (${CXX} LLVM)
    
  4. Open a Terminal session and navigate to the assimp-3.3.1-ios/port/iOS directory, and run the following build command:

     cd path-to-assimp-3.3.1-ios/port/iOS
     ./build.sh --stdlib=libc++ --archs="arm64" --no-fat
    
  5. In the assimp directory within this directory, remove the existing assimp-ios symbolic link, and create a new symbolic link pointing to the assimp-3.3.1-ios directory:

     cd path-to-this-directory/assimp
     rm assimp-ios
     ln -s path-to-assimp-3.3.1-ios assimp-ios
    

####macOS

  1. Download AssImp 3.3.1.

  2. Unzip and rename the directory to assimp-3.3.1-macos.

  3. Open a Terminal session and navigate to the assimp-3.3.1-macos directory, and run the following build commands:

     cd path-to-assimp-3.3.1-macos
     cmake CMakeLists.txt -G 'Unix Makefiles'
     make
    
    • If compilation fails, fix typo in assimp-3.3.1-macos/code/D3MFImporter.cpp and try make again
  4. In the assimp directory within this directory, remove the existing assimp-macos symbolic link, and create a new symbolic link pointing to the assimp-3.3.1-macos directory:

     cd path-to-this-directory/assimp
     rm assimp-macos
     ln -s path-to-assimp-3.3.1-macos assimp-macos
    

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.