Game Maker Language リファレンス > 組み込み関数 用途別 > シェーダー > shader_set_uniform_f()
指定のシェーダー定数に新しい値を設定します(浮動小数)
shader_set_uniform_f(handle, value1 [, value2, value3, value4]);
この関数を使用すると、シェーダー定数の値を設定することができます。この関数を呼び出す前にshader_get_uniform()であらかじめハンドルを取得しておく必要があります。たとえばvec2の値を設定するには、この関数に2つの引数を渡す必要があります。
32ビットカラー値を扱う場合には、上記の規則の例外となります。その際には最大8個の32ビットカラー値をシェーダーに渡すことができ、それらは自動的に0〜1のvec4値に自動的に変換されます。しかしこのためには単一色をin_Color0, in_Color1, ... in_Color7というように設定する必要があります。 例は以下のようになります。
//Single colour attribute vec2 in_Position; attribute vec4 in_Colour; attribute vec2 in_TextureCoord; //Multiple colours attribute vec2 in_Position; attribute vec4 in_Colour0; attribute vec4 in_Colour1; attribute vec2 in_TextureCoord;
注意点としては、圧縮された法線などを扱いたい場合には、4バイトの色の形式を使用して、"in_Color"形式を使用する必要があります