ฉันจะย่อขนาดศิลปะพิกเซลได้อย่างไร


14

มีความอุดมสมบูรณ์ของขั้นตอนวิธีการที่จะไต่ขึ้นศิลปะพิกเซล (ฉันชอบhqxส่วนตัว.) แต่จะมีผู้ใดขั้นตอนวิธีการที่โดดเด่นขนาดมันลง ? เกมของฉันออกแบบมาให้ทำงานด้วยความละเอียด1280x720แต่ถ้าเล่นด้วยความละเอียดต่ำกว่าฉันยังต้องการให้มันดูดี

การอภิปรายพิกเซลของศิลปะส่วนใหญ่อยู่ที่รอบ ๆ320x200หรือ640x480ยกระดับเพื่อใช้ในคอนโซลอีมูเลเตอร์ แต่ฉันสงสัยว่าเกม 2D ที่ทันสมัยเช่นMonkey Island Remakeสามารถดูดีได้อย่างไรเมื่อความละเอียดต่ำลง?

แน่นอนว่าไม่สนใจตัวเลือกในการมีเนื้อหาหลายเวอร์ชัน (เช่นการทำแผนที่ )


การแม็พไม่ต้องการเนื้อหาหลายเวอร์ชัน สามารถทำได้ที่เวลาในการโหลดเนื้อหาโดยอัตโนมัติโดย OpenGL หรือ DirectX นั่นจะเป็นไปตามเป้าหมายของคุณหรือไม่
เซทแบททิน

@SethBattin ฉันไม่แน่ใจ ฉันกำลังคิดเกี่ยวกับการใช้งานเกมที่สร้างขึ้นสำหรับ 1280x720 เช่น 1024x576 OpenGL และ DirectX ใช้อะไรเพื่อขายต่อถ้าฉันให้ภาพที่มีขนาด 128x96 และควรจะแสดงเป็น 102x76 (ซึ่งเป็นปัญหาการปัดเศษเนื่องจากควรเป็น 102.4x76.8 พิกเซล)
Michael Stum

การทำแผนที่ภาพเบลอมาก คุณคงไม่อยากให้ pixelart
Kromster พูดว่าสนับสนุน Monica

5
เพียงแค่ FYI: Monkey Island Remake ไม่จำเป็นต้องลดขนาด เกมวิ่งบน EGA และมีขนาด 320x200 พิกเซลที่มีประสิทธิภาพ ไม่จำเป็นต้องสร้างเวอร์ชันที่ลดขนาดลงสำหรับอุปกรณ์มือถือเนื่องจากมีขนาดเล็กกว่าความละเอียดที่อุปกรณ์เหล่านี้มีอยู่ในปัจจุบัน
bummzack

2
ศิลปะพิกเซลของคุณมีลักษณะอย่างไร คุณกำลังขอให้เราตอบเป็นคนตาบอด
aaaaaaaaaaaa

คำตอบ:


14

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

ในความคิดของฉันมีหลายสิ่งที่คุณสามารถทำได้ (บางอย่างเป็นพิเศษ แต่คนอื่นไม่ได้)

  1. กำหนดความละเอียดขั้นต่ำและมีเพียง upscale (ทุกอย่าง) ในจำนวนเต็มกับเพื่อนบ้านที่ใกล้ที่สุด ด้วยวิธีนี้คุณสามารถรักษาความรู้สึกของศิลปะพิกเซล ฉันไม่คิดว่าการลดขนาดเป็นความคิดที่ดีเพราะคุณจะสูญเสียรายละเอียดและจุดประสงค์ทั้งหมดของการใช้งานศิลปะพิกเซลที่สร้างขึ้นอย่างพิถีพิถันจะพ่ายแพ้ หากความละเอียดที่สนับสนุนขั้นต่ำของคุณเล็กเกินไปสำหรับสไปรต์ของคุณให้เปลี่ยนวิธีแก้ปัญหาที่สนับสนุนขั้นต่ำหรือวาดสินทรัพย์ทั้งหมดใหม่เพื่อรองรับความละเอียดขั้นต่ำนี้

  2. เมื่อคุณพบกับความละเอียดหรืออัตราส่วนภาพที่ไม่เพียงพอที่จะครอบคลุมทั้งหน้าจอให้ขยายเกมของคุณ (แสดงไทล์มากขึ้น) ในขณะที่สินทรัพย์ยังคงอยู่ คุณควรสร้างเกมของคุณเพื่อให้สามารถเล่นได้ด้วยอัตราส่วนความละเอียด / มุมมองขั้นต่ำ

  3. หากไม่สามารถขยายเกมได้ให้เติมส่วนที่ไม่ใช่เกมของหน้าจอด้วยสีดำ ไม่ว่าจะเป็นแถบที่ด้านบนและด้านล่างซ้ายและขวาหรือกรอบสีดำ นี่คือสิ่งที่ iPad ทำเมื่อใช้แอพ iPhone ในโหมดขยาย นอกจากนี้ยังใช้กันอย่างแพร่หลายในอีมูเลเตอร์

  4. ยอมแพ้ในการรักษาความจริงกับตารางพิกเซล แต่คุณต้องหยุดการใช้สินทรัพย์พิกเซลที่มีมุมที่คมชัด จากนั้นอัปเกรด / ลดระดับโดยใช้การกรอง bilinear (หรือ bicubic อย่างเหมาะสมที่สุดหากแพลตฟอร์มของคุณรองรับ) การกรอง นี่เป็นตัวเลือกที่ดีที่สุดสำหรับการใช้งานหน้าจอให้ใหญ่ที่สุดในขณะที่ยังคงประสบการณ์การใช้งานของผู้ใช้ในทุกความละเอียดที่รองรับ

สำหรับเกมของฉันฉันได้ลงเอยด้วยการทำตัวเลือกหมายเลข 4 และฉันค่อนข้างประหลาดใจที่ดูดีในอุปกรณ์ตั้งแต่ 320 พิกเซลในแนวดิ่ง (Android 2.3 รุ่นเก่า) สูงสุด 1536 พิกเซลบนแนวดิ่ง (iPad 2012 ที่มี จอแสดงผลเรตินา) เนื้อหาดั้งเดิมมีไว้สำหรับ 600 พิกเซลในแนวตั้ง (แต่เดิมสำหรับการแสดงผล 800x600 บนพีซี Windows) แม้ว่าสำหรับเกมต่อ ๆ มาฉันคิดว่าความละเอียดแนวตั้งเชิงตรรกะที่ดีกว่าคือ 720 พิกเซล

เกมดังกล่าวใช้ความละเอียดเสมือนจริงสูง 600 พิกเซลเสมือนจริงปรับขนาดให้กับความละเอียดดั้งเดิมของอุปกรณ์พร้อมการกรองแบบบิลิเนียร์ ซึ่งหมายความว่าพิกัดในรหัส Y ทั้งหมดเริ่มจาก 0 (ด้านบนของหน้าจอ) ถึง 600 (ด้านล่างของหน้าจอ)

สำหรับขนาดแนวนอนฉันคิดว่าความกว้างสูงสุดคือ 1080 พิกเซลซึ่งเกินพอที่จะครอบคลุมอัตราส่วนภาพ 16: 9 ที่กว้างที่สุด พิกัด x ของฉันอยู่กึ่งกลางดังนั้น x = 0 คือศูนย์กลางของหน้าจอและพิกัด x เริ่มต้นที่ -540 ทางด้านซ้ายถึง 540 ทางด้านขวา ฉันแน่ใจว่าทุกอย่างลงตัวระหว่าง -400 และ 400 เพื่อรองรับจอแสดงผลที่แคบที่สุด (4: 3)

อย่างไรก็ตามถ้าฉันต้องรักษาความรู้สึกของศิลปะพิกเซลฉันจะใช้ตัวเลือกที่ 1 และ 2 อย่างแน่นอนซึ่งหมายความว่าฉันจะขยายเป็นจำนวนเต็มเพื่อให้ความรู้สึกที่ถูกบล็อกของศิลปะพิกเซลและออกแบบเกมเพื่อให้มองเห็นได้ ไทล์ไม่ได้รับการแก้ไขและสามารถปรับให้เข้ากับความละเอียดหน้าจอ / อัตราส่วนภาพใด ๆ

ดังนั้นเพื่อ (ไม่) ตอบคำถามของคุณ ฉันคิดว่าศิลปะการลดขนาดพิกเซลเป็นความคิดที่แย่มากดังนั้นคุณไม่ควรทำ มีวิธีอื่น ๆ ในการสนับสนุนความละเอียดหน้าจอที่แตกต่างกันซึ่งจะให้ผลลัพธ์ที่ดีกว่าเพียงแค่ตัดภาพศิลปะที่สร้างขึ้นอย่างระมัดระวังของคุณ


ฉันอยู่ในสถานการณ์เดียวกันและมันทำให้ฉันบ้า เกมของเราคือ pixelart ที่สร้างขึ้นมาสำหรับหน้าจอความสูง 600px แต่ถ้าฉันเพิ่มหน้าจอ 720p (PC) มันจะดูน่ากลัวและเบลอเล็กน้อย ฉันไม่รู้จะทำอะไรที่นี่จริงๆ ฉันยังคิดที่จะสร้างแผนที่ที่ใหญ่กว่าสำหรับหน้าจอ 720p และรักษา pixelart เหมือนเดิม แต่แล้วฉันก็มีปัญหาเดียวกันสำหรับหน้าจอ 1080p ฉันคิดว่าเราควรจะทำ 360p pixelart (หรือเล็กกว่า) ดังนั้นเราจะมีขนาด x2 และ x3 ที่สมบูรณ์แบบสำหรับหน้าจอ 720 และ 1080p ตอนนี้มันสายเกินไปแล้ว มีข้อคิดเห็นหรือคำแนะนำเพิ่มเติมอีกหรือไม่
เดเมียน

8

พิจารณาการสร้างเวอร์ชันที่ลดขนาดตามเวลาในการพัฒนาและรวมถึงพวกเขาโดยตรงในเกมเป็นทรัพยากร ทำสิ่งนี้กับ Photoshop หรือเครื่องมืออะไรก็ตามที่คุณค้นหาสร้างสิ่งที่คุณชอบ จากนั้นให้เกมเลือกภาพตัดปะที่เหมาะสมกับความละเอียดปัจจุบัน

นี่คือเหตุผลสองประการที่คุณอาจทำเช่นนี้ ...

บันทึกงานการประมวลผล

หากคุณทำการขายโดยทางโปรแกรมตอนรันไทม์ซอฟต์แวร์ของคุณอาจจะสร้างและแคชงานศิลปะอยู่ดี ดังนั้นทำไมไม่รวมรุ่นที่ลดขนาดลงในชุดสินทรัพย์ศิลปะด้วย ฉันคิดว่าถ้ามันทำให้การดาวน์โหลดใหญ่กว่าที่คุณต้องการอาจเป็นเรื่องสำคัญ แต่คุณจะประหยัดในการโหลดซีพียูการเขียนดิสก์ ฯลฯ

การควบคุมศิลปะที่เหนือกว่า

หากคุณขายผลงานศิลปะด้วยตัวเองคุณจะสามารถควบคุมรูปลักษณ์ในขั้นสุดท้ายได้ดียิ่งขึ้น นั่นอาจไม่สร้างความแตกต่างถ้าคุณลดปริมาณลงเล็กน้อย แต่เมื่อคุณใช้ความละเอียดที่ต่ำกว่านี้มากคุณอาจต้องการควบคุมศิลปะที่ดีกว่าสำหรับการปรากฏตัวครั้งสุดท้าย ตัวอย่างเช่นหากต้องการเน้นดวงตาของตัวละครเฉพาะคุณอาจวาดเวอร์ชันความละเอียดต่ำลงโดยที่ดวงตาไม่ได้ลดขนาดลงมากเพื่อรักษาเอฟเฟกต์ - สิ่งที่การปรับขนาดแบบโปรแกรมไม่สามารถทำได้

การปรับสเกลแบบไดนามิกไม่สมบูรณ์แบบ

คุณอาจทำการตัดสินใจเชิงศิลปะที่โดดเด่นที่ไม่ได้ทำงานกับการปรับขนาดแบบไดนามิก ตัวอย่างเช่นสมมติว่าคุณต้องการใส่เส้นขอบเค้าโครงหรือไฮไลต์รอบ ๆ รูปภาพ เมื่อดูที่ความละเอียดสูงกว่านี้อาจดูดี แต่รุ่นที่ปรับขนาดลงอาจเป็นโคลนหรือเสียเอฟเฟกต์ทั้งหมด แต่ถ้าทำด้วยมือคุณสามารถใช้เอฟเฟกต์กับแต่ละขนาดได้โดยเฉพาะและรับประกันได้ว่าคุณจะได้รับผลกระทบ

ความคิดอื่น ๆ

คุณยังสามารถใช้วิธีไฮบริดพร้อมกับชุดของทรัพยากรเฉพาะการแก้ปัญหาที่ใช้เมื่อพบและชุดทั่วไปที่ปรับขนาดแบบไดนามิกหากไม่พบรุ่นเฉพาะสำหรับการแก้ปัญหา นี่เป็นวิธีการทำงานของแพลตฟอร์ม Android ข้อมูลบางอย่างเกี่ยวกับเรื่องนี้ที่http://developer.android.com/guide/practices/screens_support.html


0

การย่อขนาดนั้นง่ายกว่าการย่อขนาดเนื่องจากคุณเลือกข้อมูลที่จะทิ้งแทนที่จะต้องคิดค้นข้อมูลใหม่ (และอาจไม่ถูกต้อง) เพื่อเติมลงในช่องว่าง โดยที่ในใจคุณอาจไม่ต้องการอะไรเป็นพิเศษที่นี่และอัลกอริธึมการ resampling มาตรฐานส่วนใหญ่จากขอบเขตของการประมวลผลภาพควรจะทำงานได้ดีพอสำหรับการลดขนาดรูปภาพ: bilinear, Gaussian, Lanczos ฯลฯ

โดยเฉพาะอย่างยิ่ง Lanczos อาจเป็นตัวเลือกที่น่าสนใจเนื่องจากมันทำให้รูปภาพคมขึ้นซึ่งอาจรักษารายละเอียดที่อาจหายไปเมื่อรวมพิกเซลหลายพิกเซลไว้ในที่เดียว เห็นได้ชัดว่าสิ่งนี้มาจากค่าใช้จ่ายในการแนะนำสิ่งประดิษฐ์ที่ไม่พึงประสงค์

มีการเปรียบเทียบภาพที่นี่: /gis/10931/what-is-lanczos-resampling-useful-for-in-a-spatial-context


3
-1 เพราะปรับลงพิกเซลศิลปะ (ซึ่งมักจะเป็นมือ crafted พิกเซลต่อพิกเซลตัวอย่าง ) จะไม่ดูดีกับใด ๆ ของขั้นตอนวิธีการเหล่านี้ ด้วยวิธีเพื่อนบ้านที่ใกล้ที่สุดคุณจะสูญเสียกลุ่มบรรทัดที่สำคัญ ด้วยการแก้ไขคุณจะได้ภาพที่พร่ามัว ฉันกลัวว่าจะไม่มีคำตอบที่น่าพอใจสำหรับคำถาม OPs ยกเว้นทำด้วยตนเอง
bummzack
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.