3

glTexImage2D()とはどう違いglTexImage1D()ますか?実際、1D テクスチャリングは想像できません。何かに 1D テクスチャを持たせるにはどうすればよいですか?

4

2 に答える 2

8

テクスチャは三角形に描く絵ではありません。テクスチャは、シェーダーがアクセスしてデータを取得できる値のルックアップ テーブルです。テクスチャは「三​​角形に描く絵」として使えますが、それだけにとどまらないでください。

1D テクスチャは、幅が 1 つのみのテクスチャです。線です。これは 1 次元の関数ですf(x)。テクスチャ座標を 1 つ指定すると、値が得られます。

2D テクスチャは、幅と高さの 2 つの次元を持つテクスチャです。長方形です。これは 2 次元の関数ですf(x, y)。2 つのテクスチャ座標を指定すると、値が得られます。

1D テクスチャは、任意の 1 次元関数の離散近似に使用できます。シェーダーで計算するのではなく、いくつかのフレネル鏡面反射係数を事前に計算し、1D テクスチャにアクセスしてそれらを取得することができます。1D テクスチャは、ガウス スペキュラー項を表すことができます。これは、著書のテクスチャリングに関する最初の章で行ったとおりです。

1D テクスチャは、任意の 1 次元関数にすることができます。

于 2013-03-28T23:20:30.650 に答える
2

2D テクスチャには高さと幅の両方がありますが、1D テクスチャには高さが 1 ピクセルしかありません。これは基本的に、テクスチャがピクセルのラインであることを意味します。これらは、ある数値を色にマッピングしたり、色を別の色にマッピングしたりする場合によく使用されます (セル シェーディング手法のように)。

于 2013-03-28T12:52:15.440 に答える