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

VOlumetric piXEL (องค์ประกอบรูปภาพตามปริมาตร) วิธีในการเก็บข้อมูลปริมาณเป็นตารางปกติของค่า แท็กนี้ควรใช้กับคำถามที่เกี่ยวข้องกับ voxels

5
ทำงานกับก้อนจำนวนมาก ปรับปรุงประสิทธิภาพ?
แก้ไข:เพื่อสรุปคำถามฉันมีโลกตาม voxel (สไตล์ Minecraft (ขอบคุณคอมมิวนิสต์ Duck)) ซึ่งเป็นทุกข์จากการทำงานที่ไม่ดี ฉันไม่ได้เป็นแหล่งกำเนิดบวก แต่ต้องการคำแนะนำที่เป็นไปได้เกี่ยวกับวิธีกำจัดมัน ฉันกำลังทำงานในโครงการที่โลกประกอบด้วยลูกบาศก์จำนวนมาก (ฉันจะให้ตัวเลขแก่คุณ แต่เป็นโลกที่ผู้ใช้กำหนด) หนึ่งการทดสอบของฉันอยู่ประมาณบล็อก (48 x 32 x 48) โดยทั่วไปบล็อกเหล่านี้จะไม่ทำอะไรเลยในตัวเอง พวกเขานั่งอยู่ตรงนั้น พวกเขาเริ่มใช้เมื่อมันมาถึงการมีปฏิสัมพันธ์ของผู้เล่น ฉันต้องตรวจสอบก้อนที่ผู้ใช้โต้ตอบกับเมาส์ (เลื่อนเมาส์คลิก ฯลฯ ) และตรวจจับการชนเมื่อผู้เล่นเคลื่อนที่ ตอนนี้ฉันมีความล่าช้าอย่างมากในตอนแรกวนไปทุกช่วงตึก ฉันจัดการเพื่อลดความล่าช้านั้นโดยวนลูปผ่านบล็อกทั้งหมดและค้นหาบล็อกที่อยู่ในช่วงของอักขระและจากนั้นวนซ้ำผ่านบล็อกเหล่านั้นสำหรับการตรวจจับการชน ฯลฯ อย่างไรก็ตามฉันยังคงอยู่ที่ 2 เฟรมต่อวินาทีที่น่าหดหู่ ใครบ้างมีความคิดอื่น ๆ เกี่ยวกับวิธีที่ฉันสามารถลดความล่าช้านี้ Btw ฉันใช้ XNA (C #) และใช่มันเป็น 3d
12 xna  3d  frame-rate  voxels 

3
ปรับตาข่ายให้เหมาะสมสำหรับทิวทัศน์ลูกบาศก์ voxel
เล่นกับการสร้าง minecraftish / lego world landscapes ใน Unity 3D (สร้าง voxel landscapes with cubes) ฉันพบว่า mesh ที่สร้างขึ้นสำหรับทิวทัศน์เหล่านี้ใช้หน่วยความจำจำนวนมาก ในปัจจุบันตาข่ายประกอบด้วยเพียงจุดยอดสำหรับด้านที่มองเห็นของก้อน การใช้หน่วยความจำสำหรับภูมิประเทศที่ซับซ้อนอาจใช้เวลา 6 หรือ 7 ร้อย megs ตาข่ายเหล่านี้อาจปรับให้เหมาะสม แต่ฉันพยายามหาอัลกอริธึมที่เหมาะสมในการทำเช่นนี้ อัลกอริทึมต้องคำนึงถึงว่าคุณไม่ต้องการบล็อก "ผสาน" ที่มีประเภทภูมิประเทศที่แตกต่างกัน ฉันเดาว่าการเริ่มต้นที่ง่ายจริงๆอาจจะแค่ประมวลผลบล็อคทั้งหมดตามแกนหนึ่งและทำเรตติ้งพิเศษสำหรับอีกสองแกน ฉันต้องการรักษารูปร่างของตาข่ายนั่นคือไม่มีการรวมจุดยอดไปยังจุดที่มีการเปลี่ยนแปลงพื้นที่ว่างเปล่าหรือของแข็ง เหตุผลก็คืออาจมีสิ่งมีชีวิต / ฯลฯ ที่ยังคงต้องไปรอบ ๆ ตาข่าย ดังนั้นฉันไม่สามารถสร้างรายละเอียดที่ต่ำมากบิดเบือนตาข่าย ความคิด / คำแนะนำ / เคล็ดลับเกี่ยวกับเรื่องนี้?

2
การสร้างถ้ำที่มีหนอน Perlin
ขณะนี้ฉันกำลังพยายามสร้าง Minecraft เช่นภูมิประเทศ voxel ด้วย 3D Simplex Noise และยังต้องการใช้ถ้ำ ฉันพบวิธีการของ Perlin Worms ในชุดข้อความนี้ซึ่งสร้างผลลัพธ์ที่ดีจริงๆ อย่างไรก็ตามฉันไม่มีเงื่อนงำเกี่ยวกับวิธีสร้างเป็นชิ้นโดยพื้นฐาน เป็นไปได้หรือมีทางเลือกอื่นใดที่สร้างเวิร์มที่คล้ายกันเช่นถ้ำบนก้อนโดยพื้นฐาน? แก้ไข: นี่คือปัญหาที่ฉันไม่ทราบวิธีการแก้ไข แก้ไข 2: นี่เป็นผลมาจากการรวมสัญญาณรบกวน Multifractal 2 มิติกับความสูงของสัญญาณรบกวนแบบ Simplex ยังคงต้องการการปรับแต่ง แต่นี่เป็นผลลัพธ์ที่ฉันต้องการ ขอบคุณ Byte56

2
การวิเคราะห์โครงสร้างทำได้อย่างไรในเกม (เช่น: การสร้างสะพานขุดหรือตายและ 3D)
จากสิ่งที่ฉันเข้าใจระบบมัดแบบอินเทอร์แอคทีฟแบบทั่วไปจะต้องมีการคำนวณที่สำคัญเนื่องจากทุกองค์ประกอบมีผลต่อทั้งระบบ ฉันคิดว่าคุณสามารถหยุดยั้งการทำซ้ำตามจำนวนที่กำหนดในราคาที่ถูกต้องในการจำลอง แต่ฉันไม่รู้ว่านี่เป็นวิธีการที่เกมเหล่านี้ใช้หรือไม่ (เกมสร้างสะพานเป็นตัวอย่างของระบบมัด) ในทางกลับกันเกมอย่าง Dig หรือ Die มีระบบโครงสร้างที่ค่อนข้างซับซ้อนซึ่งใช้แรงบิดเข้ากับการพิจารณา (ผมเชื่อว่า) และการบีบอัดและรวดเร็วมากและใช้งานได้กับระบบที่กว้างขวางมาก ฉันเดาว่าการคำนวณพื้นฐานอาจคล้ายคลึงกัน แต่ถ้าไม่ใช่ฉันสนใจทั้งสองวิธี พวกคุณรู้หรือไม่ว่าสิ่งเหล่านี้เกิดขึ้นได้อย่างไร? พวกเขามีข้อ จำกัด โดยพลการหรือพวกเขาใช้อัลกอริทึมที่แตกต่างกันโดยสิ้นเชิง? นอกจากนี้ฉันคิดว่าสิ่งที่พวกคุณเกิดขึ้นสามารถนำไปใช้กับระบบ 3D แต่ถ้าไม่หรือถ้ามันไม่ชัดเจนโปรดอย่างน้อยโปรดให้คำแนะนำเกี่ยวกับวิธีที่คุณสามารถใช้มันสำหรับ 3D เพราะฉันสนใจทั้ง 2D และ 3D เกม. ฉันรู้ว่าฉันไม่ควรจะขอบคุณที่นี่ แต่ฉันพบว่าไม่ยุติธรรมที่จะไม่ขอบคุณอย่างน้อยสำหรับเวลาของคุณล่วงหน้าฉันหวังว่าย่อหน้านี้จะไม่ถูกลบ แก้ไข: ถ้าฉันต้องเดาฉันจะบอก Dig หรือ Die เก็บเวกเตอร์สำหรับแต่ละบล็อคแล้วเรียกใช้อัลกอริทึมซ้ำจนถึงจุดที่ความแม่นยำพิเศษในการจำลองนั้นไม่มีความหมายสำหรับข้อ จำกัด ของระบบ (ตัวอย่างเช่น ระบบจะใหญ่เกินไปที่จะไม่ยุบอยู่แล้ว) ดังนั้นจึงถูก จำกัด ด้วยจำนวนรอบซ้ำ (เนื่องจากขึ้นอยู่กับแอปพลิเคชัน) แต่ฉันอาจจะผิด

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

3
อัลกอริทึมเพื่อดูว่าสอง voxels เชื่อมต่อกันหรือไม่
ฉันกำลังมองหาอัลกอริทึมที่ดีสำหรับปัญหาต่อไปนี้: กำหนดตาราง voxels แบบ 3 มิติ (ซึ่งอาจว่างเปล่าหรือเติมเต็ม) ถ้าฉันเลือก voxels ที่ไม่ติดกันสองตัวฉันต้องการทราบว่าพวกมันเชื่อมต่อกันด้วยหรือไม่ voxels อื่น ๆ ตัวอย่างเช่น (เพื่อแสดงให้เห็นถึงสถานการณ์ใน 2D) โดยที่ # เป็นสี่เหลี่ยมจัตุรัสที่กรอก: 1 2 3 a # # # b # # c # # # หากฉันเลือก a3 และ c3 ฉันต้องการตรวจสอบโดยเร็วที่สุดหากพวกเขาเชื่อมต่ออยู่ หากมีเส้นทางระหว่าง a3 และ c3 ถึงพิกเซลที่เติม (สถานการณ์จริงอยู่ในตาราง voxel 3D แน่นอน) ฉันดูอัลกอริธึมเติมน้ำท่วมและค้นหาอัลกอริธึมเส้นทาง แต่ฉันไม่แน่ใจว่าจะเลือกแบบใด ทั้งสองทำงานที่ไม่จำเป็น: …

2
Ray Marching นำไปใช้กับโลกที่มีชีวิตชีวาได้อย่างไร
ฉันคิดว่าฉันเข้าใจพื้นฐานของสนามเรย์มาร์ช คุณจำลองฉากของคุณด้วยฟิลด์ระยะไกล (เช่น: http://iquilezles.org/www/articles/distfunctions/distfunctions.htm ) จากนั้นสำหรับแต่ละพิกเซลที่คุณฉายรังสีให้เริ่มจากจุดเริ่มต้นของรังสี ค้นหาระยะทางไปยังวัตถุที่ใกล้ที่สุดที่จุดนั้นและเพิ่มจุดตามระยะทางที่ใกล้ที่สุดจนกว่าคุณจะตีอะไร ฉันจัดการที่จะทำ renderer ง่ายและนั่นคือที่ที่คำอธิบายส่วนใหญ่ของเทคนิคหยุด นี่ทำให้ฉันมีคำถามบางอย่างเกี่ยวกับวิธีการใช้ SDF Ray Marching ในสถานการณ์จริง: คำถามที่ 1: ในเกมจริงฉากมักจะซับซ้อนและโหลดบน CPU โดยมีวัตถุแบบไดนามิกมากมาย ฉันเข้าใจการบดเคี้ยวแบบพื้นฐาน (เช่น octrees) และด้วยการเรนเดอร์รูปหลายเหลี่ยมฉันจะสร้างรายการ (บน CPU) ของรายการในมุมมอง frustrum เพื่อเรนเดอร์ ดังนั้นจินตนาการว่าฉันมีฉากที่ซับซ้อนมากซึ่งมีตัวละครและวัตถุแบบไดนามิกเคลื่อนไปมาบนหน้าจอควบคุมโดยซีพียู ฉันจะสตรีมวัตถุที่ฉันต้องการให้แสดงกับ GPU ในแต่ละเฟรมได้อย่างไร ทุกตัวอย่างมีฉากฮาร์ดโค้ดใน GLSL บางคนสามารถแบ่งปันตัวอย่างของระดับที่ถูกส่งไปยัง shader แบบไดนามิกได้หรือไม่? คำถามที่ 2: วัตถุมีหลายสีได้อย่างไร ฟังก์ชั่นระยะทางเพียงแค่คืนค่าระยะทาง แต่การใช้งานทั่วไปส่งสีกลับมาได้อย่างไร (เช่นคุณกดทรงกลมสีแดงและไม่ใช่บลูคิวบ์) หากนี่เป็นการใช้งานซีพียูฉันสามารถเรียกใช้ฟังก์ชันสากลภายในฟังก์ชันระยะทางเมื่อมีการตีเพื่อยุติเรย์มาร์เชอร์ เนื้อ / สี แต่คุณจะส่งคืนสีหรือพื้นผิวของรายการใน GLSL …

2
วิธีการตรวจสอบว่าห้องที่ใช้ voxel 3D ถูกปิดผนึกอย่างมีประสิทธิภาพ
ฉันเคยมีปัญหาบางอย่างกับการพิจารณาว่าห้องขนาดใหญ่ถูกผนึกในห้อง 3D แบบ voxel หรือไม่ ฉันอยู่ในจุดที่ฉันพยายามอย่างหนักที่สุดในการแก้ปัญหาโดยไม่ขอความช่วยเหลือ แต่ไม่พยายามให้มากพอฉันจึงขอความช่วยเหลือ เพื่อชี้แจงให้ชัดเจนว่าเป็นสิ่งที่ไม่มีรูในห้อง มีเครื่องซีลออกซิเจนซึ่งตรวจสอบว่าห้องถูกปิดผนึกหรือไม่และขึ้นอยู่กับระดับของออกซิเจน ตอนนี้นี่เป็นวิธีที่ฉันทำ: เริ่มต้นที่บล็อกด้านบนกระเบื้องจับแมวน้ำ (ช่องระบายอากาศอยู่ที่ใบหน้าด้านบนของเครื่องปิดผนึก) วนซ้ำวนซ้ำในทั้ง 6 ทิศทางที่อยู่ติดกัน หากไทล์ที่อยู่ติดกันเป็นไทล์แบบไม่มีการดูดให้ดำเนินการต่อผ่านลูป หากแผ่นที่อยู่ติดกันไม่เต็มหรือเป็นแผ่นสูญญากาศให้ตรวจสอบว่ามีบล็อกที่อยู่ติดกันหรือไม่ ทุกครั้งที่มีการตรวจสอบไพ่ให้ลดจำนวนตัวนับ หากการนับมีค่าเป็นศูนย์หากบล็อกสุดท้ายอยู่ติดกับแผ่นสูญญากาศให้ส่งคืนพื้นที่ที่ถูกปิดผนึก หากจำนวนการเข้าศูนย์เป็นศูนย์และบล็อกสุดท้ายไม่ใช่แผ่นสูญญากาศหรือลูปวนซ้ำจะสิ้นสุดลง (ไม่มีแผ่นสูญญากาศเหลืออยู่) ก่อนที่ตัวนับจะเป็นศูนย์พื้นที่จะถูกปิดผนึก หากพื้นที่ไม่ได้ปิดผนึกให้เรียกใช้การวนซ้ำอีกครั้งด้วยการเปลี่ยนแปลงบางอย่าง: ตรวจสอบบล็อกที่อยู่ติดกันสำหรับแผ่น "อากาศระบายอากาศ" แทนแผ่นสูญญากาศ แทนที่จะใช้ตัวนับลดระดับให้ทำต่อไปจนกว่าจะไม่พบแผ่น "อากาศระบายอากาศ" ที่อยู่ติดกัน เมื่อวนรอบเสร็จแล้วให้ตั้งค่าบล็อกที่เลือกแต่ละบล็อกเป็นแผ่นสูญญากาศ นี่คือรหัสที่ฉันใช้: http://pastebin.com/NimyKncC ปัญหา: ฉันใช้การตรวจสอบนี้ทุก 3 วินาทีบางครั้งเครื่องซีลจะต้องวนซ้ำหลายร้อยบล็อกและโลกขนาดใหญ่ที่มีเครื่องปิดผนึกออกซิเจนหลายวงวนซ้ำแบบวนซ้ำเหล่านี้ทุกสองสามวินาทีอาจเป็นเรื่องยากมากสำหรับซีพียู ฉันสงสัยว่าใครที่มีประสบการณ์เกี่ยวกับการเพิ่มประสิทธิภาพสามารถให้มือฉันหรืออย่างน้อยก็ชี้ให้ฉันไปในทิศทางที่ถูกต้อง ขอบคุณมัด
10 java  voxels  recursion 

4
จำเป็นต้องใช้ฮาร์ดแวร์ชนิดใดในการสร้าง Minecraft ขนาดเท่าแผนที่?
ฉันกำลังคิดเกี่ยวกับปัญหานี้ เป็นไปได้ไหมกับเทคโนโลยีปัจจุบันที่จะสร้างโลกจำลอง 1: 1 ในเกมที่ใช้ voxel? โครงสร้างข้อมูลที่ดีที่สุดในการจัดเก็บแผนที่ยักษ์นี้คืออะไร? อัลกอริทึมใดที่ควรใช้เพื่อแสดงโครงสร้างข้อมูลนี้แบบเรียลไทม์ คำถามเหล่านี้ทำให้สมมติฐานเหล่านี้: แต่ละ voxel มีความละเอียด 1 ลูกบาศก์เมตร เพื่อความเรียบง่ายแต่ละ voxel ต้องการข้อมูลเมตาดาต้าเพียง 1 ไบต์ ข้อมูลนี้จะถูกใช้เพื่อจัดเก็บข้อมูลระบุ "ประเภท" ของ voxel (ดินน้ำหิน ฯลฯ ) ปริมาตรดินเป็น 1 * 10 - 21 ลูกบาศก์เมตร โดย "เทคโนโลยีปัจจุบัน" ฉันรวมสิ่งใดก็ตามที่มีขายทั่วไป แต่ไม่ใช่ซุปเปอร์คอมพิวเตอร์ เฉพาะภูมิประเทศของโลกและ Bathymetry เท่านั้นที่จะใช้ในการสร้างแผนที่ ไม่รวมถึงการสร้างมนุษย์พืชหรือถ้ำ บล็อกใต้ดินจะถูกเลือกตามการศึกษาทางธรณีวิทยาเช่นหากความลึกมากกว่า 3000 กม. จะทำให้เกิด 'magma' voxel เช่นเดียวกับใน Minecraft แผนที่ไม่คงที่สามารถปรับเปลี่ยนได้ในเกม …

2
การจัดเก็บ voxels สำหรับ voxel Engine ใน C ++
ฉันกำลังพยายามเขียนโปรแกรม voxel เพียงเล็กน้อยเพราะมันสนุก แต่ก็พยายามหาวิธีที่ดีที่สุดในการเก็บ voxels จริง ฉันรู้ว่าฉันจะต้องมีชิ้นส่วนบางอย่างดังนั้นฉันไม่จำเป็นต้องมีทั้งโลกในความทรงจำและฉันรู้ว่าฉันต้องการให้พวกเขามีประสิทธิภาพที่เหมาะสม ฉันอ่านเกี่ยวกับ octrees และจากสิ่งที่ฉันเข้าใจมันเริ่มต้นด้วย 1 cube และในลูกบาศก์นั้นสามารถเพิ่มได้อีก 8 ลูกและใน 8 ลูกบาศก์เหล่านั้นอาจเป็นอีก 8 ลูกเป็นต้น แต่ฉันไม่คิดว่ามันเหมาะกับเครื่องยนต์ voxel ของฉันเพราะ ลูกบาศก์ / รายการ voxel ของฉันทั้งหมดจะมีขนาดเท่ากันทุกประการ อีกทางเลือกหนึ่งคือเพียงสร้างอาร์เรย์ขนาด 16 * 16 * 16 และมีขนาดนั้นหนึ่งอันและคุณเติมด้วยรายการ และส่วนที่ไม่มีรายการใด ๆ จะมีค่า 0 เป็นค่า (0 = อากาศ) แต่ฉันเกรงว่านี่จะเสียความทรงจำมากมายและจะไม่เร็วมาก จากนั้นอีกตัวเลือกหนึ่งคือเวกเตอร์สำหรับแต่ละอันและเติมด้วยลูกบาศก์ และคิวบ์ยังคงตำแหน่งในก้อน สิ่งนี้จะช่วยประหยัดหน่วยความจำ (ไม่มีบล็อกอากาศ) แต่ทำให้มองหาลูกบาศก์ที่ตำแหน่งเฉพาะช้ากว่ามาก ดังนั้นฉันไม่สามารถหาทางออกที่ดีได้และฉันหวังว่าจะมีคนช่วยฉันได้ แล้วคุณจะใช้อะไรและทำไม …
9 c++  voxels 

5
ทำไมฉันไม่สามารถใช้โอเปอเรเตอร์ '> =' กับ Vector3s ได้
ฉันพยายามที่จะได้รับรูปสี่เหลี่ยมผืนผ้าย้ายไปมาระหว่างสองตำแหน่งที่ผมพูดถึงและ_positionA ทั้งสองประเภท_positionB Vector3สี่เหลี่ยมผืนผ้าเคลื่อนไหวได้ดี อย่างไรก็ตามเมื่อมันมาถึง_positionBมันจะไม่เคลื่อนที่ในทิศทางตรงกันข้ามเหมือนอย่างที่ควร ฉันกลับไปที่โค้ดเพื่อดู ฉันมาถึงข้อสรุปว่าเป็นวัตถุย้ายที่ifงบในรหัสพลาดเฟรมซึ่งในตำแหน่ง rects _positionBเท่ากับ ฉันตัดสินใจที่จะปรับเปลี่ยนรหัสไปในทิศทางที่ตรงกันข้ามถ้าตำแหน่ง rects คือมากกว่าหรือเท่ากับ _positionBรหัสของฉันไม่ยาวเกินไปดังนั้นฉันจะแสดงด้านล่าง: using UnityEngine; using System.Collections; public class Rectangle : MonoBehaviour { private Vector3 _positionA = new Vector3(-0.97f, -4.28f); //Start position private Vector3 _positionB = new Vector3(11.87f, -4.28f); //End position private Transform _rect_tfm; private bool _atPosA = false, _atPosB = …
9 unity  c#  vector  mathematics  vector  matrix  unity  c#  transformation  java  3d  terrain-rendering  shading  ios  opengl-es  opengl  rendering  optimization  python  scripting  minecraft-modding  modding  pc  3d-meshes  mesh  culling  point-cloud  networking  interpolation  mathematics  game-design  ai  game-mechanics  animation  unreal-4  skeletal-animation  3dsmax  unity  c#  3d  opengl  c++  textures  unity  ide  cocos2d  cocos2d-x-js  unity  c#  mono  il2cpp  c++  game-loop  timer  linux  flash  actionscript-3  java  glsl  c++  vector  entity-component  c++  directx11  windows  visual-studio  libgdx  mouse  unity  c#  architecture  storage  unity  c#  rotation  coordinates  quaternion  vrpn  movement  vector  unreal-4  unity  shaders  unity  gui  text  bug  shooter  3d  animation  rendering  voxels  c++  mmo  multithreading  linux  textures  procedural-generation  terrain-rendering  multiplayer  mmo  game-state  java  android  libgdx  opengl  procedural-generation  unity  gui  3d  animation  tools  geometry-shader  mobile  advertisements  unity  c#  animation  scripting  unity  animation  unityscript  coroutines  unity  shaders  lighting  camera 

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 

2
บางคนสามารถอธิบายการแสดงเส้นโค้งคู่ได้หรือไม่
ฉันพยายามทำความเข้าใจกับการเรนเดอร์ voxel และมองดู contouring คู่ (DC) จนถึงตอนนี้ฉันเข้าใจสิ่งนี้มาก: ใช้ฟังก์ชั่นความหนาแน่นสำหรับชุดของจุดกริด (เช่นฟังก์ชั่นสัญญาณรบกวน) ค้นหาว่าขอบใดใน gird มีการเปลี่ยนแปลงระหว่างจุดสิ้นสุด จากขอบเหล่านี้จะสร้างจุดตัด (เช่นเวกเตอร์) ตอนนี้ที่นี่คือที่ที่ฉันติดอยู่ต่อไปจะสร้างบรรทัดฐาน แต่อย่างไร เมื่อดูที่หัวข้อนี้ภาพนี้ปกติจะหมดไป การทำวิจัยบ่งชี้ว่าบรรทัดฐานจะถูกสร้างขึ้นจากหน้าตา ถูกต้องหรือไม่ที่จะคิดว่าฉันเปลี่ยนจากเสียงเป็น isosurface เป็นบรรทัดฐาน? ถ้าเป็นเช่นนั้นฉันจะสำเร็จแต่ละขั้นตอนได้อย่างไร เพื่อความเข้าใจของฉันขั้นตอนต่อไปจะเป็นดังต่อไปนี้จากกระดาษ DC ; สำหรับแต่ละขอบที่แสดงการเปลี่ยนแปลงเครื่องหมายให้สร้างรูปสี่เหลี่ยมที่เชื่อมต่อจุดลดขนาดของสี่ลูกบาศก์ที่มีขอบ คำพูดนี้แสดงด้วยภาพด้านบนหรือไม่? ในที่สุดขั้นตอนต่อไปคือการเรียกใช้ QEF ด้วยจุดตัดและบรรทัดฐานและสิ่งนี้จะสร้างข้อมูลจุดสูงสุดของฉัน ถูกต้องหรือไม่

3
วิธีจัดการกับ Block World อย่าง Minecraft
ฉันต้องการเขียนเกมง่ายๆที่มีโลกบล็อกเหมือนกับใน Minecraft คำถามเชิงทฤษฎีของฉันคือวิธีที่ดีที่สุดในการจัดการข้อมูลบล็อกนี้ในระหว่างการเล่น ความคิดแรกของฉันคือชุดใหญ่ แต่จะทำให้หน่วยความจำหมดฉันคิดว่า บางทีฉันอาจต้องโหลดบล็อกที่อยู่ใกล้กับผู้เล่นเท่านั้น ฉันจะจัดการการโหลดข้อมูลบล็อกที่ต้องการจากไฟล์และการถือเฉพาะข้อมูลที่ต้องการในหน่วยความจำได้อย่างไร
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.