สิ่งที่เป็นประโยชน์ของผนังเป็นเครื่องบินหรือกล่อง? ฉันควรใช้เครื่องบินที่มีกล่องเก็บของแทนเครื่องตาข่าย
สิ่งที่เป็นประโยชน์ของผนังเป็นเครื่องบินหรือกล่อง? ฉันควรใช้เครื่องบินที่มีกล่องเก็บของแทนเครื่องตาข่าย
คำตอบ:
จะมีสองสิ่งที่แตกต่างที่คุณต้องพิจารณา
หมายเหตุ:ประโยชน์ที่ได้รับจากการปรับให้เหมาะสมที่อธิบายไว้ด้านล่างนี้มีความสำคัญกับกำแพงเป็นจำนวนมาก ณ จุดนั้นอาจเป็นการดีที่จะพิจารณาวิธีการแก้ปัญหาที่แตกต่างกันเช่นการแบ่งพาร์ติชั่นช่องว่างแบบไบนารี (BSP) สำหรับสร้างกำแพงของคุณในเกมของคุณ สิ่งนี้จะทำให้ระดับของคุณได้รับการปรับให้เหมาะสมที่สุดสำหรับการเรนเดอร์ (ถ้าออกแบบอย่างถูกต้อง) และสำหรับฟิสิกส์ (เนื่องจากคุณมีคำจำกัดความที่ดีมากเกี่ยวกับสิ่งที่ชนกันและสิ่งที่ไม่
กล่องจะใช้ในการเรนเดอร์มากกว่าระนาบ มีจุดยอดและรูปสามเหลี่ยมมากขึ้นหมายถึงจุดสุดยอดของคุณและเครื่องแรสเซอร์ที่จะต้องทำงานมากกว่าข้อมูลเพิ่มเติม ดังนั้นใช้เฉพาะกล่องเมื่อคุณต้องการในแง่ของการมองเห็น ลบใบหน้าตามต้องการสำหรับสิ่งที่ผู้เล่นจะต้องเห็น
คุณควรใช้ a BoxCollider
เมื่อเทียบกับMeshCollider
เมื่อคุณสามารถ MeshCollider
s ต้องใช้การชนกันต่อหน้า (หรือเป็นฮัลล์นูน) ของตาข่ายและทำให้ raycasting และฟิสิกส์ช้าลง (แต่มันเป็นจำนวนเล็กน้อยสำหรับเพียงหนึ่งกล่อง) อีกสิ่งหนึ่งBoxColliders
คือมันยากสำหรับผู้เล่นที่จะผ่านพวกเขาเมื่อพวกเขากำลังจะไปอย่างรวดเร็วจริงๆ แม้จะมีการชนกันอย่างต่อเนื่องหากคุณพบว่าตัวเองยังมีสิ่งต่าง ๆ ทะลุผ่านผนังคุณก็สามารถขยายภาพได้เสมอBoxColliders
หากคุณทำงานกับเครื่องบินได้เร็วขึ้นMeshColliders
(เพราะคุณไม่จำเป็นต้องปรับทุกอย่างBoxColliders
เพื่อให้ตรงกับมิติของมัน) มันอาจจะดีถ้าคุณใช้มันหากคุณได้รับประสิทธิภาพที่คุณต้องการ
ขยายบิต "เบิร์น" 's จุด :
การเรนเดอร์ : หากคุณสร้างกำแพงเป็นระนาบเดียวผนังจะมองเห็นได้จากด้านหนึ่งเท่านั้นเนื่องจากระนาบ (หรือมากกว่านั้นตรงใบหน้า) มีด้านที่แสดงผลเพียงด้านเดียว ดังนั้นหากผู้เล่นสามารถเคลื่อนที่ไปรอบ ๆ กำแพงได้คุณจะต้องมีเครื่องบินหลายลำเพื่อให้ครอบคลุมทุกด้านซึ่งหมายความว่าคุณจะต้องจบด้วยกล่องต่อไป
ฟิสิกส์ : colliders เรขาคณิตง่าย ๆ (ทรงกลม, กล่อง, ฯลฯ ) จะเร็วกว่าเสมอในการคำนวณเมื่อเทียบกับ colliders ตาข่ายแบบเต็มเนื่องจากไม่ได้ตรวจสอบใบหน้าทั้งหมดของตาข่าย สามารถใช้ raycasts "แบบง่าย" หรือการคำนวณระยะทาง (เช่นระยะทางถึงศูนย์กลางของทรงกลมลบด้วยขนาดทรงกลม)
สำหรับเอนจิ้นฟิสิกส์อื่น ๆ ที่มี "เครื่องบิน collider" แยกต่างหาก (ซึ่ง Unity ไม่ได้) จะไม่มี "ดีกว่า" เครื่องบินอาจมีประสิทธิภาพการทำงานที่เร็วขึ้นเล็กน้อย แต่คุณอาจพบกับปัญหาของวัตถุที่รวดเร็วผ่านมันไปโดยไม่เกิดการชนกัน แล้วคุณจะเหลือทั้งมี colliders หนา (เพื่อให้กล่องแทนของเครื่องบิน) หรือย้ายไปอย่างต่อเนื่อง Collission ตรวจจับ (CCD) ตามที่อธิบายไว้ที่นี่
อีกสิ่งหนึ่งที่เกี่ยวกับการแสดงผล: เมื่อคุณใช้การทำแผนที่เงาของคุณเองผนังที่ทำจากกล่องสามารถเหนือกว่ากำแพงที่ทำจากเครื่องบินเนื่องจากการแพนกล้องที่สามารถปรากฏขึ้นพร้อมกับเครื่องบิน
นี่คือคำอธิบายของอาการ:
http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-16-shadow-mapping/#peter-panning
ฉันมักจะบอกเสมอว่าถ้าหากคุณมีเงาที่ดีที่สุดที่จะทำให้เป็นของแข็งเพื่อช่วยในการมีเลือดออกเนื่องจากความแตกต่างในเชิงลึกคือขนาดเล็กและจะมีเลือดออก
ฉันอาจจะผิด แต่ฉันสร้างกำแพงและสิ่งต่าง ๆ ของฉันแบบนั้นทั้งสองด้านกำแพงจะมีเพียงไม่กี่ verts ดังนั้นมันจึงไม่น่าจะประหยัดได้มากนักโดยใช้เครื่องบิน
มีบางสิ่งที่ฉันทิ้งไว้ แต่ส่วนใหญ่จะเป็นด้านล่างหรือด้านบนของสิ่งที่มีสิ่งต่าง ๆ มากมายรอบ ๆ มันเพื่อช่วยในการมีเลือดออกเบา ๆ
ฉันทำแบบเดียวกันกับวิชาฟิสิกส์ทุกคนไม่ได้คิดอย่างนั้นจริง ๆ แต่สำหรับฉันแล้วมันดูเหมือนถูกต้องที่จะใช้กำแพงเป็นกำแพงและเครื่องบินเป็นระนาบ แต่นั่นเป็นเพียงฉัน