คุณจะเข้าถึงความละเอียดในเนื้อหากราฟิกแบบแรสเตอร์ได้อย่างไร?


32

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

ในเกม 3 มิติคุณอาจมี HUD หรือ GUI เมนูตามกราฟิกแรสเตอร์และในเกม 2 มิติคุณอาจมีล่ามมากมายซึ่งเป็นเรือสำหรับสไปรต์

ดังนั้นคำถามของฉันคือคุณจะออกแบบและใช้งานเนื้อหาในความละเอียดและอัตราส่วนภาพที่หลากหลายได้อย่างไร สมมติว่าคุณมีตัวละครสไปรต์ที่มีขนาด 300x400 พิกเซลสไปรท์และล้อมรอบด้วยระดับที่ทำจากแผ่นกระเบื้อง ในการแก้ปัญหาที่แตกต่างกัน / อัตราส่วนภาพคุณจะเห็น FOV อื่นทั้งหมด หรือถ้าคุณมี HUD หรือเมนู GUI คุณต้องการเก็บบางสิ่งไว้ในตำแหน่งเดียวกันและมีขนาดเท่ากันเมื่อเทียบกับหน้าจอ กระนั้นแหล่งกราฟิกก็คือบิตแมปแรสเตอร์ไม่ใช่เวกเตอร์

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

แก้ไข:

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


1
ฉันไม่เห็นว่าคุณเปลี่ยนจากคำตอบในคำถามนี้เป็นข้อสรุปที่คุณทำหลังจาก " แก้ไข: " IMO คำตอบเหล่านี้ไม่เพียงพอและคุณไม่ควรยอมรับคำตอบใด ๆ EG: คำตอบที่ได้รับการยอมรับของคุณพูดถึงเพียงแค่คำถามหนึ่งชิ้น (สไปรท์สเกล) ไม่ใช่ปัญหาทั้งหมด สิ่งที่คุณพูดหลังจาก " แก้ไข: " มีประโยชน์มากกว่าคำตอบที่นี่ IMO แต่ฉันไม่ได้ "รับ" มันดีพอที่จะใช้งานได้ น่าเสียดายที่ถ้าฉันขอรายละเอียดเพิ่มเติมในคำถามใหม่มันจะถูกทำเครื่องหมายว่าซ้ำซ้อน
Daniel Kaplan

คำตอบ:


7

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

ด้วย 2D ความละเอียดมีผลกระทบอย่างมากต่อวิธีการออกแบบภาพของคุณ สไปรต์ที่ดูมีรายละเอียดและสมจริงที่ความละเอียดสูงจะถูกลดขนาดและไม่สามารถถอดรหัสได้ เช่นเดียวกันสไปรต์ที่ดูสะอาดตาและคมชัดที่ความละเอียดต่ำจะดูราคาถูกและเรียบง่ายมากที่ความละเอียดสูง


อัตราส่วนภาพทำให้ฉันกังวล ตัวอย่างเช่นมันไม่ใช่การก้าวกระโดดครั้งใหญ่จาก 1080p ไป 720p เนื่องจากมุมมองเหมือนกันเรากำลังทำการปรับขนาดแบบง่ายๆ จะเกิดอะไรขึ้นเมื่อคุณพูด 1080p กับ 1680x1050 ฉันจะแสดงระดับมากขึ้นกว้างขึ้น FOV ในแง่มุมที่กว้างขึ้นเรียงตามระยะขอบ? เช่นเดียวกับการออกแบบเพื่อมุมมองที่กว้างขึ้นพร้อมพื้นที่ปลอดภัยที่เนื้อหาสำคัญทั้งหมดจะดำเนินการเพื่อไม่ให้ถูกครอบตัดหน้าจอในมุมที่แคบ
คีย์เฟรม

ฉันจะอัปเดตคำถามด้วยการนำเสนอด้วยภาพของโซลูชันนี้ ดูเหมือนว่าไม่มีทางอื่น
คีย์เฟรม

4

วิธีหนึ่งคือการสร้างเนื้อหารูปภาพในรูปแบบเวกเตอร์ (SVG, Illustrator และอื่น ๆ ) และแปลงเป็นภาพแรสเตอร์ตามความต้องการของเกมเวอร์ชั่นต่าง ๆ


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

ใช่นั่นเป็นตัวเลือกด้วยเช่นกันหากคุณสามารถแบกรับปัญหาการสูญเสียคุณภาพและประสิทธิภาพ
Matias Valdenegro

8
ฉันไม่แน่ใจว่าถูกต้องหรือไม่ "แรสเตอร์นั้นดีกว่าสำหรับศิลปิน" ศิลปินกราฟิกของฉันใช้ Illustrator ด้วยเหตุผลเหล่านี้ เมื่อถึงเวลาต้องอัพเดทความละเอียด 2X ของ iPhone 4 มันเป็นเรื่องง่ายสำหรับเธอที่จะส่งออกทุกอย่างอีกครั้ง Raster อาจดีกว่าสำหรับศิลปิน Photoshop ที่ไม่ต้องการฝึกฝนตัวเองในฐานะศิลปินเวกเตอร์ แต่ในระยะยาวพวกเขาอาจกลายเป็นผู้เชี่ยวชาญในกราฟิกแบบเวกเตอร์ได้ดีกว่า แพลตฟอร์มทางกายภาพกำลังเปลี่ยนแปลงอย่างรวดเร็วเกินกว่าที่จะคิดเป็นพิกเซล
Chris Garrett

4

เมื่อการรักษา fullscreen ทั่วมติที่แตกต่างกันถ้าคุณต้องการพิกเซลความสมบูรณ์แบบ (คือ "ในฐานะศิลปินที่ผลิตมัน") แล้วปัญหาคือว่าไม่มีอย่างเต็มที่วิธีอัตโนมัติขนาด Sprites ขึ้นหรือลง (หรือหมุนพวกเขา) ที่ doesn' ไม่จำเป็นต้องได้รับการอนุมัติจากมนุษย์ ในที่สุดนั่นก็เป็นเพราะตำแหน่งของพิกเซลเป็นเรื่องส่วนตัว อัลกอริทึมการแสดงผลทำการปรับขนาดหรือการหมุนและต้องใช้เทคนิคการประมาณค่าบางอย่างเพื่อทำสิ่งนี้เช่น การกรองสองทาง ถ้าคุณยังต้องการขอบแข็งในพิกเซลเพื่อให้มีที่ "พิกเซลความสมบูรณ์แบบ" (คือไม่ได้ใช้ AA หรือ BF) แล้วคุณจะต้องยอมรับการปรับขนาดที่บางการศึกษาระดับปริญญาไม่อำนาจของ 2 จะไป ผลิตสิ่งประดิษฐ์ที่ไม่พึงประสงค์บางอย่าง

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

คำตอบหนึ่งที่เป็นไปได้สำหรับคำถาม "พิกเซลไม่เชื่อเรื่องพระเจ้าผู้ไม่เชื่อเรื่องพระเจ้าขนาด" โดยพลการ: OpenGL (ซึ่งคุณอาจตั้งใจจะใช้หากคุณกำลังข้ามแพลตฟอร์ม) ทำงานในวิธีที่แตกต่างอย่างสิ้นเชิงจากซอฟแวร์แรสเตอร์แรสเตอร์ โดยจะพิจารณาความกว้างและความสูงของจอแสดงผลในช่วงจุดลอยตัว 0.0-> 1.0 และแมปพิกเซลตามลำดับบน GPU แน่นอนว่าสิ่งนี้สามารถทำให้เกิดการประดิษฐ์ได้ BF เปิดใช้งานสำหรับพื้นผิว (ซึ่งเป็นสไปรต์ของคุณใน OpenGL)


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