Introdução
- A textura XOR é uma textura que pode ser gerada de forma simples e é útil para fins de teste.
- Não é muito usada em demos ou jogos, portanto não é recomendada.
- É útil para testar rapidamente um mapeador de texturas.
Textura XOR
- A textura XOR é gerada aplicando a operação XOR às coordenadas x e y do pixel atual.
- É possível implementá-la em C++ usando o operador
^.
- O tamanho da textura deve ser uma potência de 2. Caso contrário, a qualidade piora.
- Os valores de cor ficam entre 0 e 255, e se o tamanho da textura for menor que 256 ela ficará mais escura.
- Se o tamanho for maior que 256, é preciso limitar as cores a 256.
Cores
- É possível definir valores diferentes para R, G e B e testar várias cores de textura XOR.
- Também é possível usar o valor XOR como matiz com a função HSVtoRGB.
AND e OR
- Os operadores AND e OR também geram texturas semelhantes.
- O operador AND retorna 1 apenas quando os dois bits são 1.
- O operador OR retorna 1 quando pelo menos um dos dois bits é 1.
- A textura AND é escura, e a textura OR é clara.
Conclusão
- A textura XOR é útil para testar renderizadores de textura, mas não é adequada para arte ou jogos.
- É possível usá-la como textura 3D (
x ^ y ^ z) para testar um renderizador de textura planetária.
1 comentários
Comentários do Hacker News
Um usuário criou um programa em assembly x86 para gerar imagens usando cores de 1 bit. Em vez de
x ^ y, o programa usaparity(x ^ y)para aplicar cores diferentes quando há um número par de bits 1 e quando não há. Isso produz um efeito de mosaico quase repetitivo, mas não perfeito. O programa foi escrito em 2019 com fasm e gera arquivos XPM2.No ensino fundamental II, um usuário só conseguia criar aplicações CLI simples, mas aprendeu a abrir janelas e desenhar gráficos por meio do Lode's Computer Graphics Tutorial. Com isso, conseguiu recriar jogos retrô como Pacman, Snake e Space Invaders. Graças a esse site, pôde começar cedo sua carreira em desenvolvimento de software.
Efeitos semelhantes animados com funções como
color = (y == (x ^ t))são chamados de "munching squares". Isso foi escrito para o PDP-1 no início dos anos 1960, e alguém comentou já ter visto uma demonstração no PDP-1 do Computer History Museum. A tela do PDP-1 só consegue desenhar pontos e não usa um framebuffer bitmap, mas aproveita a longa persistência do fósforo da tela para gerar texturas XOR.Houve um comentário de que isso lembra texturas de distância de Hamming. Um usuário fez uma colcha usando essa textura e a pendurou na parede como decoração, com cores de arco-íris.
Foi compartilhado um fato curioso: cada ponto da textura XOR é o menor inteiro que não aparece acima dele nem à sua esquerda.
O site Dwitter é uma plataforma para exemplos de JavaScript de uma linha usando canvas, onde usuários podem compartilhar criações limitadas a 140 bytes.
Também foi compartilhada uma forma de expressar esse padrão na linguagem J. É possível ver isso no playground do software J.
Mesmo após 20 anos, ainda há muita informação útil, especialmente para trabalho com shaders, segundo uma recomendação.
Também foi mencionado que alguém aprendeu ray tracing pelo site do Lode e ainda gosta do layout desse site.