Library)を使わないのですかなぜGodotは例外処理を使わないのですか?GodotがRTTI(実行時型情報)を強制しないのはなぜですか?GodotがユーザーにDoD(データ指向設計)の実装を強制しないのはなぜですか?Godotの開発をサポートしたり、貢献したりするにはどうすればいいですか?誰がGodotで働いていますか。source最初のキャンバスアイテム(CanvasItem)シェーダー¶はじめに¶シェーダーは、GPUで実行される特別なプログラムで、グラフィックのレンダリングに使用されます。最新のレンダリングはすべてシェーダーで行われます。このチュートリアルでは、頂点関数とフラグメント関数の両方を使用してシェーダーを作成するプロセスを順を追って説明し、シェーダープログラムを作成する実用的な側面に焦点を当てます。このチュートリアルは、シェーダーの初心者を対象にしています。シェーダーはすべての3Dオブジェクトを描画するために使用されます。内にアタッチする必要があります。同じマテリアルで複数のオブジェクトを描画するには、マテリアルを各オブジェクトにアタッチする必要があります。派生したすべてのオブジェクトには、マテリアルプロパティがあります。オプションもあります。親のマテリアルを継承します。これは、同じマテリアルを使用するノードが多数ある場合に役立ちます。スプライトノードを作成します。任意のCanvasItemを使用できますが、このチュートリアルではSpriteを使用します。インスペクタで、"Texture"の横にある[空]をクリックして[読込み]を選択し、”Icon.png"を選択します。新しいプロジェクトの場合、これはGodotアイコンです。ビューポートにアイコンが表示されます。ShaderMaterial」を選択します。これにより、新しいマテリアルリソースが作成されます。表示される球をクリックします。Godotは現在、CanvasItemシェーダーとSpatialシェーダーのどちらを記述しているかを認識せず、Spatialシェーダーの出力をプレビューします。したがって、表示されているのは、デフォルトのSpatialシェーダーの出力です。Shader」を選択します。最後に、新しいシェーダーリソースをクリックすると、シェーダーエディタが開きます。これで、最初のシェーダーを書き始める準備ができました。最初のキャンバスアイテム(CanvasItem)シェーダー¶Godotでは、すべてのシェーダーは、シェーダーのタイプを指定する行で始まります。すべてのコードは、この宣言の下に配置されます。この行は、どの組み込み変数と関数を提供するかをエンジンに伝えます。Godotでは、3つの関数をオーバーライドして、シェーダーの動作を制御できます。このチュートリアルでは、頂点(vertex)関数とフラグメント(fragment)関数の両方を使用してシェーダーを作成する方法を説明します。ライト(light)関数は、頂点関数やフラグメント関数よりもかなり複雑なので、ここでは説明しません。最初のフラグメント関数¶フラグメント関数は、Sprite内のすべてのピクセルに対して実行され、そのピクセルの色を決定します。これらはSpriteでカバーされるピクセルに制限されているため、Spriteの周囲にアウトラインを作成する場合などは使用できません。基本的なフラグメント関数は、すべてのピクセルに単一の色を割り当てること以外は何もしません。4つの数値でベクトルを構築するための省略表現です。<doc_vector_math>`を参照してください。フラグメント関数への入力変数であり、フラグメント関数からの最終出力です。Godotで最初のシェーダーの作成に成功しました。それでは、もっと複雑にしましょう。計算に使用できるフラグメント関数には多くの入力があります。UV座標は(知らないうちに)スプライトで指定され、メッシュの各部分のテクスチャから読み取る場所をシェーダーに伝えます。割り当てることができます。左から右、上から下で0~1の間で変化します。ビルトインを使用する¶スプライトの色を調整する場合、以下のコードのようにテクスチャの色を手動で調整することはできません。1.0;}デフォルトのフラグメント関数は、テクスチャから読み取り、それを表示します。デフォルトのフラグメント関数を上書きすると、その機能が失われるため、自分で実装する必要があります。関数を使用してテクスチャから読み取ります。使用してシェーダーでアクセスできる専用のテクスチャー変数があります。1.0}Uniform入力¶Uniform入力は、シェーダー全体で同一のデータを、シェーダーに渡すために使用されます。uniformを追加して、スプライトの青の量を変更します。blue;}これで、エディタからスプライトの青の量を変更できます。いうセクションが表示されるはずです。そのセクションを展開すると、宣言したuniformが表示されます。エディタで値を変更すると、シェーダーで指定したデフォルト値が上書きされます。関数を使用して、コードからuniformを変更できます。uniformを設定できます。blue_value)uniformの名前は文字列であることに注意してください。文字列は、スペルや大文字小文字を含め、シェーダーでの記述方法と正確に一致する必要があります。最初の頂点関数¶フラグメント関数ができたので、頂点関数を書きましょう。頂点関数を使用して、各頂点が画面のどこに出現するかを計算します。最初はモデルの頂点座標を指定しますが、実際にそれらの頂点を描画する場所を決定するために書き込むこともできます。(つまり、カメラ、ビューポート、または親ノードに関連しません)。追加することにより、頂点をオフセットできます。組み込み変数と組み合わせて、これを単純なアニメーションに使用できます。これらの変数に値を割り当てるためのより複雑な数学的戦略を考え出すのはあなた次第です。<https://thebookofshaders.com>`_などのより高度なシェーダーチュートリアルをいくつか見てください。