キャリアコマンド2:スクリーンシェーダー改造ガイド

このガイドは、画面をカスタマイズするためにシェーダーセマンティクスを学習する試行錯誤のフラストレーションを軽減することを目的としていますが、気にしないでください。 Tl; Drは、modファイルを開いて今すぐチェックする必要はありません。x効果をどのように達成したかについての簡単なチェックリファレンスガイドがあります。

 

概要

スクリーンシェーダーとは何ですか?

質問の基本的なように聞こえますが、これを見つけるには多少の狩りが必要でした。
スクリーンシェーダーは、ファイル名が付いたrom_0/shaders内にあるシェーダーファイルです。 screen_crt.glslscreen_crt_hud.glslホロマップ_ポスト.glsl.
XNUMXつ目は、静的ノイズ、スキャンライン、さらには見苦しい錫のように曲がったように見える恐ろしい頂点エッジワープなど、ブリッジコントロール全体の画面でのCRT効果を担当します。 XNUMXつ目は、車両のカメラと船の潜望鏡カムのHUD crt効果の原因ですが、実際にはこれらに気付くことはありません。 最後のXNUMXつは、ホロタブルとその外観を扱います。 ホロタブルはオブジェクトファイルに独自のライトを持っていますが、それは純粋に装飾的な目的で、画面よりも周囲を照らしているように見えるように安価なエリアライトを作成するためのものです。これは、ホロマップが暗くなるとオフになるようです。とにかく色、それを変更する必要はありません。

次のXNUMXつのセクションでは、編集可能な個々のフィールドを最初から最後の順に扱います。 それに応じてそれらを参照してください。

Screen_CRT.glsl、通常の画面

これは変更するのがはるかに広範囲にわたるので、簡単に説明します。

画面解像度x/y

何らかの理由で、モニターまたはゲームセットの解像度に基づいて相対的な効果の解像度を制御します。 追加された効果の一般的な平面も制御しますが、私はこれに触れていません。

pi

これに触れないでください、RNG効果に使用されます

画面の端で頂点座標をワープします

純粋なものの最初の大きなブロックですが、編集できるのは1.0つのフィールドだけです。 最初の値e(デフォルトは0)は実際の強度値です。 これを0.5に設定すると、効果が削除されます。 もう1つの値(デフォルトは0)は、ワープ効果の中央揃えです。 したがって、XNUMXに変更するとエフェクトが右にキックされ、XNUMXに変更するとワープエフェクトが左にキックされます。 なぜこれが必要なのか私にはわかりませんが、これによって丸みを帯びた角を無効にすると、画面がゲーム内の非正方形の画面モデルのエッジに重なる原因になります。

スキャンライン

ここの膨大な数に脅かされないでください、それを分解しましょう
距離係数はライン間の距離で、デフォルトは4です。 この後の次の行は、このスキャンラインワープの影響を受けるピクセルの量です。 スキャンラインの明るさは、スキャンラインが最後の0.2つの数値の比率でどれだけ明るいかを示します。 これらでは、エフェクトは常に左になり、元の画面出力は右になります。 したがって、0.8、80の値は、スキャンラインの可視性が20%の通常の画面の1%になります。 1.0より大きい数値は単色になり、遠くに巨大なモノリスを見たい場合を除いて、私はお勧めしません(シェーダーエラー)。 アニメーション時間はスキャンラインのスクロール速度であり、予想どおりですが、タイムスケール自体は不明です(線形?乗数?秒???)。 4.0、0.0、1.0のトリプルセットのXNUMXの値はスキャンラインの幅です、または多分私はそれらを後方に持っていますidk

色収差

これは単純なことで、画面上の赤と青の色をそれに応じて左右にオフセットします。 最初の値は光行差の可視性インターガーで、XNUMX番目の値は光行差の強度です。 あなたがあなたのスクリーンをそれらの安い赤と青の眼鏡と互換性を持たせたいなら良いと思います。

ワープした頂点座標2

これは、何らかの理由で光行差の歪んだ効果です。私が光行差を台無しにしない限り、私はそれを台無しにしたことはありませんが、ホログラムなどに適している可能性があります

ノイズ効果

次のXNUMXつのセクションではノイズを扱います
ノイズ解像度はノイズピクセルのサイズです。数値が大きいほどピクセル数は小さくなりますが、2の倍数が必要です。アニメーションランドが何をするのかわかりませんが、ミックス(デフォルトは0.1 0.9)が90%画面10%ノイズであることは知っています。 雑音指数が大幅に増加すると、何らかの理由で画面が暗くなることに注意してください。 最後に、カラーノイズ量の値はノイズが多いので、必要なものを考えてゼロをいくつか追加しますが、ノイズは画面からの距離に応じて奇妙に変化するように見えます。

カラー

これは、これまでで最も簡単なセクションであり、rgb形式の値です。
バックライトはまさにそれであり、背景光は物の後ろに放射されます。 たとえば、私のdakrmode screen modは、すべてのバックライトの色の値を0に設定します。次の0つの値は実際にはカラーフィルターであり、値を1に設定することで光を遮断できます。これにより、画面を単色、混合で作成しました。 XNUMXつ、または本当に♥♥♥♥♥♥♥青。 XNUMXより大きい値を設定しないでください。これにより、別の不吉な白いモノリスが得られます。 色をブロックすると、その色の特定の要素が非表示になることに注意してください。たとえば、青は陸地の色であり、緑も使用されていますが、車両のロードアウト画面の弾薬切れアイコンは赤です。 これが私の人気のあるmod液晶画面がダウングレードであると私が言う理由です。島と一緒にどの面でも船を見ることができないため、ホロマップが文字通り役に立たなくなるからです。

ビジネットファクター

これは…何もしません。 私はそれをたくさん変更しましたが、それはどうやら何もしません

カラーサンプル

まだこれに触れたことはありませんが、一般的な出力の明るさのようです。 だから私はあなたが画面を暗くすることができると思いますか?

Screen_CRT_HUD.glsl、カメラ

これは小さいですが、ほとんどの効果が含まれています。
それはscreen_crtとほとんど同じに従うので、私は例外とそれらが何をするかだけを調べます。

注、画面解像度は NOT カメラの解像度を変更します。

スキャンライン

ここで彼らははるかに煮詰められ、後でスキャンラインが繰り返されますが、なぜ彼らがこれをしたのか私にはわかりません。 いつものように、スキニーに見えるだけ

忌避

これはHUD自体に影響しますが、悲しいことにカメラ出力には影響しません

ゆがんだ効果

どれだけいじってもビネットが残るので、これを取り除くためのヒントをいただければ幸いです。
そうでなければ、これは基本的に何もしません

バックライト

バックライトはオーバーレイ全体をバックライトし、実際には見栄えの良いカムとしては本当にクールですが、主な用途は、ロード時のフラッシュバンギングと見栄えの良いハッドの明るさのバランスをとった場合に、ハッドの色を変更することです。

カラーフィルター

悲しいことにハッドをフィルタリングするだけですが、バックライトと組み合わせて、かなり病気の暗視カメラを作ることができます

ビネットファクター

私が気づいている限り何もしません

Holomap_Post.glsl、ホロタブル

これは作業を開始するのがはるかに難しいので、それを調べてみましょう。

虐待

光行差は、何かのホログラフィックな外観を販売するために使用できますが、それ以外の場合は、そのままにするか、オフにすることができます。

ノイズ

確かにノイズがありますが、ホロマップグリッドや島のフィーチャなど、ホロマップオブジェクトの上にオーバーレイするだけです。 背景の装飾的な青い輝きなどではありません

カスタムカラー

カスタムカラーを取得するには、colors(color_sample)の最後の行の直前のファイルにこれを貼り付けます。
vec3 backlight_color = vec3(0.0、0.0、0.0);

color_sample_r = mix(backlight_color.r、1.0、color_sample_r);
color_sample_g = mix(backlight_color.g、1.0、color_sample_g);
color_sample_b = mix(backlight_color.b、1.0、color_sample_b);

これは簡単ですが、それを見てみましょう
バックライトは確かに画面の背景色を変更できますが、値が1程度を超えると、その色の大きな立方体を照らして、ホログラフの外観を実際に販売することができます。
カラーフィルターは機能しますが、青を隠す値は、名前ではなく、マップ上に島を非表示にします。 代わりに、色をそれらの色のそれらの座標にスナップさせるために、いくつかの実際のトリックを行うことができますが、私はこれを台無しにしませんでした。
screen_crtからのデフォルトのコピーペーストには「*screen_crt_effect_factor」があります。これにより、遠くに大きな太い白いモノリスが表示され、ホロマップが機能しなくなります。 それらまでそれを削除するだけです;

スキャンラインを作成する方法はありますが、正しく機能しないため、通常の画面からの壊れた効果の代わりに、適切なスキャンラインのコード関数をいただければ幸いです。

その他のガイド:

コメント

ArabicEnglishFrenchGermanItalianJapaneseKoreanPortugueseSpanish