คำถามนั้นค่อนข้างมากในชื่อเรื่อง มีการฉายภาพ 3 มิติที่น่าสนใจนอกเหนือจาก orthographic และมุมมองที่สามารถใช้ในระบบ 3D เช่น OpenGL ได้หรือไม่?
โดยเฉพาะอย่างยิ่งมีอะไรบ้างไหมที่มีความพิเศษในการออกแบบเกม?
คำถามนั้นค่อนข้างมากในชื่อเรื่อง มีการฉายภาพ 3 มิติที่น่าสนใจนอกเหนือจาก orthographic และมุมมองที่สามารถใช้ในระบบ 3D เช่น OpenGL ได้หรือไม่?
โดยเฉพาะอย่างยิ่งมีอะไรบ้างไหมที่มีความพิเศษในการออกแบบเกม?
คำตอบ:
ใช่เพื่อชื่อไม่กี่:
ประมาณการแบบฉบับอิตาลีก็ตามตัวอย่างเช่นสามารถจับภาพทุ่งกว้างของมุมมองในการที่ดีวิธี (ทั้งหมดเป็นเพียงความคิดเห็นของฉัน)
ฉันคิดว่ารายละเอียดการใช้งานจะเกินขอบเขตของคำถามเฉพาะนี้
แก้ไข: ขอบคุณสำหรับความคิดเห็นฉันสะกด Pannini และเพื่อให้การแก้ไขนี้คุ้มค่าที่นี่มีอีกไม่กี่:
ขึ้นอยู่กับสิ่งที่คุณหมายถึงโดย "ที่สามารถใช้ในระบบ 3 มิติเช่น OpenGL" :)
ฮาร์ดแวร์กราฟิก 3 มิติและ API อย่าง OpenGL จะพูดอย่างแคบ ๆ เท่านั้นการจัดการเชิงเส้นตรงอย่างถูกต้องคือการคาดการณ์ที่แมปเส้นตรงในอวกาศโลกกับเส้นตรงบนรูปภาพ พวกเขาไม่เคยบิดเบือนบางสิ่งบางอย่างเป็นรูปร่างโค้ง (เว้นแต่ว่ามันจะโค้งเริ่มต้นด้วย) เนื่องจาก GPU ขึ้นอยู่กับรูปสามเหลี่ยมที่มีขอบตรงเพื่อที่จะฉายภาพบนหน้าจอได้อย่างถูกต้อง
หากเรา จำกัด ตัวเองไว้ที่การคาดการณ์เชิงเส้นไม่มีตัวเลือกมากเกินไป นอกจากออร์โธและมุมมองมาตรฐานแล้วยังมีรูปแบบ "นอกศูนย์" ซึ่งได้มาจากการตัดมุมมอง frustum
การคาดการณ์เหล่านี้สามารถแสดงด้วยเมทริกซ์การฉายภาพ 4 × 4 ปกติและใช้ใน 3D API โดยไม่มีปัญหา
จากนั้นมีการคาดการณ์แบบไม่เชิงเส้นซึ่งไม่มีข้อ จำกัด ในการทำแผนที่เส้นตรงกับเส้นตรง พวกเขาได้รับอนุญาตให้บิดเบือนสิ่งต่าง ๆ เป็นเส้นโค้ง มีมากมายเหล่านี้รวมถึงทรงกระบอกทรงกลมฟิชอายประเภทต่าง ๆ และอื่น ๆ
ด้วยการฉายแบบไม่เชิงเส้นคุณไม่สามารถใช้เมทริกซ์การฉายได้ คุณต้องใช้การฉายภาพด้วยตัวเองโดยใช้เฉดสี วิธีหนึ่งคือการเขียน Shader ที่กำหนดเองเพื่อทำการฉายภาพต่อยอด GPU จะยังคงวาดรูปสามเหลี่ยมด้วยเส้นตรงระหว่างจุดยอดดังนั้นในขณะที่รูปสามเหลี่ยมขนาดเล็กจะค่อนข้างใกล้เคียงกับการแก้ไขรูปสามเหลี่ยมขนาดใหญ่จะผิดอย่างเห็นได้ชัด สิ่งนี้อาจทำให้เกิดปัญหาและรูปทรงเรขาคณิตอาจจำเป็นต้องแบ่งย่อยอย่างละเอียดเพื่อให้แสดงผลได้อย่างถูกต้อง
วิธีที่สองในการรับการฉายภาพแบบไม่เชิงเส้นคือการแสดงฉากโดยใช้การฉายภาพมุมมองปกติก่อน (อาจเป็น cubemap ซึ่งมีการฉายภาพมุมมองสำหรับแต่ละหน้าลูกบาศก์) จากนั้นใช้ shader พิกเซลหลังกระบวนการเพื่อลองอีกครั้งตามต้องการ การฉายภาพแบบไม่เชิงเส้น สิ่งนี้มีข้อได้เปรียบที่ไม่ต้องการการแก้ไขรูปทรงเรขาคณิต แต่อาจมีราคาแพงกว่าเนื่องจากจำเป็นต้องใช้การเรนเดอร์พิเศษและผลลัพธ์อาจเบลอในบางพื้นที่หากเรนเดอร์พาสครั้งแรกมีความละเอียดไม่เพียงพอ ตัวอย่างวิธีโพสต์โปรเซสถูกใช้โดยเกม Oculus Rift เพื่อนำมาใช้ในการฉายภาพแบบไม่เชิงเส้น Rift จำเป็นต้องทำงานกับเลนส์ของมัน
ฉันไม่อยากจะเชื่อเลย แต่ไม่มีใครพูดถึงIsometric Projectionซึ่งเคยเป็นเรื่องปกติ