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
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 utiliseparity(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.