[Gabriel Gambetta] รู้บางสิ่งเกี่ยวกับตัวติดตามรังสี โดยเป็นผู้เขียน Tiny Raytracer ซึ่งเป็นตัวติดตามรังสีที่เขียนด้วย JavaScript เพียง 912 ไบต์ เป็นเวลานานแล้ว มนุษย์ ผู้ประสบภัยจาก ZX Spectrum ที่ออกแบบโดยสหราชอาณาจักร จะสามารถรวมเรื่องรัก ๆ ใคร่ ๆ ทั้งสองเข้าด้วยกันได้หรือไม่? Tiny Raytracer สามารถใส่กับ ZX Spectrum ได้หรือไม่ ในขั้นพื้นฐาน? คำตอบคือ เห็นด้วย แม้ว่าสเป็คที่รักของเราจะมีข้อจำกัดมากมายก็ตาม.
เรื่องราวเริ่มต้นด้วยของ [Gabriel] อัลกอริธึม raytracer ของคอมพิวเตอร์กราฟิกตั้งแต่เริ่มต้น (CGFS) และฐานโค้ดที่มีอยู่ซึ่งถูกย้ายไปยังภาษา BASIC ที่จำกัดมากของ ZX Spectrum โดยใช้ VSCode สำหรับการแก้ไข BAS2TAP เพื่อสร้างไฟล์ภาพเทป (โดยพื้นฐานแล้วคือแทร็กเสียง) และดำเนินการด้วย ฟิวส์- เมื่อจัดเรียง toolchain แล้ว [Gabriel] จะเพิ่มโค้ดเพียงพอที่จะจัดการกับสมการการแยกรังสีของทรงกลม และเรนเดอร์ฉากสามทรงกลมเป็นภาพสีขนาด 32×22 พิกเซล โดยใช้เวลารันไทม์เพียง 15 นาที ผู้ประสบภัยจะจำได้ว่าสเปกตรัมมีอาร์เรย์แอตทริบิวต์บล็อก 32 × 22 (หรืออาร์เรย์สี) พร้อมค่าสีสองค่าสำหรับพิกเซลพื้นหน้าและพื้นหลัง แต่ละบล็อกแอตทริบิวต์ประกอบด้วย 8×8 พิกเซล ซึ่งแต่ละบล็อกอาจเป็นพื้นหน้า (เปิด) หรือพื้นหลัง (ปิด) ขั้นต่อไปคือการขยายโค้ดเพื่อรองรับพิกเซลและบล็อก โดยเพียงแค่ขยาย raytracing ให้เต็ม 256 ความละเอียด ×176 และสำหรับแต่ละบล็อก เพียงกำหนดสองสีที่พบบ่อยที่สุด และใช้กับสีเหล่านั้นสำหรับทั้งบล็อก มันใช้งานได้ในรูปแบบ 'การปะทะกันของแอตทริบิวต์' แบบสเปกตรัม
แต่ตอนนี้รันไทม์คือ 17 ชั่วโมง! ถัดไป จุดของการปรับแต่งประสิทธิภาพ โดยใช้แฮ็กพื้นฐานสเปกตรัมจำนวนหนึ่ง และการประมาณกราฟิกบางอย่าง เช่น การหล่อรังสีสำหรับแต่ละมุมพิกเซลของบล็อก และหากเหมือนกัน ให้ระบายสีส่วนที่เหลือทั้งหมด 60 พิกเซลให้เหมือนกันและเดินหน้าต่อไป . ความพยายามนี้ลดรันไทม์ลงเหลือสองชั่วโมง
ถัดไป [Gabriel] ละทิ้งโมเดลแสงแบบเรียบอย่างกล้าหาญ สร้างแบบจำลองแหล่งกำเนิดแสงเดียว และดึงเคล็ดลับเดียวที่เหลืออยู่ในโลกสเปกตรัมขาวดำออกมา นั่นก็คือการปรับค่าความเข้มของสีสำหรับแต่ละบล็อก โดยใช้วิธีง่ายๆ 8×8 สั่งลายไดเทอร์นั่นก็ไม่ได้ดูแย่เกินไป เมื่อพิจารณาทุกอย่างแล้ว หยุดอย่างรวดเร็วระหว่างทางที่จะเสร็จสิ้น เพิ่มเงา และเวลารันกลับเป็น 17 ชั่วโมง แต่ก็ถือว่าคุ้มค่า ชัดเจนว่าสิ่งนี้ได้รับการปรับให้เหมาะสมสำหรับฉากประเภทเดียว โดยที่ทรงกลมมีลักษณะเด่น แต่มีหลักการอยู่ และคิวบ์ก็อยู่ห่างออกไปเพียงไม่กี่บรรทัดของโค้ด มีผู้รับบ้างไหม?
Raytracing เป็นหนึ่งในงานที่สนุกแต่ซับซ้อนซึ่งผู้คนชอบที่จะยัดเยียดฮาร์ดแวร์ที่ไม่เหมาะสม เช่นเครื่องคิดเลขกราฟ TI-84Plus CE นี้และถ้ามันเข้าถึงได้ยากสักหน่อย นี่ก็เป็นเรื่องที่บ้าไม่แพ้กัน ทำงานใน Excel รุ่นเก่าธรรมดา.
- เนื้อหาที่ขับเคลื่อนด้วย SEO และการเผยแพร่ประชาสัมพันธ์ รับการขยายวันนี้
- PlatoData.Network Vertical Generative Ai เพิ่มพลังให้กับตัวเอง เข้าถึงได้ที่นี่.
- เพลโตไอสตรีม. Web3 อัจฉริยะ ขยายความรู้ เข้าถึงได้ที่นี่.
- เพลโตESG. คาร์บอน, คลีนเทค, พลังงาน, สิ่งแวดล้อม แสงอาทิตย์, การจัดการของเสีย. เข้าถึงได้ที่นี่.
- เพลโตสุขภาพ เทคโนโลยีชีวภาพและข่าวกรองการทดลองทางคลินิก เข้าถึงได้ที่นี่.
- ที่มา: https://hackaday.com/2024/01/26/a-zx-spectrum-raytracer-in-basic/
- :เป็น
- :ที่ไหน
- 1
- 15%
- 17
- 400
- 60
- a
- เกี่ยวกับเรา
- เข้า
- เพิ่ม
- ธุรกิจ
- ทั้งหมด
- an
- และ
- คำตอบ
- ใด
- เป็น
- แถว
- AS
- เสียง
- ผู้เขียน
- ไป
- กลับ
- พื้นหลัง
- ไม่ดี
- ฐาน
- ขั้นพื้นฐาน
- BE
- กำลัง
- ที่รัก
- บิต
- ปิดกั้น
- Blocks
- แต่
- by
- การหล่อ
- อย่างเห็นได้ชัด
- รหัส
- ฐานรหัส
- ร่วมกัน
- เสร็จสิ้น
- ซับซ้อน
- ถือว่า
- มี
- มุม
- ได้
- จัดการ
- กำหนด
- ท้องร่อง
- ไม่
- แต่ละ
- การแก้ไข
- ความพยายาม
- พอ
- พอ ๆ กัน
- สมการ
- เป็นหลัก
- อีเธอร์ (ETH)
- ดำเนินการ
- ที่มีอยู่
- แสดง
- ที่ขยาย
- แฟชั่น
- ลักษณะ
- มนุษย์
- สองสาม
- เนื้อไม่มีมัน
- พอดี
- แบน
- สำหรับ
- ราคาเริ่มต้นที่
- เต็ม
- สนุก
- สร้าง
- กราฟิก
- แฮ็ก
- มี
- จัดการ
- ยาก
- ฮาร์ดแวร์
- ชั่วโมง
- HTML
- HTTPS
- identiques
- if
- ภาพ
- in
- การตัด
- เข้าไป
- IT
- JavaScript
- เพียงแค่
- ชนิด
- รู้
- เบา
- โคมไฟ
- ถูก จำกัด
- เส้น
- ดู
- ความรัก
- หลาย
- ความกว้างสูงสุด
- Mers
- นาที
- แบบ
- โมเดล
- ขาวดำ
- ข้อมูลเพิ่มเติม
- มากที่สุด
- การย้าย
- สุทธิ
- ถัดไป
- ตอนนี้
- of
- ปิด
- เก่า
- on
- ONE
- เพียง
- ปรับให้เหมาะสม
- or
- ของเรา
- ออก
- คน
- การปฏิบัติ
- พิกเซล
- ที่ราบ
- เพลโต
- เพลโตดาต้าอินเทลลิเจนซ์
- เพลโตดาต้า
- อย่างเด่น
- ประถม
- หลักการ
- ดึง
- รวดเร็ว
- ทีเดียว
- RAY
- การติดตามรังสี
- ลดลง
- ที่เหลืออยู่
- จำ
- วาทกรรม
- ความละเอียด
- วิ่ง
- เดียวกัน
- ฉาก
- รอยขีดข่วน
- ง่าย
- ง่ายดาย
- เดียว
- บาง
- บางสิ่งบางอย่าง
- แหล่ง
- สเปกตรัม
- รูปทรงกลม
- จุด
- ระยะ
- เริ่มต้น
- หยุด
- เรื่องราว
- อย่างเช่น
- ผู้รับ
- การ
- เทป
- งาน
- ที่
- พื้นที่
- บล็อก
- แล้วก็
- ที่นั่น
- ล้อยางขัดเหล่านี้ติดตั้งบนแกน XNUMX (มม.) ผลิตภัณฑ์นี้ถูกผลิตในหลายรูปทรง และหลากหลายเบอร์ความแน่นหนาของปริมาณอนุภาคขัดของมัน จะทำให้ท่านได้รับประสิทธิภาพสูงในการขัดและการใช้งานที่ยาวนาน
- สิ่ง
- นี้
- เหล่านั้น
- เวลา
- ไปยัง
- เกินไป
- การติดตาม
- ลู่
- tweaking
- สอง
- ชนิด
- การใช้
- ความคุ้มค่า
- มาก
- คือ
- ทาง..
- ดี
- ที่
- ทั้งหมด
- วิกิพีเดีย
- จะ
- กับ
- โรงงาน
- โลก
- คุ้มค่า
- เขียน
- ลมทะเล