1 puntos por GN⁺ 2024-12-19 | 1 comentarios | Compartir por WhatsApp

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

 
GN⁺ 2024-12-19
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, usa parity(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.