0

テクスチャを 1 つだけ使用して立方体にテクスチャを付けようとしていますが、各面にその一部のみをレンダリングしています。

これは、今のところ使用したいテクスチャです。

ここに画像の説明を入力

私の目標は、シェーダーを介してこれを行うことです。まだシェーダーの経験はありませんが、学ぶために最善を尽くしています..

これが私の現在のフラグメントシェーダーです:

uniform sampler2D tex0;

void main()
{
    vec2 pos = vec2(gl_TexCoord[0] / 4.0);
    vec3 test = texture2D(tex0,pos).rgb;
    gl_FragColor.rgb = test;
}

明らかにそれは始まりに過ぎず、すべての側面がテクスチャの同じ部分を使用しています。

私が現在どの面にいるのかを本当に判断できるかどうかはわかりませんが、頂点に関する情報をフラグメントシェーダーに渡して、それに従って行動できるのではないかと思いましたか?

PS: 立方体のサイズが変更された場合、すべての面のテクスチャがストレッチではなく繰り返される機能が必要なため、最初にこれを選択しました

4

1 に答える 1