texture inattendue tendue
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.
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