Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
wiki2:ogl [2015/12/06 16:27] alfred [Transformaciones] |
wiki2:ogl [2020/05/09 09:25] (actual) |
||
|---|---|---|---|
| Línea 157: | Línea 157: | ||
| </code> | </code> | ||
| ===== Texturas ===== | ===== Texturas ===== | ||
| + | |||
| + | ==== Básico ==== | ||
| Creating textures is very similar to creating vertex buffers : Create a texture, bind it, fill it, and configure it. | Creating textures is very similar to creating vertex buffers : Create a texture, bind it, fill it, and configure it. | ||
| Línea 179: | Línea 181: | ||
| glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); | glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); | ||
| </code> | </code> | ||
| + | ==== Animar texturas ==== | ||
| + | === Usando el fragment shader === | ||
| + | |||
| + | * {{:wiki2:ogl:animating.textures.zip|}} | ||
| + | |||
| + | ==== Renderizar sobre textura ==== | ||
| + | |||
| + | Para esto se usa un FBO. Básicamente creas el FBO, reemplazas el buffer donde renderizas por el del FBO creado y dibujas, luego enlazas otra vez el buffer por defecto y en el FBO tienes la textura. | ||
| + | |||
| + | Recuerda indicar el tamaño de píxels, haber creado anteriormente de las texturas que vas a usar en el fbo y tener el shader program activo. | ||
| + | |||
| + | :!: Recuerda que para OpenGL el 0,0 está en la esquina de abajo a la izquierda. Si el sistema que usas cambia, es probable que **la textura fbo aparezca volteada**. | ||
| + | * {{:wiki2:ogl:fbo.zip|}} | ||
| ===== Transformaciones ===== | ===== Transformaciones ===== | ||
| Línea 216: | Línea 231: | ||
| for (int i = 0; i < 16; i++) | for (int i = 0; i < 16; i++) | ||
| modelMatrix[i] = temp[i]; | modelMatrix[i] = temp[i]; | ||
| - | </java> | + | </code> |
| + | * {{:wiki2:ogl:nested.transforms.zip|}} | ||
| ===== Lenguaje GLSL ===== | ===== Lenguaje GLSL ===== | ||
| Línea 334: | Línea 350: | ||
| </code> | </code> | ||
| ===== Shaders en general ===== | ===== Shaders en general ===== | ||
| + | |||
| + | * :!: El optimizador de GLSL borrará todas las variables que no uses. | ||
| ===== Vertex Shader ===== | ===== Vertex Shader ===== | ||
| ==== Cambiar el tamaño de los puntos dibujados ==== | ==== Cambiar el tamaño de los puntos dibujados ==== | ||
| Línea 345: | Línea 363: | ||
| </code> | </code> | ||
| + | ==== Hacer el color algo más oscuro ==== | ||
| + | <code> | ||
| + | gl_FragColor = texture2D(u_TextureUnit, v_TextureCoordinates) * vec4(0.5, 0.5, 0.5, 1); | ||
| + | </code> | ||
| ===== Otros ===== | ===== Otros ===== | ||
| ==== Código ejemplo iOS ==== | ==== Código ejemplo iOS ==== | ||