โดยพื้นฐานแล้วฉันต้องการที่จะลบความจำเป็นในการสร้างสัญญาณรบกวนจาก CPU ไปยัง GPU จากที่นั่นฉันต้องการสร้างภูมิประเทศสำหรับโลกสามมิติโดยใช้เสียงนี้เป็นความหนาแน่นในจุด voxel หลังจากนี้ฉันต้องการนำความหนาแน่นเหล่านั้นมารวมกันเป็นรูปหลายเหลี่ยม (สร้างจุดยอด) ที่แสดงถึงภูมิประเทศของโลก
นี่เป็นเรื่องปกติและทุกอย่าง แต่ฉันยังต้องการที่จะทำให้โลกผิดปกติแบบไดนามิกในเวลาจริง เมื่อฉันมาถึงจุดนี้ฉันมีปัญหาในการพยายามนำจุดยอดกลับไปที่ CPU เพื่อทำสิ่งต่าง ๆ เช่นการตรวจจับการชนและการคำนวณเกมทั้งหมดที่ฉันต้องการมีส่วนร่วมกับ CPU ไม่ใช่ GPU
ดังนั้นคำถามคือฉันจะรับเซตย่อยของจุดยอดกลับไปยัง CPU เพื่อจัดการกับการชนกันของสิ่งอื่นได้อย่างไร
และคำถามอีกข้อหนึ่ง: มีวิธีง่าย ๆ ในการตั้งจุดยอดและสร้างดัชนีจากพวกเขาบน GPU หรือไม่?
ฉันสับสนเช่นเดียวกับชนิดของเฉดสีที่ฉันควรใช้สำหรับสิ่งที่แตกต่างเหล่านี้ ฉันได้ยินคนที่ใช้ pixel shader เพื่อรวบรวมความหนาแน่นแล้วใช้ geometry shader สำหรับจัดการกับการสร้างภูมิประเทศจากจุดยอดแล้วก็รวมส่วนยอด shader เพื่อทำการเปลี่ยนรูปแบบไดนามิก
ฉันใช้ C # 4.0, .NET 4.0 และ XNA Game Studio 4.0