ทำไมไทล์ 16 × 16 พิกเซลถึงเป็นธรรมดา


9

มีเหตุผลที่ดีสำหรับกระเบื้อง (เช่นMinecraft ) เป็น 16x16 หรือไม่?

ฉันมีความรู้สึกว่ามันเกี่ยวข้องกับเลขฐานสองเพราะ 16 อยู่10000ในเลขฐานสอง แต่นั่นอาจเป็นเรื่องบังเอิญ

ฉันต้องการที่จะรู้ว่าเป็นเพราะฉันต้องการที่จะสร้างเกมที่มีการสร้างภูมิประเทศและฉันต้องการที่จะรู้ว่ากระเบื้องของฉันควรจะใหญ่แค่ไหนหรือถ้ามันไม่สำคัญ


1
ฉันไม่แน่ใจจริงๆว่ามันมาจาก "minecraft chunks" ถึง "pixel tiles" แต่ดูเหมือนว่าคุณมีคำตอบ นอกจากนี้ยังอาจซ้ำซ้อนสำหรับคำถามอัน: gamedev.stackexchange.com/questions/46955/ …และสำหรับคำถามใหม่: gamedev.stackexchange.com/questions/26187/ …
MichaelHouse

คำตอบ:


9

ไทล์และไอคอน (แม้ใน UIs เช่นระบบหน้าต่าง) มักจะมีขนาดเช่น 16x16 หรือ 24x24 เพื่อให้ง่ายต่อการปรับเปลี่ยนไทล์ บ่อยครั้งที่ขนาดของกระเบื้องนั้นมีค่าเป็น 8 เท่าเพราะเหตุผลที่แตกต่างกัน

  • มันค่อนข้างง่ายที่จะย่อขนาดไทล์ด้วยขนาด 32x32 ถึง 16x16 โดยเพียงแค่ใส่ 4 พิกเซลเข้าด้วยกัน (เช่นสร้างค่ามัธยฐาน / ค่าเฉลี่ยของ 4 พิกเซล) หากคุณมีขนาดกระเบื้องเหมือน17x17คุณมีปัญหาในการหดขนาด

  • ความละเอียดหน้าจอส่วนใหญ่นั้นเป็น 8 เท่าเช่น 1920x1200 (การแก้ไข HD ทั่วไปสำหรับจอภาพ) นำไปสู่สนามเกมที่มีไทล์ 120x75 (เมื่อใช้ขนาดไทล์ 16x16)

  • การคำนวณที่มี 2 ไทล์ (เช่นการซ้อนทับภูมิประเทศด้วยตัวอักษร) นั้นง่ายกว่าในภาษาการเขียนโปรแกรมหากขนาดของไทล์เป็นพหุคูณของ 8 ซึ่งมักจะมีการปรับแต่งให้เหมาะสมสำหรับขนาดไทล์ดังกล่าว

  • เหตุผลทางประวัติศาสตร์: เอนจิ้นสไปรต์รุ่นก่อนหน้า (ในคอมพิวเตอร์ที่บ้านและเครื่องเล่นเกม) มีข้อ จำกัด ในการบังคับให้ไทล์เป็น 8x8 หรือ 16x16 (เพิ่มหลังจากความคิดเห็นจาก Code Clown)

TL; DR ง่ายต่อการจัดการขนาดของกระเบื้องที่เป็นมัลติพอยท์ 8

ดังนั้นจึงมีหลายเหตุผลที่จะใช้ขนาดไทล์เช่น 16x16, 24x24 หรือ 32x32


การเป็นกำลังของสองสิ่งนั้นเป็นสิ่งหนึ่ง แต่ยังมีข้อ จำกัด ทางเทคนิคเกี่ยวกับแพลตฟอร์มเก่าและเครื่องยนต์สไปรต์ที่ชื่นชอบขนาดของกระเบื้องเหล่านั้น
aggsol

1
ตัวอย่างเช่นคอนโซล NES ใช้ไทล์ของ 8x8 ดังนั้นขนาดของวัตถุสไปรท์และตัวละครสไปรท์มักจะทวีคูณเป็น 8 (เช่นสไปรต์สำหรับ Mario ใน SMB1 คือสไปรต์ 16x32 ซึ่งประกอบด้วยแปด 8x8 แผ่น)
Jelle van Campen

4
ข้อได้เปรียบเพิ่มเติมของขนาด power-of-2 (8, 16, 32) ในเกมที่ใช้กระเบื้อง 2 มิติคือการแปลงระหว่างพิกัดพิกเซลและพิกัดของกระเบื้องสามารถทำได้ด้วยการเลื่อนระดับบิตเดียว (เลื่อนไปทางขวาเพื่อให้ได้ไพ่ภายใต้ที่กำหนด พิกเซลเลื่อนไปทางซ้ายเพื่อรับตำแหน่งพิกเซลของไทล์) ในเกม 3 มิติขนาดกำลังของสองอนุญาตการทำแผนที่ซึ่งช่วยปรับปรุงรูปลักษณ์ของพื้นผิวที่ห่างไกล / เอียงและปรับปรุงประสิทธิภาพแคชเนื้อ GPU
DMGregory
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.