มีสิ่งใดเทียบเท่ากับ linked2portal_door ของ Portal 2 ในเอนจิ้นอื่นหรือไม่? [ปิด]


9

ฉันต้องการฟังก์ชั่นของlinked_portal_doorที่อยู่ใน Portal 2 ฉันค้นหาเล็กน้อยใน UDK และทำให้คนส่วนใหญ่พยายามเลียนแบบปืนพอร์ทัล ไม่มีใครรู้ว่า UDK, CryEngine, Unity3D หรือเอนจิ้นอื่นมีอะไรที่คล้ายกันบ้างไหม? ฉันไม่ได้ต่อต้านการใช้ซอร์สฉันแค่อยากรู้ว่าตัวเลือกของฉันคืออะไร


1
มีเครื่องยนต์ขนาดใหญ่เพียงไม่กี่ตัวเนื่องจากส่วนใหญ่มาจาก Quake หรือใช้เทคนิคที่คล้ายคลึงกัน เครื่องยนต์ขนาดเล็กหรือที่รู้จักกันดีได้ใช้พอร์ทัลเป็นเทคนิคหลักในการเลือกสรรฉาก ฉันจำได้ว่า CrystalSpace เคยใช้พอร์ทัลเพื่อเชื่อมต่อทุกส่วน (คล้ายกับวิธีการทำงานของ Doom / Doom2 แต่เป็น 3D เต็มรูปแบบ) คุณอาจลองใช้เครื่องมือนี้ ฉันยังไม่ทันได้รับการพัฒนาดังนั้นฉันไม่รู้ว่ามันเปลี่ยนไปใช้เทคนิคการจัดการฉากอื่นหรือไม่
Sean Middleditch

คำตอบ:


8

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

ปัญหาอีกอย่างที่เราเจอคือต้องเปลี่ยนระบบที่อิงตามระยะทางเช่นระดับของรายละเอียด (LOD) สำหรับโมเดลเพราะเกมของเราระยะทางนั้นสัมพันธ์กับตำแหน่งของพอร์ทัล

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

Source Engine ทำการเพิ่มประสิทธิภาพการมองเห็นที่คำนวณไว้ล่วงหน้าจำนวนมากสำหรับการเลือกสรร การอนุญาตให้ผู้ใช้เชื่อมโยงการมองเห็นออกจากพอร์ทัลเพิ่มความซับซ้อนอีกระดับ

เพื่อการเรนเดอร์ที่ดีขึ้นเราได้ใช้วิธีการวาด stencil buffer สำหรับมุมมองพอร์ทัลซึ่งทำให้เรามีความยืดหยุ่นมากสำหรับการจัดการความลึกของการเรียกซ้ำพอร์ทัล สิ่งนี้ทำให้เราสามารถสร้างพอร์ทัลที่มีจำนวนลึกมาก (จำกัด เฉพาะการแสดง) ซึ่งทำให้โถงทางเดิน "ไม่มีที่สิ้นสุด" ของเราดูเรียบร้อย

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

ฉันยังจำการอ่านบางแห่งว่ามีกรณีพิเศษมากมายเช่นมีพอร์ทัลอยู่ฝั่งตรงข้ามของบล็อกเดียวกัน การสร้างพอร์ทัลไม่ใช่เรื่องง่าย

แก้ไข:

พบบทความที่ดีอื่น ๆ ที่มี:

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

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


เป็นเรื่องที่น่าสังเกตว่าปัญหาเหล่านี้ส่วนใหญ่เป็นปัญหาของการเพิ่มพอร์ทัลในเอ็นจิ้น Source Quake2 มีเอ็นจิ้นอื่น ๆ ที่ได้รับการใช้พอร์ทัลสำหรับการคัดเลือกฉากตั้งแต่วันแรก
Sean Middleditch

เอ็นจินที่คุณอ้างถึงคืออะไร
wolfadex

0

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

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