1P by neo 1달전 | ★ favorite | 댓글 1개

소개

  • XOR 텍스처는 간단하게 생성할 수 있는 텍스처로, 테스트 목적으로 유용함.
  • 데모나 게임에서는 많이 사용되어 추천되지 않음.
  • 텍스처 매퍼를 빠르게 테스트할 때 유용함.

XOR 텍스처

  • XOR 텍스처는 현재 픽셀의 x와 y 좌표를 XOR 연산하여 생성됨.
  • C++에서 '^' 연산자를 사용하여 구현 가능함.
  • 텍스처 크기는 2의 제곱수여야 함. 그렇지 않으면 품질이 떨어짐.
  • 색상 값은 0에서 255 사이이며, 텍스처 크기가 256보다 작으면 어두워짐.
  • 크기가 256보다 크면 색상을 256으로 제한해야 함.

색상

  • R, G, B 값을 다르게 설정하여 다양한 색상의 XOR 텍스처를 시도할 수 있음.
  • HSVtoRGB 함수를 사용하여 색조로 XOR 값을 사용할 수도 있음.

AND와 OR

  • AND와 OR 연산자도 유사한 텍스처를 생성함.
  • AND 연산자는 두 비트가 모두 1일 때만 1을 반환함.
  • OR 연산자는 두 비트 중 하나라도 1일 때 1을 반환함.
  • AND 텍스처는 어둡고, OR 텍스처는 밝음.

결론

  • XOR 텍스처는 텍스처 렌더러 테스트에 유용하지만, 예술이나 게임에는 적합하지 않음.
  • 3D 텍스처(x ^ y ^ z)로 사용하여 행성 텍스처 렌더러를 테스트할 수 있음.
Hacker News 의견
  • 한 사용자는 x86 어셈블리어로 1비트 색상을 사용하여 이미지를 생성하는 프로그램을 만들었음. 이 프로그램은 x ^ y 대신 parity(x ^ y)를 사용하여 짝수 개의 1 비트가 있을 때와 그렇지 않을 때 다른 색상을 적용함. 이로 인해 거의 반복되지만 완벽하지 않은 타일링 효과를 얻었음. 프로그램은 2019년에 fasm으로 작성되었으며 XPM2 파일을 생성함.

  • 중학교 시절, 한 사용자는 간단한 CLI 애플리케이션만 만들 수 있었으나 Lode의 Computer Graphics Tutorial을 통해 창을 열고 그래픽을 그리는 방법을 배웠음. 이를 통해 Pacman, Snake, Space Invaders 같은 레트로 게임을 재현할 수 있었음. 이 사이트 덕분에 소프트웨어 개발 경력을 일찍 시작할 수 있었음.

  • color = (y == (x ^ t))와 같은 함수로 애니메이션화된 유사한 효과는 "munching squares"라고 불림. 이는 1960년대 초 PDP-1을 위해 작성되었으며, Computer History Museum의 PDP-1에서 시연된 것을 본 적이 있음. PDP-1의 디스플레이는 점을 그릴 수만 있고 비트맵 프레임버퍼를 사용하지 않지만, 화면의 인광체의 긴 지속성을 활용하여 XOR 텍스처를 생성함.

  • Hamming 거리 텍스처를 떠올리게 한다는 의견이 있음. 한 사용자는 이 텍스처를 사용하여 퀼트를 만들었으며, 무지개 색상을 사용하여 벽에 장식으로 걸어두었음.

  • XOR 텍스처의 각 점은 그 위나 왼쪽에 나타나지 않는 가장 작은 정수라는 재미있는 사실을 공유함.

  • Dwitter라는 웹사이트는 캔버스를 사용하는 한 줄의 자바스크립트 예제를 위한 플랫폼으로, 사용자는 140바이트로 제한된 창작물을 공유할 수 있음.

  • J 언어로 이 패턴을 표현하는 방법을 공유함. J 소프트웨어의 플레이그라운드에서 이를 확인할 수 있음.

  • 20년이 지난 지금도 여전히 유용한 정보가 많으며, 특히 셰이더 작업을 할 때 유용할 수 있다고 추천함.

  • Lode의 웹사이트를 통해 레이 트레이싱을 배우게 되었으며, 이 사이트의 레이아웃을 여전히 좋아한다고 언급함.