Mac向けVulkan開発環境の構築方法を詳しく解説

この記事はVukan系列的第二篇文章、 、および 以降のアプリケーション開発者向けの上一篇記事ですこの記事の主な内容は以下から始まり、Mac オペレーティング システムについて詳しく紹介されますVulkan进行了简单介绍其与OpenGL的优劣势进行了比较选择图形API方面提供了建议如何搭建Vulkan开发环境

Vulkan はコマンド バッファ ベースなので、より底层图形API接口優れたものになる可能性がありますOpenGL と比較して、 Vulkan などには利点があります。同時に、Vulkan には、 などのいくつかの課題もありますアプリケーション開発中、開発者は実際のニーズとプラットフォームのサポートに応じて、適切なグラフィックス API インターフェイスを選択する必要があります。利用现代GPU的强大计算能力获得更高的渲染性能和更低的CPU开销提供了更详细的硬件控制更高效的内存管理更灵活的管线状态管理多线程支持
学习曲线较陡峭编程难度较大

1.Vulkan SDKをダウンロードする

Vulkan 公式 Web サイトにアクセスして、対応するプラットフォーム用の Vulkan SDK をダウンロードします。

// Vulkan官网下载对应平台的sdk  
https://vulkan.lunarg.com/sdk/home

Vulkan SDKのダウンロード

Vulkan SDK をインストールした後、VulkanSDK/1.3.250.0/Applicationsディレクトリで実行することができますvkcube。次の実行インターフェイスが表示された場合は、コンピュータが Vulkan をサポートしていることを意味します。
Vulkan SDKのインストール完了確認

2.GLFWとGLMをインストールする

Vulkan は、プラットフォームに依存しないアプリケーション グラフィックス API インターフェイスであり、ローカル ウィンドウを作成できるかどうかは、GLFW と GLM のサポートに依存します。

  • GLFW (Graphics Library Framework):
    元々は OpenGL ウィンドウとコンテキストを作成するために使用されていたオープン ソース ライブラリで、OpenGL ウィンドウの作成、入力イベントの処理、ウィンドウ イベントの処理を簡単に実行できるクロスプラットフォーム API のセットを提供します。
    GLFW は Vulkan の拡張機能のセットを提供しており、開発者が Vulkan ウィンドウとコンテキストを作成し、ウィンドウ イベントや入力イベントなどを処理することが容易になります。
  • GLM (OpenGL Mathematics):
    GLM は数学計算用のオープンソース ライブラリであり、行列変換、ベクトル計算、射影などの数学演算のためのクラスと関数のセットを提供します。
    GLM は Vulkan と密接に関係しており、Vulkan の開発時に、GLM はレンダリング パイプラインを制御するための行列変換やベクトル計算などの数学的演算を開発者に提供し、開発者が 3D グラフィックスをプログラムしやすくします。
// 通过homebrew进行glfw与glm
brew install glfw3
brew install glm

3.Xcodeの設定

依存関係がインストールされたので、基本的な Xcode Vulkan プロジェクトを構成します。

3.1 新しい Xcode プロジェクトを作成する

Xcode を起動して新しいプロジェクトを作成し、Application > Command Line Toolプロジェクト タイプを選択します。
新しい Xcode プロジェクトを作成し、[アプリケーション] > [コマンド ライン ツール] プロジェクトを選択します。
プロジェクトで使用する言語として C++ を選択します。
プロジェクトで使用する言語として C++ を選択します

3.2 ヘッダファイルとライブラリファイルの設定

タブページを開き、 Build SettingsVulkan、glfw、glmの头文件合計lib文件を設定します。search path

  • /usr/local/includeHomebrew インストール ヘッダー ファイルのパスであるヘッダー検索パスを追加します。インストールした glm と glfw3 のヘッダー ファイルはすべてこのフォルダーの下にあります
  • vulkansdk/macOS/includeヘッダー検索パスが追加されます。これは、Vulkan SDK インストール ディレクトリのヘッダー ファイル パスです。

ヘッダー ファイルの検索パス

  • /usr/local/libHomebrew インストール ライブラリ ファイルのパスであるライブラリ検索パスを追加します。インストールした glm と glfw3 のライブラリ ファイルはすべてこのフォルダーの下にあります
  • vulkansdk/macOS/libVulkan SDK インストール ディレクトリのライブラリ ファイル パスであるライブラリ検索パスを追加しますlibファイルの検索パス

3.3 ダイナミックライブラリの追加

Build Phasesタブをクリックして、 glfw3 および vulkan フレームワークの動的ライブラリを追加します。

  • glfw の場合は、/usr/local/libディレクトリを開くと、libglfw.3.x.dylib同様の形式のファイルが見つかります。このファイルをラベルの拖拽下に置きます。Linked Frameworks and Libraries
  • Vulkan の場合は、vulkansdk/macOS/libディレクトリを開き、拖拽 libvulkan.1.dylib[libvulkan.1.x.xx.dylibリンクされたフレームワークとライブラリ] タブに移動します。

上記を行った後、Copy Filesラベルを変更します。

  • 宛先をフレームワークに設定します。
  • [サブパス] テキスト ボックスをクリアします。
  • インストール時に「コピーのみ」をチェックしないでください。
  • 次に、+ 記号をクリックして 3 つの動的ライブラリをすべて追加します。

glfw3 と vulkan フレームワークの動的ライブラリを追加

3.4 環境変数の構成

Product>Scheme>Edit Scheme...Xcode ツールバーの [開く]タブArguments、次の環境変数を追加します。

VK_LAYER_PATH = /Users/xiaxl/VulkanSDK/1.3.250.0/macOS/share/vulkan/explicit_layer.d
VK_ICD_FILENAMES = /Users/xiaxl/VulkanSDK/1.3.250.0/macOS/share/vulkan/icd.d/MoltenVK_icd.json

環境変数を構成する

4. テスト

ここまでで、すべての設定が完了しました。次のコードを実行すると、環境構成が正常かどうかをテストできます。

#define GLFW_INCLUDE_VULKAN
#include <GLFW/glfw3.h>
#define GLM_FORCE_RADIANS
#define GLM_FORCE_DEPTH_ZERO_TO_ONE
#include <glm/vec4.hpp>
#include <glm/mat4x4.hpp>
#include <iostream>
 
int main() {
    
    
    // 初始化GLFW库
    glfwInit();
    // GLFW最早是为OpenGL设计
    // 所以此处需要显式的设置GLFW阻止自动创建OpenGL上下文
    glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
    // 创建窗口
    GLFWwindow* window = glfwCreateWindow(800, 600, "Vulkan window", nullptr, nullptr);
    // 查询本机支持的扩展属性
    uint32_t extensionCount = 0;
    vkEnumerateInstanceExtensionProperties(nullptr, &extensionCount, nullptr);
    std::cout << extensionCount << " extensions supportedn";
 
    // 测试glm
    glm::mat4 matrix;
    glm::vec4 vec;
    auto test = matrix * vec;
    // 未主动close时持续消费点击event
    while(!glfwWindowShouldClose(window)) {
    
    
        glfwPollEvents();
    }
    // 销毁window
    glfwDestroyWindow(window);
    glfwTerminate();
    
    return 0;
}

ランニング効果は以下の通りです。
実行結果

参考

Vulkan SDK ダウンロード:
https://vulkan.lunarg.com/sdk/home

公式 vulkan:
https://registry.khronos.org/vulkan/

Vulkan 公式ドキュメント:
https://registry.khronos.org/vulkan/specs/1.3-extensions/pdf/vkspec.pdf

=終わり=

この記事は「CODING Technology Pavilion」公式アカウントで公開したものですが、記事が参考になった場合は私の公式アカウントにも注目してください。

Supongo que te gusta

Origin blog.csdn.net/aiwusheng/article/details/131479577
Recomendado
Clasificación