Library)を使わないのですかなぜGodotは例外処理を使わないのですか?GodotがRTTI(実行時型情報)を強制しないのはなぜですか?GodotがユーザーにDoD(データ指向設計)の実装を強制しないのはなぜですか?Godotの開発をサポートしたり、貢献したりするにはどうすればいいですか?誰がGodotで働いていますか。3.0と同様のシェーディング言語を使用します。ほとんどのデータ型と関数がサポートされており、残りのいくつかのデータ型は今後追加される可能性があります。通常のGLSLからGodotのシェーディング言語への移行を支援するリソースです。何も返さない関数にのみ有用です。含めることができます。Bool値の2要素ベクトル。Bool値の3要素ベクトル。Bool値の4要素ベクトル。符号付きスカラー整数。符号付き整数の2要素ベクトル。符号付き整数の3要素ベクトル。符号付き整数の4要素ベクトル。符号なしスカラー整数。負の数を含めることはできません。符号なし整数の2要素ベクトル。符号なし整数の3要素ベクトル。符号なし整数の4要素ベクトル。浮動小数点値の2要素ベクトル。浮動小数点値の3要素ベクトル。浮動小数点値の4要素ベクトル。列優先順の2x2マトリックス。列優先順の3x3マトリックス。列優先順の4x4マトリックス。floatとして読み取られる2Dテクスチャをバインドするためのサンプラータイプ。符号付き整数として読み取られる2Dテクスチャをバインドするためのサンプラータイプ。符号なし整数として読み取られる2Dテクスチャをバインドするためのサンプラータイプ。floatとして読み取られる2Dテクスチャ配列をバインドするためのサンプラータイプ。符号付き整数として読み取られる2Dテクスチャ配列をバインドするためのサンプラータイプ。符号なし整数として読み取られる2Dテクスチャ配列をバインドするためのサンプラータイプ。floatとして読み取られる3Dテクスチャをバインドするためのサンプラータイプ。符号付き整数として読み取られる3Dテクスチャをバインドするためのサンプラータイプ。符号なし整数として読み取られる3Dテクスチャをバインドするためのサンプラータイプ。Cubemapsをバインドするためのサンプラータイプ。floatとして読み込まれます。3.0と同様に、同じサイズで異なるタイプのスカラーとベクトル間の暗黙的なキャストは許可されていません。異なるサイズの型のキャストも許可されていません。変換は、コンストラクターを介して明示的に実行する必要があります。メンバーを介してアクセスします。使用しても機能し、同等です。ニーズに最適なものを使用してください。使用して行インデックスでベクトルにアクセスします。vec4(0.0);行列タイプの構築には、行列と同じ次元のベクトルが必要です。構文を使用して対角行列を構築することもできます。mat4(1.0);行列は、別の次元の行列から構築することもできます。次の2つのルールがあります。小さいマトリックスから大きいマトリックスを作成する場合、追加の行と列は単位マトリックスの値に設定されます。小さいマトリックスが大きいマトリックスから構築される場合、大きいマトリックスの左上のサブマトリックスが使用されます。結果が別のベクトル型(またはスカラー)である限り、任意の順序で要素の任意の組み合わせを取得することが可能です。b.精度¶データ型に精度修飾子を追加することができます。それらをユニフォーム、変数、引数、および変数に使用します。(default)一部の操作に低い精度を使用すると、関係する計算が高速化されます(精度は低下します)。これは、頂点プロセッサ関数ではほとんど必要ありません(ほとんどの場合、完全な精度が必要です)が、フラグメントプロセッサではしばしば有用です。一部のアーキテクチャ(主にモバイル)はこれにより多くのメリットを得られますが、制限されていることにも注意してください(精度間の変換にはコストがかかります)。詳細については、ターゲットアーキテクチャの関連ドキュメントを参照してください。正直なところ、モバイルドライバーはバグが多いため、トラブルを避けるために、本当に必要がない限り、精度を指定せずに単純なシェーダーを作成します。配列は、類似したタイプの複数の変数のコンテナです。3.2では、ローカル配列と可変配列のみが実装されています。ローカル配列¶ローカル配列は関数で宣言されます。サンプラーを除くすべての許可されたデータ型を使用できます。関数と混同しないでください)。パラメーターを受け入れず、配列のサイズを返します。...}注:0未満または配列サイズより大きいインデックスを使用すると、シェーダーがクラッシュしてレンダリングが中断します。関数を使用して、インデックスが0と配列の長さの間にあることを確認してください。コードは常に慎重にテストおよびチェックしてください。定数式または単純な数値を渡すと、エディタはその境界をチェックしてこのクラッシュを防ぎます。キーワードを使用して、その変数を変更できないようにします。サンプラーを除くすべての基本型は、定数として宣言できます。定数値へのアクセスと使用は、ユニフォームの使用よりもわずかに高速です。定数は、宣言時に初期化する必要があります。valid定数は変更できず、さらにヒントを持つことはできませんが、複数の(同じ型の場合)を単一の式で宣言できます。宣言することもできます。valid定数は、グローバル(関数の外部)またはローカル(関数の内部)の両方で宣言できます。グローバル定数は、変更する必要のないシェーダー全体の値にアクセスする場合に役立ちます。ユニフォームと同様に、グローバル定数はすべてのシェーダーステージ間で共有されますが、シェーダーの外部からはアクセスできません。3.0と同じ一連の演算子をサポートしています。while(true);最新のGPUでは、無限ループが存在し、アプリケーション(エディタを含む)がフリーズする可能性があることに注意してください。キーワードを使用できます。使用すると、フラグメントは破棄され、何も書き込まれません。関数¶Godotシェーダーで関数を定義することが可能です。b;}呼び出し元の関数から見て上記(エディタの上方)で定義された関数のみを使用できます。引数が読み取り専用であることを意味します(デフォルト)。引数が書き込み専用であることを意味します。引数が参照を介して完全に渡されることを意味します。それらは頂点プロセッサーのすべてのプリミティブ頂点に設定され、フラグメントプロセッサーのすべてのピクセルに対して値が補間されます。特定の値は、シェーディングパイプライン中に補間されます。使用して、これらの補間の実行方法を変更できます。値は、パースペクティブに応じた方法で補間されます。これがデフォルトです。Uniform(ユニフォーム)¶シェーダーに値を渡すことは可能です。シェーダーが後でマテリアルに割り当てられると、uniformはその中の編集可能なパラメーターとして表示されます。シェーダー内からuniformを書くことはできません。some_value;マテリアルのエディタでuniformを設定できます。最初の引数はシェーダーのuniformの名前です。シェーダーのuniformの名前と完全に一致する必要があります。一致しない場合、認識されません。除くすべてのGLSLタイプはuniformにすることができます。Godotはオプションのシェーダーヒントを提供して、uniformの使用内容をコンパイラに認識させます。vec4(1.0);Godotの3Dエンジンは線形色空間でレンダリングするため、色として提供されるテクスチャには適切なsRGB->線形変換(つまり、hint_albedo)のヒントが必要であることを理解することが重要です。値として、デフォルトは白です。値として、デフォルトは黒です。フローマップとして、デフォルトは右です。GDScriptはGLSLとは異なる変数タイプを使用するため、GDScriptからシェーダーに変数を渡すと、Godotはタイプを自動的に変換します。mat4注釈GDScriptからシェーダーuniformを設定するときは注意してください。タイプが一致しない場合、エラーはスローされません。シェーダーは未定義の動作を示すだけです。3.0に準拠した多数の組み込み関数がサポートされています。命名法を使用する場合、スカラーまたはベクトルを使用できます。