1 points par GN⁺ 2024-12-19 | 1 commentaires | Partager sur WhatsApp

Introduction

  • Les textures XOR sont des textures faciles à générer et utiles pour les tests.
  • Elles sont beaucoup utilisées dans les démos ou les jeux, ce qui fait qu’elles ne sont pas recommandées.
  • Elles sont utiles pour tester rapidement un texture mapper.

Texture XOR

  • Une texture XOR est générée en appliquant l’opération XOR aux coordonnées x et y du pixel courant.
  • En C++, cela peut être implémenté avec l’opérateur ^.
  • La taille de la texture doit être une puissance de deux. Sinon, la qualité se dégrade.
  • Les valeurs de couleur vont de 0 à 255, et si la taille de la texture est inférieure à 256, elle devient plus sombre.
  • Si la taille est supérieure à 256, il faut limiter les couleurs à 256.

Couleur

  • Il est possible d’essayer différentes textures XOR colorées en définissant différemment les valeurs R, G et B.
  • On peut aussi utiliser la fonction HSVtoRGB en prenant la valeur XOR comme teinte.

AND et OR

  • Les opérateurs AND et OR génèrent aussi des textures similaires.
  • L’opérateur AND ne renvoie 1 que lorsque les deux bits valent 1.
  • L’opérateur OR renvoie 1 si au moins l’un des deux bits vaut 1.
  • Les textures AND sont sombres, tandis que les textures OR sont lumineuses.

Conclusion

  • Les textures XOR sont utiles pour tester un moteur de rendu de textures, mais ne conviennent ni à l’art ni aux jeux.
  • Elles peuvent aussi être utilisées comme textures 3D (x ^ y ^ z) pour tester un moteur de rendu de textures planétaires.

1 commentaires

 
GN⁺ 2024-12-19
Avis Hacker News
  • Un utilisateur a créé en x86 assembleur un programme qui génère des images en utilisant une couleur sur 1 bit. Au lieu d’utiliser x ^ y, il utilise parity(x ^ y) afin d’appliquer une couleur différente selon qu’il y a un nombre pair de bits à 1 ou non. Cela produit un effet de pavage presque répétitif, mais pas parfaitement. Le programme a été écrit en 2019 avec fasm et génère des fichiers XPM2.

  • Au collège, un utilisateur ne savait créer que de simples applications CLI, mais a appris à ouvrir une fenêtre et à dessiner des graphiques grâce au Computer Graphics Tutorial de Lode. Cela lui a permis de recréer des jeux rétro comme Pacman, Snake et Space Invaders. Grâce à ce site, il a pu commencer très tôt une carrière dans le développement logiciel.

  • Un effet similaire animé avec une fonction comme color = (y == (x ^ t)) est appelé « munching squares ». Il a été écrit au début des années 1960 pour le PDP-1, et quelqu’un dit en avoir vu une démonstration sur le PDP-1 du Computer History Museum. L’affichage du PDP-1 ne peut tracer que des points et n’utilise pas de framebuffer bitmap, mais exploite la longue persistance du phosphore de l’écran pour produire une texture XOR.

  • Certains disent que cela rappelle une texture de distance de Hamming. Un utilisateur a même réalisé un quilt à partir de cette texture et l’a accroché au mur comme décoration en utilisant des couleurs arc-en-ciel.

  • Un fait amusant est partagé : chaque point d’une texture XOR est le plus petit entier qui n’apparaît ni au-dessus ni à gauche de lui.

  • Le site Dwitter est une plateforme pour des exemples JavaScript d’une seule ligne utilisant un canvas, où les utilisateurs peuvent partager des créations limitées à 140 octets.

  • Une personne a partagé une manière d’exprimer ce motif en langage J. On peut le voir dans le playground du logiciel J.

  • Même 20 ans plus tard, il y a encore beaucoup d’informations utiles, et cela pourrait être particulièrement pratique pour travailler sur des shaders.

  • Quelqu’un mentionne avoir appris le ray tracing grâce au site de Lode et apprécier encore aujourd’hui sa mise en page.