Missió al visor
Tria «Escacs», repeteix la textura dues vegades per direcció i combina-la amb el color base al $50\%$. Preveu quantes còpies veuràs en una cara abans de provar-ho.
INS Pere Borrell · Rubén Pineda · 2026–2027
Personalitza una caixa d’ordinador amb WebGL. Aprèn a carregar una imatge, situar-la sobre les cares i repetir-la sense canviar la geometria.
Navegador, paper i calculadora opcional. No cal instal·lar cap programa. Les imatges d’exemple es generen al navegador; pots completar tota la classe sense fitxers propis.
Imagina la mateixa caixa amb una superfície llisa i amb un dibuix de circuits. Ha canviat la forma? I el material real? Escriu una hipòtesi i comprova-la al visor.
Una textura és una imatge aplicada a una superfície. Un dibuix de metall no converteix l’objecte en metall ni en modifica la conductivitat. Aquest taller mostra aparença, no propietats físiques.
$u$ indica la posició horitzontal i $v$ la vertical. En aquest taller recorren l’interval de zero a u. El centre és:
$$u=\frac12=0{,}5\qquad v=\frac12=0{,}5$$Si repetim la imatge $r$ vegades en cada direcció, a cada cara hi ha $r^2$ còpies. Amb $r=2$:
$$2\cdot2=4\text{ còpies per cara}$$La barreja de textura es tria com un percentatge: $0\%$ mostra només el color base i $100\%$ mostra només la imatge, amb la il·luminació de l’escena.
El programa carrega els píxels a una textura de la GPU. Aquest fragment resumeix la càrrega; imatge és el Canvas quadrat ja preparat i gl el context WebGL. No és un programa complet.
// Crea la textura i carrega els píxels
const textura = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, textura);
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA,
gl.RGBA, gl.UNSIGNED_BYTE, imatge);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.REPEAT);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.REPEAT);Cada vèrtex també porta coordenades UV. El fragment shader llegeix la imatge amb texture2D:
vec3 imatge = texture2D(u_texture, v_uv * u_repeat).rgb;
vec3 color = mix(u_color, imatge, u_blend);
gl_FragColor = vec4(color * v_light, 1.0);La textura preparada té costats que són potències de dos. Això permet la repetició en WebGL 1. Una imatge de mida arbitrària necessita altres paràmetres o una preparació prèvia com la que fa aquest taller.
Preparant WebGL…
Arrossega per girar la caixa. També pots utilitzar els controls de càmera amb el teclat.
Fins a 5 MB i 4096 píxels per costat. Una entrada invàlida conserva la textura anterior.
Textura inicial preparada.
Tria «Escacs», repeteix la textura dues vegades per direcció i combina-la amb el color base al $50\%$. Preveu quantes còpies veuràs en una cara abans de provar-ho.
Reforç: observa només la cara frontal i compara una i dues repeticions. Ampliació: carrega una imatge rectangular, identifica els marges i explica com s’ha conservat la proporció.
Escriu com a decimal $u=\frac14$ i $v=\frac34$.
Una textura es repeteix tres vegades horitzontalment i tres verticalment. Quantes còpies hi ha per cara? Quantes en les sis cares?
Una imatge té $256\times256$ píxels. Quants píxels són? Si cada píxel RGBA ocupa quatre bytes sense compressió, quants bytes ocupen les dades? Aquesta quantitat no és la mida del PNG comprimit ni tota la memòria que usa el navegador.
Desa una vista i la textura. Escriu al paper tres passos per afegir la imatge. Després respon: canviar una textura de circuits per una de metall modifica la forma o la conductivitat real de la caixa?
L’explicació es revisa amb el docent.
Missió: escacs, dues repeticions per direcció i barreja al $50\%$. Hi ha $2\cdot2=4$ còpies per cara. La barreja usa $0{,}5$ com a factor; no indica que s’hagi pintat només mitja cara.
Tancament: carregar la imatge, comprovar la previsualització i ajustar el mapatge/repetició. Canvia l’aparença; la geometria i les propietats físiques reals no es modifiquen.
Evidències: vista PNG, textura preparada i càlculs individuals. Observar ús de fraccions, comprovació del recompte i explicació de textura versus material. Proposta de 55 minuts preparada el 06/10/2026: reforç de decimals i fraccions d’A1 i introducció a dades d’imatge vinculada a capacitat digital d’A2. «Classe 12» identifica material web; no acredita impartició ni modifica la programació o els pesos d’avaluació.
Referència tècnica: MDN · Textures amb WebGL, consultada el 06/10/2026. El taller utilitza codi i patrons propis.