私たちは皆、今年趣味を取り上げています。そして、私の人生はマラソンによって豊かになっていると確信しています王冠そして週末に私の体から突き出ているアストラル、マシュー・ワイルドはもう少し重要な封鎖プロジェクトを持っていました:彼はブージーのボトルシェーダーを作りました半減期:アリックス。
シェーダーはそうでした5月パッチでゲームに追加されました、そして彼らはすぐに始めましたインターネットで愛を得る。その理由は簡単にわかります。彼らは本当に、本当によく見えます。シェーダーは、ボトルを振ると反応する液体でボトルを透明に見せます。パッチの前に、ボトルは揺れたときにスロッシングの音を出しましたが、それ以外の場合は不透明に見えました。
シェーダーがどのように機能したかを知りたかったのですが、ワイルド自身よりも良い人は尋ねませんでした。
WildeはVFX開発者であり、彼はValveで働いていましたアリックス開発中でしたが、Dota Underlords。彼はドタキャラクターのジュルのためにワイングラスシェーダーを作りました。半減期:アリックスチーム。たくさんのボトルが散らばっていますアリックス、しかし、1つの特定のレベルは蒸留所で行われ、プレイヤーがボトルと対話する必要がありますたくさん。
ボトルを液体でいっぱいに見せたシェーダーを開発すると、レベルがはるかに印象的になります。そして、ワイルドも何もないところから始まりません。ゲームは基本的に行われ、詳細な資産と強力な照明システムが整っています。
「すべてのボトルはモデルとして存在し、それらはすべて美しくテクスチャされていて、見栄えが良くなりました」とワイルドは言いました。 「そして、すぐに、それが本当に有望であることがわかりました。」
しかし、アリックスのリリース日が迫っているため、パフォーマンスの問題を引き起こすことなく、新しいシェーダーを実装する時間がありませんでした。
「たまにボトルがあったら...それはおそらく問題ではなかっただろう」とワイルドは私に言った。 「しかし、繰り返しますが、数千の小道具と数千のボトルがあるのはこの蒸留所レベルでした。」
シェーダーはリリースのために棚に置かれ、ワイルドは失望しましたが、彼はそれを大胆に取りました。半減期:アリックス2020年3月23日に出てきました。その同じ日、ワシントン州知事のジェイ・インスリー、自宅での滞在注文を発行しましたそれはバルブのベルビューオフィスを閉鎖するでしょう。
「そして、突然時間があった」とワイルドは言った。 「ロックダウンは、私たちが以前にやらなかったことを振り返る機会を与えてくれました。」
シェーダーを作る
シェーダーは、3Dオブジェクトにどのように見えるかを伝えるプログラムです。この特定のシェーダーはピクセルシェーダーであり、すべてのピクセルに、どのように照らされているかに基づいて、どの色になりますか。ゲームでレンダリングされているものはすべてシェーダーを持っています。
「一部のシェーダーは他のシェーダーよりも少し関与しているだけです」とワイルドは私に言いました。
シェーダーは、私たちが見る多くの詳細を考慮しています。実際に3Dで何かをレンダリングすること - たとえば、木の樹皮のすべての溝や結び目は、時間がかかり、パフォーマンスが多いでしょう。しかし、シェーダーは、木の樹皮、鎧、皮膚、またはボトルに泡立つビールの幻想を生み出すことができます。
現在、自宅でconconconcedされて、ワイルドはシェーダーに戻りました。アリックスすでに照明システムがあったので、シェーダーがしなければならなかったことは、どの値を把握することでした 照明が計算されたときに使用します。シェーダーは、液体とボトル自体の両方のベースカラー、テクスチャ、反射などの入力を考慮し、それらをすべて結合します。
「そして、出力は別の色です」とワイルドは言いました。 「あなたはすべてのピクセルでそれを行い、最後に結果を得ることができます。」
シェーダーは、何よりもまず、強迫観念の結果です。ワイルドは文字通り地下室に座って、拾い上げてボトルで遊んで、液体がどのように振る舞ったかを確認しました。
「あなたはシェーダーを見て、それに入っているすべての作品を見ます。それはページとページのページですが、それは誰かの心から飛び出しただけではありません。 。 「それは常にそれをゆっくりと構築し、それからあなたが進むにつれてアイデアを得て、それをスケッチするようなものでした。」
ワイルドは実生活のボトルを観察します - ビールで発達する泡、または液体が光をキャッチする方法 - そして、シェーダーの入力を調整して、彼の作成が現実を反映しました。それは、ピクセルのピクセル、ピクセルのピクセルを作成するようなものでした。特に、ここでは液体シミュレーションはありません。
「それが行動するべきであると私がどのように判断したかを振る舞うように作られています。それよりも現実的なことではありません」とワイルドは言いました。 「シミュレーションはありません。ただ観察されています。」
それが言葉遣いの理由ですアリックス'sパッチノート非常に意図的です:「今ボトル現れるそれらの中に液体を置くために、あなたがそれらを振るとうねります。」
反射と屈折
キューブマッピングは長い間、ゲームが反射をどのように処理するかであり、私たちの将来にレイトレースが迫り来ることでさえ、それは一晩で変化しません。キューブマップは、キューブに焼き付けられた6つのビューで構成されています。プレーヤーのカメラがどこに向かっているかに応じて、ゲームはキューブから近似ビューを引いて反射を作成します。それが、鏡がゲームで実際に機能しない理由です - キューブマップは作成しません完璧反省、そして彼らは本当にする必要はありません。
その素晴らしい例がありますマーベルのスパイダーマンPS4で、建物の反射が示すかもしれません何か近くからですが、必ずしも最も正確なものではありません。私たちは通常、反射が見えるので、不信を一時停止することができます十分です。
この酒のシェーダーは、キューブマップを使用して反射を作成しますが、の幻想を作成します屈折- オブジェクトを跳ね返すのではなく、オブジェクトを通過する軽い光です。
ボトルは透明ではありません。しかし、彼ら見てAlyxはおおよその座標のためにキューブマップを引っ張っており、見ているボトルの側面にその事前に焼いた画像を投影しているためです。それはあなたに空間の歪んだビューを示していますが、それは絶対に機能する野生の幻想です。
「物事がすでに少し歪んでいるボトルにそれらを使用してください。すべてが少し汚れています...それは実際にそれを行う本当に良い方法です」とワイルドは言いました。 「ガラスと液体を見ているとき、本能的なものとして、それがどのように見えるべきか誰も知らないことも役立つと思います。ガラスを通して見始めたときに受け入れ、物事が少し奇妙になります。」
キューブマップの画像は、シェーダーが液体があると書かれている場合、二重に歪んでいます。ワイルドは反射の上に反射を組み合わせて、2つの表面があるように見えるようにします:ガラス瓶と「内側」の液体。
そして、それがあなたが液体の幻想を得る方法です内部透明なガラス瓶 - 実際、ボトルが空で不透明です。
偽の物理学
このシェーダーで私が最も気に入っているのは、リアリズムの精神的なしきい値を渡すのに十分な詳細であることです。
「すべてが偽造され、すべてがだまされています。すべてが観察され、微調整され、ほぼ正しいと感じるまで値が変更されたものです」とワイルドは言いました。 「ボトルを振ると、[液体]が少しぐらつきます。だから、ぐらつきが正しく見えるので、少しぐらつきます。」
情報をゲームに入れる効率的な方法がなかったため、最初にシェーダーを遅らせるのはこのぐらつきです。最終的には、ValveのWildeの同僚がShaderの頂点の色にデータを保存できることに気付いたため、パフォーマンスコストは無視できました。
頂点の色は、「現実的な照明とテクスチャの前の早い時期からの遺物」とワイルドはメールで私に語った。 「この例では、全体に適用されたのは単なる色でした。そして、私たちはその色を何にも使用しませんでした。」
したがって、液体の動揺(または専門的には、重力の方向、泡または泡がこれらの未使用のRGBチャネルに保存されます。ボトルの周りにボトルを振ると、ボトルの速度を使用して動揺を促進し、液体を滑らせます。バブルまたはフォームも速度に結び付けられ、動きが止まると徐々に減衰します。しかし、プレイヤーがボトルでナッツになっているかどうかにかかわらず、照明、反射、影 - は、ゲーム内のすべてのオブジェクトに対してすでに行われています。
なぜ成功するのか
大量のアルコールを含むロックダウンプロジェクトに取り組んでいるかもしれませんが、シェーダーを実装してパフォーマンスの問題を解読することになると、ワイルドは単独ではありませんでした。アリックス視覚効果はチームの努力です。
「それの成功は、まず第一に、資産自体が最初から非常に良いという事実から来ています」とワイルドは言いました。 「シェーダーを書いているとき、確かにこの種のシェーダー...既存のパイプラインと既存の照明セットアップに豚をぶら下げています。だから、それはあなたができる限りそこにあるものを悪用しようとすることです。」
ボトルを振るのは実生活では簡単かもしれませんが、仮想ボトルを種類の反応させるのはそれほど簡単ではありません。時間と率直に言って印象的な観察力があり、半減期:アリックスのブージーボトルはそう感じました右それらを見るとき、私たちは信じられないことを一時停止する必要はありません。その賢く、創造的な思考の一種そのゲーム開発は、どのように高度なテクノロジーが得られても、常に恩恵を受けます。