glTexImage2D()
とはどう違いglTexImage1D()
ますか?実際、1D テクスチャリングは想像できません。何かに 1D テクスチャを持たせるにはどうすればよいですか?
2 に答える
テクスチャは三角形に描く絵ではありません。テクスチャは、シェーダーがアクセスしてデータを取得できる値のルックアップ テーブルです。テクスチャは「三角形に描く絵」として使えますが、それだけにとどまらないでください。
1D テクスチャは、幅が 1 つのみのテクスチャです。線です。これは 1 次元の関数ですf(x)
。テクスチャ座標を 1 つ指定すると、値が得られます。
2D テクスチャは、幅と高さの 2 つの次元を持つテクスチャです。長方形です。これは 2 次元の関数ですf(x, y)
。2 つのテクスチャ座標を指定すると、値が得られます。
1D テクスチャは、任意の 1 次元関数の離散近似に使用できます。シェーダーで計算するのではなく、いくつかのフレネル鏡面反射係数を事前に計算し、1D テクスチャにアクセスしてそれらを取得することができます。1D テクスチャは、ガウス スペキュラー項を表すことができます。これは、著書のテクスチャリングに関する最初の章で行ったとおりです。
1D テクスチャは、任意の 1 次元関数にすることができます。
2D テクスチャには高さと幅の両方がありますが、1D テクスチャには高さが 1 ピクセルしかありません。これは基本的に、テクスチャがピクセルのラインであることを意味します。これらは、ある数値を色にマッピングしたり、色を別の色にマッピングしたりする場合によく使用されます (セル シェーディング手法のように)。