คำถามติดแท็ก octree

5
นักแสดงในเกมควรมีความรับผิดชอบในการวาดภาพตนเองหรือไม่?
ฉันยังใหม่ต่อการพัฒนาเกม แต่ไม่ได้เขียนโปรแกรม ฉัน (อีกครั้ง) เล่นกับเกมประเภท Pong โดยใช้canvasองค์ประกอบของ JavaScript ฉันสร้างPaddleวัตถุที่มีคุณสมบัติดังต่อไปนี้ ... width height x y colour ฉันยังมีPongวัตถุที่มีคุณสมบัติเช่น ... width height backgroundColour draw(). draw()วิธีการในปัจจุบันคือการรีเซ็ตcanvasและที่เป็นที่คำถามขึ้นมา ควรPaddleวัตถุมีdraw()วิธีการรับผิดชอบสำหรับการวาดภาพหรือควรdraw()ของPongวัตถุต้องรับผิดชอบสำหรับการวาดภาพของนักแสดง (ฉันคิดว่าเป็นคำที่ถูกต้องโปรดแก้ไขฉันหากฉันไม่ถูกต้อง) ฉันคิดว่ามันจะเป็น advantagous สำหรับPaddleการวาดตัวเองที่ผมยกตัวอย่างวัตถุสองและPlayer Enemyถ้ามันไม่ได้อยู่ในPongของdraw()ฉันจะต้องเขียนรหัสที่คล้ายกันสองครั้ง การปฏิบัติที่ดีที่สุดที่นี่คืออะไร? ขอบคุณ

2
อะไรคือสถานะของศิลปะในการแบ่งพาร์ติชันของเกม? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันรู้เกี่ยวกับต้นไม้ BSP, Octrees และ Portal ที่ใช้มาเป็นเวลานาน แต่เกมสมัยใหม่ยังคงใช้ระบบนี้หรือพวกเขากำลังใช้สิ่งใหม่ หากเป็นไปได้ด้วยข้อดีข้อเสียให้พิจารณาการเรนเดอร์และการตรวจจับการชนกัน
18 octree  bsp 

1
วิธีการเรนเดอร์ภูมิประเทศขนาดใหญ่อย่างมีประสิทธิภาพได้อย่างไร
เมื่อเร็ว ๆ นี้ฉันติดปัญหาที่คิดเกี่ยวกับวิธีที่ดีที่สุดในการสร้างภูมิประเทศในเกมของฉัน ในโครงการอื่นฉันมักใช้ความสูงของแผนที่ดังนั้นงานหลักทั้งหมดจึงขึ้นอยู่กับเครื่องยนต์ที่ใช้ แต่ตอนนี้ไม่สามารถทำได้เพราะภูมิประเทศมีรูปหลายเหลี่ยมหลายล้านที่ต้องวาดอย่างแม่นยำ นอกจากนี้หลายคนไม่สามารถแยกวิเคราะห์จากเวกเตอร์ Y (เนื่องจากรูปหลายเหลี่ยมที่ซ่อนอยู่ด้านล่าง) นั่นคือแผนผังความสูงไม่เป็นประโยชน์ที่นี่ ในกรณีนี้ฉันต้องใช้วัตถุ COLLADA บางคนบอกให้ฉันแบ่งโมเดลด้วยตัวเองภายในซอฟต์แวร์อย่าง Blender แต่น่าเสียดายที่มันไม่สามารถทำได้เพราะภูมิประเทศเหล่านี้ถูกสร้างขึ้นเป็นชิ้น ๆ ในซอฟต์แวร์อื่นและโหลดหลังจากเข้าสู่เกม ดังนั้นนี่จะเป็นงานที่ยิ่งใหญ่ที่จะต้องหั่นมันด้วยตนเองทุกครั้ง ดังนั้นตั้งแต่สัปดาห์ที่ฉันได้ศึกษาเกี่ยวกับวิธีที่ฉันสามารถแก้ปัญหานี้และขั้นตอนการโหลดตาข่ายนี้ภูมิประเทศภูมิประเทศตาม frustrum กล้องบันทึกประสิทธิภาพมากที่สุดเท่าที่เป็นไปได้ ฉันพบเอกสารจำนวนมากเกี่ยวกับการสร้างตาข่ายโพรซีเดอร์และฉันคิดว่าปัญหาของฉันสามารถแก้ไขได้โดยการแมปตาข่ายเข้ากับแปด นี่คืองานที่ยิ่งใหญ่อย่างน้อยสำหรับฉันและนั่นคือเหตุผลที่ฉันมาที่นี่เพราะฉันไม่ต้องการเสี่ยงที่จะไปในเส้นทางที่ผิดโดยไม่ได้ยินจากคนที่มีประสบการณ์ กล่าวโดยย่อฉันมีจุดยอดและดัชนีนับล้านที่รวมกันเป็นภูมิประเทศ แต่ด้วยเหตุผลที่ชัดเจนว่าฉันไม่สามารถวาดมันได้ในเวลาเดียวกัน จำเป็นต้องมีขั้นตอนบางอย่าง วิธีที่ดีที่สุดในการทำเช่นนั้นคือการรักษาตาข่ายขนาดใหญ่เป็นภูมิประเทศ? มีหนังสือเฉพาะเกี่ยวกับเรื่องนั้นไหม? มีวิธีที่ดีที่สุดที่จะใช้หรือไม่ ขออภัยสำหรับข้อผิดพลาดใด ๆ ฉันเป็นสามเณรมากในพื้นที่นี้

1
สร้าง Octree สำหรับการสร้างภูมิประเทศ
ก่อนหน้านี้ฉันได้ใช้การเดินขบวน cubes / tetrahedra เพื่อสร้าง IsoSurface มันใช้งานได้ ( YouTube ) แต่ประสิทธิภาพการทำงานแย่มากเพราะฉันไม่เคยได้รับการใช้งานระดับรายละเอียดที่แปรผันตามระยะทางในการดู ฉันตัดสินใจที่จะมีอีกไปและทำอย่างถูกต้องในเวลานี้ ฉันเริ่มต้นด้วยการสร้าง OctreeNode ที่ทำงานดังนี้เมื่อBuild()ถูกเรียก หากชิ้นเล็กเกินไปที่จะสร้างกลับมาทันที ทำงานถ้าพื้นผิวผ่านปริมาตรอันนี้ ถ้าเป็นเช่นนั้นตัดสินใจว่าเราต้องการยก LOD (เพราะกล้องปิด) ถ้าเป็นเช่นนั้นให้วางไข่เด็ก 8 คนและเรียกกระบวนการเดียวกันกับพวกเขา ถ้าไม่สร้างตาข่ายโดยใช้ขนาดของโหนดปัจจุบัน บาง PseudoCode: OctNode Build() { if(this.ChunkSize < minChunkSize) { return null; } densityRange = densitySource¹.GetDensityRange(this.bounds); if(densityRange.min < surface < densityRange.max) { if(loDProvider.DesiredLod(bounds)² > currentLoD) { for(i …
9 unity  c#  voxels  octree 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.