Question

J'ai les extraits de code suivant:

    ctx.texParameteri(ctx.TEXTURE_2D, ctx.TEXTURE_MAG_FILTER, ctx.LINEAR);      
    ctx.texParameteri(ctx.TEXTURE_2D, ctx.TEXTURE_MIN_FILTER, ctx.LINEAR);

    ctx.texParameteri(ctx.TEXTURE_2D, ctx.TEXTURE_WRAP_S, ctx.REPEAT);
    ctx.texParameteri(ctx.TEXTURE_2D, ctx.TEXTURE_WRAP_T, ctx.REPEAT);

Ma dimension de texture est 256x256 .

1 - mon polygone

    const x0 = 100;
const x1 = -x0;
const z0 = x0;
const z1 = -z0;
var vertices = new Float32Array(
    [  x0, 0, z1,  x1, 0, z1,  x1, 0, z0,   x0, 0, z0]);

Le résultat:. La texture est tendue si je perds le détail

2 - mon polygone (notez que c'est un polygone beaucoup plus petite que option 1)

const x0 = 5;
const x1 = -x0;
const z0 = x0;
const z1 = -z0;
var vertices = new Float32Array(
    [  x0, 0, z1,  x1, 0, z1,  x1, 0, z0,   x0, 0, z0]);

Le résultat:. Je peux voir les détails de ma texture

Ma compréhension est que la possibilité REPEAT (TEXTURE_WRAP_S et TEXTURE_WRAP_T) me donner les détails même dans l'option 1. Pourquoi est la texture tendue dans l'option 1? Est-ce que je méprendre?

est en cours d'exécution WebGL Surchauffe Chrome Canary.

Qu'est-ce que je fait de mal?

Merci d'avance pour votre aide.

Était-ce utile?

La solution

J'ai changé de coordonnées de texture à ce qui suit:

Code de:    var texCoords = new Float32Array ( // [1, 1, 0, 1, 0, 0, 1, 0]
            [100, 100, -100, 100, -100, -100, 100, -100]
       );

Il correspond au grand polygone de coordonnées. Elle montre les détails de la petite texture originale sur le grand polygone.

S'il vous plaît voir Khronos WebGL Forum pour plus de détails

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top