2018年08月04日

ダサいロゴでお馴染みのVulkanをやります

OpenGLが使えなくなるMacのためにMetalを実装しようと思ったのですが、いろいろあってVulkanにしました。
めんどくさいAPIだけど頑張るぞー。
とか言って実はもうそこそこ実装は進んでいて、最低限ですがゲームを作れるくらいの機能は揃っていたりします。
いまはオフスクリーンレンダリングを実装中ですが、描画ばかりで飽きたので時々マルチスレッドの設計を混ぜつつという感じでやっています。まぁ、Vulkan自体に飽きてきたってのも正直否めないので、そろそろMetalを始めようかなという感じですね。
Swiftちゃん!!!!(発作


Vulkanをやる前に遊びでD3D12のサンプルもいくつか叩いてみるなどしました。バンドルを使った三角形描画(2D)を実装して、モデルデータ導入(3D)の途中で果てています。
D3D12を自作エンジンに対応させたいと考えていた時期もありましたが、実際にVulkanを実装した今となってはMetalすらちょっとキツイ感じがしているので、D3D12には対応しないことにしました。
D3D12は低オーバーヘッドAPIの入門に良さそうだと思って叩いてみたのですが、対Vulkan用としては大して勉強にならなかった気がします。Vulkanは格が違いましたね(糞さの格


自作エンジンのOpenGL実装についてですが、Vulkanの実装に置き換えしだいOpenGL実装はプロジェクトから削除することにしました。今後の新機能追加やメンテのことを考えると、Vulkanと設計が違うOpenGLを残すことはできないと判断した次第です。
2年かけて育ててきたGL実装を捨てるかどうかの決断なので迷いましたが、Vulkanを実装した後は意外とあっさり「よし捨てよう」って感じで即決できました。Vulkanが動かない環境を切り捨てることでもあるのですけど、どうやら私はその辺のことは気にしてないようです。。
手段が目的かしとるなこれ。



おまけでタイトル回収。

カップ

今のVulkanのロゴはこんな感じになってます(ティーポットの絵文字がなかったのでお茶にしました)。
ティーポットの存在は言われるまで気付かなかったけど、よーく見たら確かにありました。分かり難し。
実はまだ知られざる何かが隠れていたりするんでしょうかね(しない


ちなみに今日のタイトル、本当は上の絵文字だけにしようと思ったのですが、残念ながらこのブログは機種依存文字をタイトルとして使えないようで、編集データを保存しても次に編集しようとしたときには消えてました。
まりなさん、直して(無茶




おまけその2:一週間苦しんだバグの原因


誤)if(cmd) return;

正)if(!cmd) return;


この超絶な凡ミスのせいでタイリング最適化したテクスチャの描画ができなくて1週間嵌りました。バッファかビューかデータ転送が原因だと思ってずーっと探してたのに、コマンドが送信出来てなかったというオチ。
そりゃあティーポットも見つからんわけですよ。

posted by gency at 15:32| Comment(0) | 3DProgramming
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: