みなさんこんにちは!
小柄な私が前回の投稿から 1 年以上が経過しましたが、道徳的に正直なところです!
最も見栄えの良い年は、すべてこの電子書籍の執筆に専念することになりました Mastering Graphics Programming with Vulkan, Amazon US, でさまざまな国ですぐに利用できますイギリス,インド,
イタリア など、Marco Castorina.
と一緒に、コーディングの自由な時間はすべて使い果たしました。この記事は、彼と一緒にこの本の執筆に取り掛かりました.
それはこのブログに起因するものでした!
2021 年の損害で、Vulkan に関する ae の本を書くことに協力するようになるなら、マルコは私に手紙を書きました.
私がここに書いた記事と Github のコードのおかげで、彼は私がおそらくもう一度できるかどうか知りたがっていました.
私たちは Skype に飛び乗りました. 電話して話しました:彼と話すことで道徳的な気持ちになったという説明のために。 私の本能は中立になりました!
彼は、共著者であることを含め、どのように彼に戻る必要があるかを私に尋ねました…そして私は私であると信じています。
そこで、一緒に電子書籍を書くことに同意し、そこから彼は私を Packt のチームに紹介し、私たちはその問題について話し合いを始めました.
本当のことを言うと、私たちが調達したかった要素の 1 つは、考える時間がなくなった問題を発見するために時間を費やすことであり、それは大きな脅威になりましたが、大きな報酬にもなりました。
Packt と話し合った後、私たちは 9 か月の執筆期間に同意しました。厳しい議題でしたが、Marco と協力してそれを調達できると感じました.
私たちが望んでいた段階でしたが、間違いなく私たち一人一人にとって大きな発見の旅になりました(マルコも同じだと思います)
この場合、私は成功を努力の集合体として測定します。
この投稿で後ほど説明するように、この電子書籍は正義から注目に値するものであり、私たちが望んでいたレンダリング情報を提供するためのより良い方法を求めてください。
電子書籍の正直者
有効で異常な AAA レンダリング コンテキストで Vulkan を使用する方法を確立したいと考えていたことは明らかでした。
各マルコと私業界で働いており、おそらく AAA レンダラーで入手できる可能性のある最も珍しいレンダリング技術を組み込んだキットを入手するために調査を行うことにしました. 仕事の後にコードを書いて数か月で書かれた防弾のノウハウをおそらく言語化できないことはわかっていましたが、今では中立的に古くなっているものへのいくつかの指針を与えることができます.
さらに、Vulkan と実際に見える太ったデモでそれを存在させます。 この意味で、いくつかの意見を発見した後、私たちはもはやラベルを打たなかったことに同意します – 多くの不満は、Hydra エンジンの生まれ変わりを老化させ、Vulkan の最も便利な考え方に対応するためにすべての方法を取り除いたことです.
損傷の場合、すべてを 1 つのフレーズで単純化すると、次のようになります:
API としての Vulkan の非誤解化と、一般的なレンダリング方法へのその応用
事項の選択
これは、もし真実が語られたら、楽しい断片になりました!
私とマルコはそれぞれ、探求し、いくつかを書きたいと思っていました。
最新のレンダリングエンジンがどの方法をサポートしているかを仕事の情報に基づいて自問自答することから始めました.やった、そして私たちは私たちが持っているものを調達しようとしましたm
ここに簡単なリストがあります:
- ピュアバインドレスモード フレームグラフは基本的に基本ベース クラスタ化遅延レンダリング キューブマップ シャドウ付きのポイント ライト メッシュシェーダー
- GPU プッシュ レンダリング
一時的なアンチエイリアシング ボリュメトリック フォグ レイトレーシング: 影 グローバルイルミネーション
このリストを使用して、次の大きな決定の前に多くの事項へのハイパーリンクを収集することを書き始めました…コードの観点から開く確立された調達?
enの選択 gine
Vulkanの一番上にある一番薄いレイヤーを採用したいという気持ちはずっとありました
いろいろなライブラリを調べましたが、
いくつかの提案の後、Hydra を使用することを選択しました。これは、私の維持するクリーチャー EHM エンジンであり、コードをクリーンアップします。
Hydra は、このブログの全記事のコードのミューズであり、すでに最も便利なバックエンド作業が Vulkan になりました
場合によっては、おそらく議論する人もいるでしょう。これが最も生産的な選択になることはめったにありませんが、正直なところ、2 つの利点があります。1 つ目は、最初から書いたので、コードの隅々まで知っていたということです。 2 つ目は、Vulkan と、さまざまなシンプルだが貴重なサブシステム (カメラ、入力、…) 用のボイラープレート コードがたくさんあることです。シェーダー、JSON レコードデータを利用してより小さな Ways/FX フレームワークを調達し、さらに良いことに…SpirV を解析してパイプラインに関する情報を使用します!
Marco はこれを理解してここに来ました。
多彩な能力を持つ彼は、バルカンの仕様を見つけて採用することに長けています。 簡単にコードを構成する方法は?
これは調達すべきもう 1 つの大きな決定となりました。
私たちはそれについて十分に信じています: 各章ごとにコードを時間内にフリーズするスキルが必要でしたが、そうする必要はありませんでした。それを手に入れるには、github の古代史を当てにしてください。
th の自然な進化各チャプターのコードを別のフォルダーで調達することが信念です。
これにより、各シェーダーとコア レンダリング コードが組み込まれました。 現代のコード構造は、
supply
__チャプター1
____グラフィック
__ラプター
____申請書
____財団
重要な raptor フォルダーには、foundation および application サブフォルダーが含まれています。 foundation 重要な情報の構築 (配列とハッシュの設計) といくつかのユーティリティ機能/サブシステム (ファイル管理、文字列バッファーの使用) 、時間クエリ、メモリ管理、ロギング、gltf 解析、カメラ…)
これらのフォルダー内のコード全体は章間で共有されるため、レンダリング フラグメントを最も簡単に複製して進化させます。電子書籍
変更されて正しい?
まったくなくなりました。
で変更されました痛い?
確かに、小柄。 おそらく私たちは良くなるでしょうか? 完全に確実です!
これらの選択には多くの問題がありますが、私たちにとっては損害がありました:レンダリングコードのスナップショットを取得しましたが、レンダリングに関連することはめったにありませんが、変更されていません.たとえば、章に何かを追加すると、コードを次の章に移植する必要があります。 第 4 章のワームの修正は、第 15 章への移植を意図していました!
コードが公開されたので、同じものがダウンします。バグ修正、今後はすべての後続の章に移植する必要があります。
ここでも、最も生産的な選択ではありませんが、開始時の情報では最も生産的です.
著者を手に入れる凄さ
私は決して著者と一緒に仕事をしたことはありませんが、Packt と一緒に仕事をするのは大変なことでした。
印刷、配達、整理、彼らは実際に私たちの面倒を見てくれました.
私たちが遅れたと思ったとき、またはもっと時間が欲しかったのですが、彼らは賢く耳を傾けました。
いずれかの側のすべてのフィードバック
Packtのバックのフルチームのおかげで、深いフォーカルポイントを持つことができました。私たちの側の問題に従事し、それについて最も簡単に.私はいくつかの非公開の高度な条件を賢くナビゲートしています.
切断日付のエネルギー私の考えでは、自由な時間にプロジェクトを行うのが大好きです。完全にさまざまな方法で同じ要素を最高にやり直しても. このブログの記事が役に立ちましたが、電子書籍はその最たる例です!
ポイント・イン・タイムは素晴らしい教訓を提供します:
私の考えでは、自由な時間にプロジェクトを行うのが大好きです。完全にさまざまな方法で同じ要素を最高にやり直しても. このブログの記事が役に立ちましたが、電子書籍はその最たる例です!
ポイント・イン・タイムは素晴らしい教訓を提供します:
最もプロのブループリント
ソースはあらゆる情報と時間で構成されています.
情報の領域では、私はもはや最も簡単な技術情報ではなく、非公開情報で構成されています.
劈開日の問題
ポイント イン タイムには、落胆した側面もあります。
シェーダーのリロード、コードのノウハウ、ローカルなど、必要なものすべてをコードに割り当てる必要がなくなりました。トーンマッピング、その他多数。時間を過小評価し、優先順位を交換する必要があります.
未知数の未知数がたくさんあるので、ここにスポーツモデルの理想的な問題の1つがあります.
光、言語化する必要があるかもしれません。
あなたは言語化する必要があります.
さらに、この電子書籍で割り当てられた時間は、労働の 1 日後または週末の自由時間になりました。
私たちが書いていたコードのシェアごとに、これが質問になりました:
それは、私が時間さえあることを考えると、本当のことを言うと、私がしていることですか?
自分自身を知れ
しかし、もう 1 つの大きな教訓は、AE の本を書く前に、1 つの「ペルソナ」であるガブリエルがいる可能性があるということです。 e book.
Blueprint あなたは自分自身に耳を傾けますか? あなたのニーズに? あなたはガブリエルを現代的な観点から知る立場にいますか?
これらはクレイジーな質問を浴びせられているように見えるかもしれませんが、私たちのアイデンティティ
本を書くとき、あなたがどうなるかを誰が保証しますか?
あなたは自信過剰ですか? 自信がない (これが意識的に存在するかどうか確信が持てない) ?
技術的なトピックについて自分の考え方を売り込む立場にいますか?
不適切な何かを調達する立場にあり、不適切であると知られていますか?あれ?何マイルも痛い:常に知っておくことが不可欠なトピックについて十分に知らないのを見るのは、いずれにせよ今年のレンダリングは苦痛になる.
それは私がレンダリングについて崇拝するものです: それは一種の大きなトピックであり、本当にあなたのエゴを研究に入れます.
私は常に多くのことを知っています. 1 年も経たないうちに、他の 1 人以上の人々が提案を研究し、前進させています。
また、私たちの現実との関係が重要です.
そして、そのトピックに関して、私はもはや後悔しないようにします: 私たちは制約を与えられた中で最も単純に行動しました.
しかし、私たちはより良くなることができます!
あなたは、ほとんどの珍しい入力の前で商売の視点に立っていますか? 技術情報
問題の人間的側面についての余談の後で (私はチャンスごとに、おそらくフォーカスごとに可能性があります)
私が学んだことは…私はもはや多くの現代的な事柄を知りませんでした.それについて最も簡単に読んで、真実が言われれば私はそれらを行うことによって.
最終的な計算は?
まだまだ終わらない!
前者方法論を電子的に書いたり、再実装したりすると、それを知ることができます.
論文やコードを見つけても、もはや注目に値するものではないことに何度も遭遇しました。
何かについての理論を持ちますが、やり直すことで、その心理的なマネキンを手に入れることができます。
最高の発見や耳を傾けることによって教えられるエネルギーを持っている人もいますが、もはや私ではありません.
一番薄いバルカン
これは、起源後の信念であり、私がこれまでに読んだ最も多くの話の 1 つに 1 つです。
Hydra/Raptor の利用に熱中することはなくなり、純粋な Vulkan の代わりに「Raptor ハンドブック」を使用するのはあまりにも注目に値するようになったと不満を漏らす人が多くいました.
たぶん、もっと細く書いたのかもしれませんレイヤー ?
私はそれを実行してみましょう, そしてそれは長いクロールのための魅力的なフィールドになるでしょう. API を理解するために商取引を行うことはもうありませんが、実際には、Vulkan、DirectX12、コンソール API などを再び利用することになる、より完全な「その後のノウハウ API」の考え方と情報にまで高めます。
ライト I入手してください: これは Vulkan の本なので、常に Vulkan の最も手近なところに焦点を当てることが不可欠です!
おそらく、私が以前に Vulkan レンダラーを使い古した (そしてゼロから書いた) にもかかわらず、それは議論の余地のない真実です。
ダメージレンダリングは素晴らしいアイデアの集合体であり、それぞれの現代的なものになります。それぞれの Vulkan と DirectX12 は、Photography、Buffers、Pipelines、Swapchains、Say Buffers などを利用しています。
これらのアイデアを習得したら、これらを任意の API で使用できる可能性があります。
しかし、 Raptorは単純なVulkanに比べて使用率が少し上がった段階ですが、正直なところ今はまとまった感じで、何が下がっているのかをよりよく視覚化するのに役立ちます.
一部の領域では、記述子ガジェットの使用とパイプライン管理があまりにも厄介になると思いますが、単純な Vulkan を使用しても、とにかく修正する必要がある分野であることがわかりました。
私は (ゆっくりと) のアクティブなルートにいます。よりリアルな見た目の Vulkan にするためにレイヤーをさらに剥がそうとしているので、この批評には感激しています
私は現代的なことを教えられます。
整理されたVulkanを書き留めるスキルはありますかこれまで以上に簡単なコード ?
探検の楽しさ
電子書籍を書くとき、私たちは最初に各章ごとに道徳的な段階に進むためのコードを書きました、その後、対応する章を書き、後でコードを修正/強化します.
マルコと一緒に、レイトレーシング、テンポラル アンチエイリアシング、バインドレス、メッシュ シェーダーなどを活用して、現代的な問題をたくさん割り当てることにしました。 利用可能なより良い実装がありますが、これらすべてを一致させて紹介する、最高の章で堅実なデモを提供したことは承知しています.私自身 複数の条件:
Are you have avi
未知の領域をナビゲートするときの最も継続的な条件、私たちはそれについて配線されています。 と、いろいろな条件になってしまいましたが、これが本当のことを言うと、もう瀬戸際にたどり着くことができませんでした。たまたま熟考することができるように常に考えており、時々、間違いなくそれによって粉砕しなければならない可能性がありますが、集まるとそれは大きくなりました.
マルコを味方として、さらには友人として持つことは、多くのことを助けました.
2人のどちらかが引っかかったり、疲れたりすると、さまざまな人が何度もやって来ました. 2022 年は貴重な年になったので、非公開の問題についても話しました。 ) 役の後ろの人間を無視するな! 演出は設定シナジー
章が増えるほど書いているように、レンダリングがいかに魅力的な相乗効果であるかを確信するほど、レンダラー ビジュアルを再作成するのが骨の折れる理由です.
エレガントなピクセルを調達するのは、GPU パッケージ、テクスチャ、バッファー、およびパイプラインのオーケストラです。
繰り返しになりますが、より良い方法で実行された可能性があります。
しかし、問題はその時のトラブルと提案、そして時間の制約だけです。
それが、私が結果に恍惚としている理由です: 私たちは、もはや正義ではありませんが、真実を言えば、あなたが得るすべての小さなものに触れたものを固めます.最新のレンダラー。 これは技術デモでは得られないものであり、これが最高のシェアを示しています。次に、レイ トレーシングを使用した間接照明器具の調査を開始しました…すべてが一緒に機能しました。
たとえば、クラスタ化されたマイルドな構造を再利用して、光をボリューム フォグに読み込みます。
私たちは、そのやり方を確立するために、一歩一歩、それを行いました.
それぞれのステップごとに、質問は常に次のようになりました:
この手順がシーンに追加されるのは何ですか?
私たちは、2070 を持っていたので、パフォーマンスに常に注意を払っていましたが、2070 はもうありませんでした :p
しかし、集まりました、デモを開いて見ると、フレームタイミングの内訳を提供し、確立を意識するのに役立つ GPU プロファイラーが存在する可能性があります。
これがスポーツ開発者の考え方です: 神話のパフォーマンスを常に取り入れます.合計フレーム時間を適切な段階に維持してください!
この投稿では多くの事柄に触れましたが、これらの項目について喜んでうなり声をあげます.
明らかな要素が 1 つあります。私は、技術的にも断片的にも、たくさんのことを学びました。これからも、さらに多くのことを学び続けるつもりです. Eurographics 2023 での Vulkan についてのチャット、またはイタリア語や私の母国語などで「変わったレンダラーを書く」ことの基礎について。
また、Vulkan の利用を再び合理化できるようにしたいと思います。バルカンのレミン iscence Allocator) ですが、長いクロールを見てみましょう.のルートに乗ることを忘れずに、私が集めた信念をより強くし、教えられます。