Introducción
- La textura XOR es una textura que puede generarse de forma sencilla y es útil para pruebas.
- Se usa mucho en demos o juegos, por lo que no se recomienda.
- Es útil para probar rápidamente un mapeador de texturas.
Textura XOR
- La textura XOR se genera aplicando la operación XOR a las coordenadas x e y del píxel actual.
- Puede implementarse en C++ usando el operador '^'.
- El tamaño de la textura debe ser una potencia de 2. De lo contrario, la calidad se degrada.
- Los valores de color están entre 0 y 255, y si el tamaño de la textura es menor que 256, se verá más oscura.
- Si el tamaño es mayor que 256, hay que limitar el color a 256.
Color
- Puedes probar texturas XOR de varios colores configurando de forma distinta los valores R, G y B.
- También puedes usar la función HSVtoRGB para usar el valor XOR como tono.
AND y OR
- Los operadores AND y OR también generan texturas similares.
- El operador AND devuelve 1 solo cuando ambos bits son 1.
- El operador OR devuelve 1 cuando al menos uno de los dos bits es 1.
- La textura AND es oscura y la textura OR es brillante.
Conclusión
- La textura XOR es útil para probar renderizadores de texturas, pero no es adecuada para arte ni juegos.
- Puede usarse como textura 3D (
x ^ y ^ z) para probar un renderizador de texturas planetarias.
1 comentarios
Comentarios de Hacker News
Un usuario hizo un programa en ensamblador x86 para generar imágenes usando color de 1 bit. En vez de usar
x ^ y, usaparity(x ^ y)para aplicar un color distinto cuando hay una cantidad par de bits en 1 y cuando no. Esto produce un efecto de mosaico casi repetitivo, pero no perfecto. El programa fue escrito en 2019 con fasm y genera archivos XPM2.En la secundaria, un usuario solo podía hacer aplicaciones CLI simples, pero gracias al Computer Graphics Tutorial de Lode aprendió a abrir una ventana y dibujar gráficos. Eso le permitió recrear juegos retro como Pacman, Snake y Space Invaders. Gracias a ese sitio pudo empezar temprano su carrera en desarrollo de software.
Los efectos similares animados con una función como
color = (y == (x ^ t))se llaman "munching squares". Esto fue escrito para la PDP-1 a inicios de los años 60, y alguien comentó que lo vio demostrado en la PDP-1 del Computer History Museum. La pantalla de la PDP-1 solo puede dibujar puntos y no usa un framebuffer bitmap, pero aprovecha la larga persistencia del fósforo en la pantalla para generar texturas XOR.Hay quien comenta que le recuerda a una textura de distancia de Hamming. Un usuario hizo una colcha usando esta textura y la colgó en la pared como decoración usando colores de arcoíris.
Se compartió un dato curioso: cada punto de la textura XOR es el entero más pequeño que no aparece arriba ni a la izquierda de él.
Dwitter es un sitio web para ejemplos de JavaScript de una sola línea usando canvas, donde los usuarios pueden compartir creaciones limitadas a 140 bytes.
También se compartió cómo expresar este patrón en el lenguaje J. Se puede ver en el playground del software J.
Incluso después de 20 años, sigue habiendo mucha información útil, y recomiendan este material especialmente para trabajo con shaders.
También mencionan que aprendieron ray tracing a través del sitio web de Lode y que todavía les gusta su diseño.