ตัวอย่างการแกล้งทำ 3D


17

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

แก้ไข : เพิ่งเจอคำว่า 'Mode7' และวิดีโอนี้ซึ่งแสดงให้เห็นถึงสิ่งที่ฉันพยายามจะคิดออก (โดยเฉพาะเกมที่เวลา 0:13 น. และ 1:03 น.) เป็นวิธีที่ดีในการใช้อะไรเช่นนี้?


1
เกมคอมพิวเตอร์หลายเกมก่อนช่วงกลางทศวรรษที่ 90 "ปลอม" เกมสามมิติและเกมคอนโซลทุกเกมก่อนยุคที่ห้า (Playstation / N64) ทำเช่นนั้น มันอาจจะช่วยในการชี้แจงสิ่งที่คุณกำลังทำอยู่ตอนนี้มีภาพหน้าจอหรือบางสิ่งบางอย่าง ...
thedaian

1
ฉันได้อัปเดตโพสต์ด้วยวิดีโอที่ฉันเพิ่งพบ
XSL

2
เกมคอมพิวเตอร์ในรูปแบบสามมิติทั้งหมดเป็นแบบ 3 มิติ ไม่มีสิ่งนั้นมีอยู่จริง! (ฉันหมายถึงสิ่งนี้ในแง่ที่ว่า 'การแกล้ง' ของ 3D ในเกมเป็นเพียงความสัมพันธ์ของสิ่งที่คุณคิดว่า 'จริง' Mode7 เป็นเพียงจุดศูนย์กลางระหว่างพวกเขาคณิตศาสตร์พื้นฐานเดียวกัน)
DampeS8N

คำตอบ:


13

หนึ่งในเกมอาร์เคดคลาสสิคสุดโปรดของฉันก็เกิดขึ้นกับ 3D ปลอม: Space Harrier

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

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

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

ADDITION: Afterburnerเป็นเกมอาร์เคดสุดคลาสสิคที่ใช้เทคนิคกราฟิคเดียวกัน


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

6

เกมส่วนใหญ่ใช้เทคนิค "โหมด 7" ที่มีชื่อเสียง มันเป็นเพียง rotozoom การดำเนินการนี้กระทำโดยตัวประมวลผลร่วมบนคอนโซลดังนั้นจึงรวดเร็วมากในฮาร์ดไดรฟ์เหล่านี้ การทำงาน 3 มิติจริงมีค่าใช้จ่ายสูงเกินไป แต่ด้วยฮาร์ดแวร์จริงมันง่ายกว่าที่จะจำลองด้วย 3D จริง

Rotozoom คือการหมุนและการซูมบน Sprite ดูคำอธิบายนี้หรือการใช้ SDL นี้

ค้นหาใน Google "MODE-7 floormap" เพื่อค้นหาตัวอย่างและรหัส

F-Zero Mode 7เป็นหนึ่งในเกมแรกที่ใช้กับ snes


5

ฉันพบการตรวจทานที่ยอดเยี่ยมของเทคนิคเหล่านี้พร้อมตัวอย่างและคำอธิบายหลายปีหลัง คำถามของคุณถามฉันที่จะค้นหามันอีกครั้ง: ลู Pseudo หน้า เขาเคยมีเครื่องยนต์ Outrun ที่ใช้งานได้ แต่เอาออกด้วยเหตุผลบางอย่าง ( เครื่อง Wayback ถ้าเพื่อนของคุณที่นี่ )

หากต้องการตอบคำถามของคุณเพิ่มเติมนี่คือรายการเกมจากหน้าของเขา:

  • Street Fighter II (อาร์เคด) ("เอฟเฟกต์แรสเตอร์" บนพื้นโดโจ)
  • วิ่งเร็วกว่า (อาเขต)
  • Space Harrier (อาร์เคด)
  • Super Hang-on (อาร์เคด)
  • Enduro (อาตาริ 2600)
  • ตำแหน่งเสา (อาร์เคด, อาตาริ 2600)
  • Road Rash (3DO)
  • พาวเวอร์ดริฟท์ (อาร์เคด)
  • Racin 'Force (อาร์เคด)
  • ไฮดรา (อาร์เคด)
  • วิ่งเร็วกว่า (อาร์เคด)
  • เทอร์โบ (อาร์เคด)
  • Spy Hunter II (อาร์เคด)
  • Pitstop II (พลเรือจัตวา 64)
  • Enduro Racer (อาร์เคด)
  • โลตัส (พลเรือจัตวาเอมิ)
  • ทดสอบไดรฟ์ II (Commodore Amiga?)
  • ความเร็ว Buggy

ไม่ใช่รายการของฉัน - เครดิตทั้งหมดควรไปที่Louis Gorenfeldเพื่อการวิจัยที่ยอดเยี่ยมของเขา


4

เกม 3d ทั้งหมดเป็น 3d ปลอม: P ฉันล้อเล่นฉันรู้ว่าคุณหมายถึงอะไรโดย 'fake 3d' ..

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

ฉันเห็นสิ่งใหม่ ๆ ในจิตวิญญาณเดียวกันในสถานการณ์แฟลช ลองดูที่ขีปนาวุธเกม 3d

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


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.