Vulkanを触ってみました。
上のVulkanの基礎的な部分のチュートリアルサイトを参考にして、一番簡単な「オブジェクトの頂点読み込み」「Uniformバッファの値入力」「レンダリング」「MSAA」「Mipmapping」をやって見ました。
Vulkan APIはOpenGLとは違って、完全にグラフィックドライバーに親しいAPI設計となっているため、OpenGLでは基本的に提供してくれるものが全部手で直接作らなければならないです。そのため、上の機能だけをやっているのにコメントを除いたコードの量はOpenGLかDirectX11までのバージョンに対してものすごく多かったです。
でも全ての動作をコードで明示しなければならないという点が全ての動作や状態管理をオブジェクトかする事が出来るということで、OpenGLでの全域状態をいちいちクエリーかラッピングしたもので管理しなければならなかったことから省くことが出来るようになって良かったと思います。
VulkanでやりたいものはPBRのレンダラーを実装したいんですが、やり始めたらAPI自体になれるまでの時間と、様々なものまで足してみたら凡そ2年くらいはかかりそうですね。:thinking:
チュートリアルで作ったものはこのレポジトリーで貼ります。まだリファクタリングなどがなっていませんがちょっと余裕があったらこれをもとにしてやりたいですね。
そしてまた別となる記事としてチュートリアルのコードを自分なりに分析したいと思います。