จะสร้างพอร์ทัลเอฟเฟกต์คุณภาพสูงและรวดเร็วได้อย่างไร?


9

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

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

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

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


3
ฉันไม่พบการอ้างอิง แต่ฉันจำได้ว่ามีคนบอกว่าพอร์ทัลไม่ได้ใช้การเรนเดอร์เป็นพื้นผิวสำหรับสิ่งนั้น
msell

1
ลองดูPseudo Formเกมพอร์ทัลเอสเคอาร์ (แหล่งที่มาอยู่ในการดาวน์โหลดหลัก) นอกจากนี้ยังมี "การติดตั้งพอร์ทัล" อื่น ๆ ในเว็บ แต่ฉันคิดว่านี่เป็นที่รู้จักมากที่สุด นอกจากนี้ให้เล่นพอร์ทัลด้วยคำวิจารณ์ของนักพัฒนาใน ในบางส่วนของพวกเขาพูดคุยเกี่ยวกับความท้าทายของการใช้พอร์ทัล
Vasco Correia

7
ฉันไม่สามารถเข้าใจได้ว่าทำไมคุณต้องมีพื้นผิว 2028x2048 เพื่อให้พอร์ทัลแสดงผลด้วยความคมชัดน้อยกว่า 1080p คุณไม่จำเป็นต้องมีความละเอียดการแสดงผลที่คุณใช้สำหรับเกมโดยทั่วไป ฉันจะไปไกลถึงจะบอกว่าคุณควรหาขนาดบนหน้าจอของพอร์ทัลและใช้สิ่งนั้นเพื่อเลือกการแสดงผลขนาดที่เหมาะสม (ดังนั้นมันจึงมีประสิทธิภาพมากเมื่ออยู่ไกล -space.
Stig-Rune Skansgård

1
สำหรับเอฟเฟ็กต์ภาพคุณใช้วิธีการแบบใด? คุณคิดวิธีแสดงเฉพาะสิ่งที่มองเห็นผ่านพอร์ทัลได้หรือไม่
jhocking

1
คุณควรเก็บคำถามเดิมไว้เหมือนเดิมและถามคำถามใหม่เกี่ยวกับปัญหาใหม่
msell

คำตอบ:


5

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

ฉันเขียนโปรแกรมใน C # และแพคเกจนั้นอยู่ใน JS แต่ตรรกะเบื้องหลังมันมีประโยชน์อย่างมากและคิดออกมาดี โดยทั่วไปฉันทำตามความคิดเชิงตรรกะของเขาพร้อมปรับแต่งเกมของฉันและผู้ควบคุมคนแรก

โดยเฉพาะอย่างยิ่งสิ่งที่คุณทำคือการใช้รุ่นที่ปรับเปลี่ยนนี้ Shader น้ำ / script มีกระจกสองบานในฉากและให้กล้องทำการสะท้อนสิ่งที่เห็นในแต่ละภาพสะท้อนต่อกระจกอีกภาพหนึ่ง คุณจะต้องสร้างเมทริกซ์การแปลงที่ปรับเปลี่ยนเพื่ออธิบายความสัมพันธ์ระหว่างสองพอร์ทัล เพื่อช่วยลดการตีประสิทธิภาพอ่านนี้บทความเกี่ยวกับการตัดระนาบใกล้ สิ่งนี้จะช่วยให้คุณแสดงเฉพาะสิ่งที่จำเป็นต้องมองผ่านพอร์ทัล

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


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