1 คะแนน โดย GN⁺ 2024-12-19 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

บทนำ

  • พื้นผิว XOR เป็นพื้นผิวที่สร้างได้อย่างง่ายดาย จึงมีประโยชน์สำหรับการทดสอบ
  • ในเดโมหรือเกมมีการใช้งานบ่อย จึงไม่ค่อยแนะนำ
  • มีประโยชน์เมื่ออยากทดสอบ texture mapper อย่างรวดเร็ว

พื้นผิว XOR

  • พื้นผิว XOR ถูกสร้างขึ้นโดยนำพิกัด x และ y ของพิกเซลปัจจุบันมาใช้การดำเนินการ XOR
  • ใน C++ สามารถนำไปใช้ได้ด้วยโอเปอเรเตอร์ ^
  • ขนาดพื้นผิวควรเป็นเลขยกกำลังของ 2 มิฉะนั้นคุณภาพจะลดลง
  • ค่าสีอยู่ในช่วง 0 ถึง 255 และถ้าขนาดพื้นผิวเล็กกว่า 256 ก็จะมืดลง
  • หากขนาดใหญ่กว่า 256 ต้องจำกัดค่าสีไว้ที่ 256

สี

  • สามารถลองทำพื้นผิว XOR ได้หลายสีโดยกำหนดค่า R, G, B ให้ต่างกัน
  • สามารถใช้ค่า XOR เป็นค่าสี hue ได้เช่นกัน โดยใช้ฟังก์ชัน HSVtoRGB

AND และ OR

  • โอเปอเรเตอร์ AND และ OR ก็สร้างพื้นผิวลักษณะคล้ายกันได้
  • โอเปอเรเตอร์ AND จะคืนค่า 1 ก็ต่อเมื่อทั้งสองบิตเป็น 1
  • โอเปอเรเตอร์ OR จะคืนค่า 1 เมื่อมีบิตใดบิตหนึ่งเป็น 1
  • พื้นผิว AND จะมืด ส่วนพื้นผิว OR จะสว่าง

บทสรุป

  • พื้นผิว XOR มีประโยชน์สำหรับการทดสอบ texture renderer แต่ไม่เหมาะกับงานศิลปะหรือเกม
  • สามารถใช้เป็นพื้นผิว 3D (x ^ y ^ z) เพื่อทดสอบตัวเรนเดอร์พื้นผิวดาวเคราะห์ได้

1 ความคิดเห็น

 
GN⁺ 2024-12-19
ความคิดเห็นจาก Hacker News
  • ผู้ใช้คนหนึ่งสร้างโปรแกรมสำหรับสร้างภาพโดยใช้สี 1 บิตด้วยภาษาแอสเซมบลี x86 โปรแกรมนี้ใช้ parity(x ^ y) แทน x ^ y และกำหนดสีต่างกันตามกรณีที่มีจำนวนบิต 1 เป็นจำนวนคู่หรือไม่ ส่งผลให้ได้เอฟเฟกต์การปูกระเบื้องที่เกือบซ้ำแต่ไม่ซ้ำกันอย่างสมบูรณ์ โปรแกรมถูกเขียนด้วย fasm ในปี 2019 และสร้างไฟล์ XPM2

  • ตอนเรียนมัธยมต้น ผู้ใช้คนหนึ่งทำได้แค่แอปพลิเคชัน CLI แบบง่าย ๆ แต่ได้เรียนรู้วิธีเปิดหน้าต่างและวาดกราฟิกผ่าน Lode's Computer Graphics Tutorial ทำให้สามารถสร้างเกมเรโทรอย่าง Pacman, Snake และ Space Invaders ขึ้นมาใหม่ได้ และเว็บไซต์นี้ก็ช่วยให้เริ่มต้นเส้นทางอาชีพด้านการพัฒนาซอฟต์แวร์ได้ตั้งแต่เนิ่น ๆ

  • เอฟเฟกต์คล้ายกันที่ทำให้เคลื่อนไหวได้ด้วยฟังก์ชันอย่าง color = (y == (x ^ t)) เรียกว่า "munching squares" ซึ่งถูกเขียนขึ้นสำหรับ PDP-1 ตั้งแต่ต้นทศวรรษ 1960 และมีคนเคยเห็นการสาธิตบน PDP-1 ของ Computer History Museum จอแสดงผลของ PDP-1 วาดได้เฉพาะจุดและไม่ได้ใช้บิตแมปเฟรมบัฟเฟอร์ แต่ใช้ประโยชน์จากการเรืองแสงค้างของฟอสเฟอร์บนหน้าจอเพื่อสร้าง XOR texture

  • มีความเห็นว่ามันชวนให้นึกถึง Hamming distance texture ผู้ใช้คนหนึ่งนำ texture นี้ไปทำเป็นผ้าควิลต์ และใช้สีรุ้งแขวนเป็นของตกแต่งบนผนัง

  • มีการแชร์ข้อเท็จจริงน่าสนใจว่าแต่ละจุดของ XOR texture คือจำนวนเต็มที่น้อยที่สุดซึ่งไม่ปรากฏอยู่ด้านบนหรือด้านซ้ายของจุดนั้น

  • เว็บไซต์ชื่อ Dwitter เป็นแพลตฟอร์มสำหรับตัวอย่าง JavaScript แบบบรรทัดเดียวที่ใช้ canvas โดยผู้ใช้สามารถแชร์ผลงานที่จำกัดไว้ที่ 140 ไบต์ได้

  • มีการแชร์วิธีแสดงแพตเทิร์นนี้ด้วยภาษา J และสามารถลองดูได้ใน playground ของซอฟต์แวร์ J

  • แม้เวลาจะผ่านไป 20 ปี ก็ยังมีข้อมูลที่เป็นประโยชน์อยู่มาก และมีคนแนะนำว่าเนื้อหานี้อาจเป็นประโยชน์โดยเฉพาะเวลาทำงานกับ shader

  • มีคนบอกว่าตนได้เรียนรู้ ray tracing ผ่านเว็บไซต์ของ Lode และยังคงชอบเลย์เอาต์ของเว็บไซต์นี้อยู่จนถึงทุกวันนี้