Inaspettato tessitura allungata
Domanda
Ho i seguenti frammenti di codice:
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);
La mia dimensione trama è 256x256 .
1 - il mio poligono
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]);
Il risultato:. La texture è allungata così perdo dettaglio
2 - il mio poligono (si noti che questo è un poligono molto più piccolo di opzione 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]);
Il risultato:. Riesco a vedere i dettagli della mia consistenza
La mia comprensione è che il REPEAT (TEXTURE_WRAP_S e TEXTURE_WRAP_T) opzione mi darà i dettagli anche in Opzione 1. Perché la trama tesa in opzione 1? Ti ho fraintendere?
Questa è in esecuzione su WebGL costruzione Chrome Canary.
Che cosa ho fatto di sbagliato?
Grazie in anticipo per il vostro aiuto.
Soluzione
Ho cambiato coordinare al seguente mio texture:
Codice:
var = texCoords nuova Float32Array (
// [1, 1, 0, 1, 0, 0, 1, 0]
[100, 100, -100, 100, -100, -100, 100, -100]
);
Si abbina la coordinata grande poligono. Essa mostra i dettagli del piccolo trama originale sul grande poligono.
Si prega di consultare Khronos WebGL Forum per una discussione più dettagliata ??p>