ฉันใช้ XNA สำหรับโครงการของฉันและในบางครั้งฉันเห็นการอ้างอิงถึงความจริงที่ว่าการสลับเอฟเฟกต์สำหรับตาข่ายมีค่าใช้จ่ายค่อนข้างสูงซึ่งทำให้ฉันประหลาดใจเพราะฉันคิดว่าการสลับเอฟเฟกต์เป็นเพียง ไปยัง GPU พร้อมกับพารามิเตอร์ที่เหมาะสม
ฉันสงสัยว่าใครบางคนสามารถอธิบายได้อย่างแม่นยำว่ากระบวนการนี้มีค่าใช้จ่ายเท่าใด และใส่ถ้าเป็นไปได้ 'ค่อนข้าง' เข้ากับบริบทหรือไม่
ตัวอย่างเช่นฉันต้องการใช้ shader สั้น ๆ เพื่อช่วยในการหยิบฉันจะ:
- เปลี่ยนเอฟเฟกต์ของวัตถุทุกชนิดและเปลี่ยนสีที่ไม่ซ้ำกันเพื่อระบุและส่งไปยัง shader
- วาดวัตถุทั้งหมดไปยังเป้าหมายการแสดงผลในหน่วยความจำ
- รับสีจากเป้าหมายและใช้เพื่อค้นหาวัตถุที่เลือก
ส่วนใดของเวลาทั้งหมดที่ใช้ในการทำให้กระบวนการเสร็จสมบูรณ์ สัญชาตญาณของฉันจะบอกว่าการสร้างฉากอีกครั้งไม่ว่า shader จะเรียบง่ายเพียงใดลำดับของขนาดจะช้ากว่าส่วนอื่น ๆ ของกระบวนการดังนั้นทำไมความกังวลทั้งหมดเกี่ยวกับเอฟเฟกต์?