การแกล้งทำวัตถุ 3 มิติเพื่อลดจำนวนรูปหลายเหลี่ยม


20

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

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

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

ป้อนคำอธิบายรูปภาพที่นี่


7
ฉันนับ 52 จุดยอดในรั้วนั้น ที่ไม่มาก
Pharap

1
@Phap แต่โปรดจำไว้ว่าจะเกิดอะไรขึ้นเมื่อคุณวางสำเนาหลายพันชุดในเครือข่ายนี้
Philipp

5
@Philipp ถ้า Unity ใช้ Vertex Buffer Objects และเทคนิคการเพิ่มประสิทธิภาพที่คล้ายกันอย่างถูกต้องซึ่งไม่น่าจะมีปัญหา คุณสามารถใช้สไปรท์ป้ายโฆษณากับอัลฟาได้เสมอหากคุณเป็นห่วง หรือดีกว่ายังแสดงสไปรต์ป้ายโฆษณาในระยะไกลและแสดงตาข่ายที่เหมาะสมเมื่อผู้เล่นเข้าใกล้พอ และฉันสงสัยอย่างจริงใจว่าคุณจะได้รับรั้วนับพันที่ถูกวาดไปยังหน้าจอทันที แม้ว่าจะมีรั้วมากกว่า 9000 แห่งในโลก แต่ฉันก็ยังสงสัยว่ามันจะถูกกำจัดจำนวนมาก คุณเคยทำการเปรียบเทียบหรือคุณเพิ่งตั้งสมมติฐานเกี่ยวกับประสิทธิภาพ
Pharap

6
คุณกำลังพัฒนาสำหรับมือถือหรือสำหรับ PC / คอนโซล? อย่างน้อยใน GPU ที่ทันสมัย ​​(อายุ 5 ปีขึ้นไป) GPU รุ่น 52 vertices น่าจะถูกกว่าการทำอัลฟ่าผสม / alpha masking มันขึ้นอยู่กับปัจจัยหลายอย่าง (การครอบคลุมหน้าจอ, GPU, ตัวแบ่งพิกเซลหรือคอขวดแรสเตอร์ ฯลฯ ) แต่การใช้มาสก์อัลฟ่าจะส่งผลให้เกิดการถอนเงินเสมอ คุณควรจะเปรียบเทียบว่าก่อนที่จะปรับให้เหมาะสม
โทเบียส B

2
อินสแตนซ์หนึ่งที่คุณอาจไม่ต้องการทำเช่นนี้อาจเป็นเพราะคุณต้องการละเว้นการตรวจจับการชนในช่องว่างเหล่านั้นเช่นถ้าคุณลองยิงผ่านช่องว่างในวัตถุบางอย่าง (ในนักกีฬาคนแรกบางคน) และ "กระสุน -hole "( Decal ) ปรากฏบน" ช่องว่าง "( model )
DoubleDouble

คำตอบ:


26

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

คุณสามารถนึกถึงภาพของวัตถุ 3 มิติที่ใช้เป็นพื้นผิวของวัตถุ 2D ได้ การอ้างอิงแบบบัญญัติสำหรับสิ่งเหล่านั้นน่าจะเป็นบทที่ 21 ของหนังสือ GPU Gems 3 ที่เรียกว่า "True Impostors" มีให้สาธารณะที่นี่แล้ว อีกหนึ่งการอ้างอิงที่สำคัญคือบทที่ 5.7 ของหนังสือ Game Programming Gems v.2 ที่เรียกว่า "Imposters: Add Clutter" ใน Game Programming Gems 2, Tom Forsyth "

และสามารถสร้างได้อย่างเท่าเทียมกันในทันทีเพื่อจัดการกับการเปลี่ยนแปลงเล็กน้อยในมุมมองหรือเนื้อหาที่สร้างขึ้นแบบรันไทม์ ลองดูที่บทความดีดี Gamasutra ในหัวข้อที่เรียกว่า"แบบไดนามิก 2D Imposters: ง่ายมีประสิทธิภาพ DirectX 9 การดำเนินการ" การพัฒนาต่อไปของแนวคิดได้ปรากฏตัวขึ้นที่"บิลบอร์ดเมฆหา Extreme รุ่นเข้าใจง่าย"

สำหรับคำอธิบายที่ยอดเยี่ยมเกี่ยวกับแนวคิดโปรดดูที่บล็อกนี้: http://blog.wolfire.com/2010/10/Imposters

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

UPDATE: เพื่อความสมบูรณ์ฉันคิดว่าจะเพิ่มสองสิ่งที่ฉันจำได้เมื่อเร็ว ๆ นี้ ข้อแรกคือ: มีวิดีโอ GDC ที่ยอดเยี่ยมที่ผู้กำกับศิลป์ของ SimCity อธิบายวิธีที่พวกเขาใช้ imposters (หนัก) เพื่อให้ได้กราฟิกที่ยอดเยี่ยมของเกมนั้น: "GDC - อาคาร SimCity: Art in the Service of Simulation" . ประการที่สองสำหรับผู้ที่สนใจใน Unreal Engine มันมีคุณสมบัติในตัวที่จะใช้ตัวกระตุ้นดังที่เห็นได้ในเอกสาร


ดังนั้นถ้าฉันสร้างโมเดลรั้วแบบเต็มรูปแบบและใช้ระบบ Real Imposters LOD คุณคิดว่าเป็นอย่างไร
นายแมตต์

5
@ MatthewInglis ฉันไม่สามารถบอกคุณได้อย่างแน่นอนเกี่ยวกับปลั๊กอิน: มันเป็นเวลานานแล้วที่ฉันไม่ได้ใช้ Unity ดังนั้นฉันจึงไม่สามารถตรวจสอบได้ แต่โดยหลักการแล้วใช่ว่าควรสร้าง 2D sprite เวอร์ชั่นที่มีรายละเอียดของวัตถุอย่างสมบูรณ์ คุณจะต้องเล่นกับการกำหนดค่าแม้ว่า หากคุณวางแผนที่จะซื้อปลั๊กอินลองอ่านเอกสารก่อน ( drive.google.com/file/d/0B3GMQtflbloSeHhvUGJmcjluX3M/view ) และติดต่อผู้เขียนเพื่อถามคำถามที่คุณอาจมีเกี่ยวกับผลิตภัณฑ์ของพวกเขาล่วงหน้า
mand

0

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

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