คำตอบคือมันขึ้นอยู่กับว่า
โดยทั่วไปมีโรงเรียนแห่งความคิดสองแห่ง ขนาดเล็กที่เหมาะสมที่สุดสำหรับทุกสิ่งและค่าย uber-shader
เฉดสีเล็ก ๆ เป็นเช่นนั้น ทำสิ่งหนึ่งและทำได้ดี Uber-shaders ควบคุมการทำงานของพวกเขาในขณะทำงานผ่านเครื่องแบบหรือรวบรวมเป็นกลุ่มของเฉดสีที่แตกต่างกันผ่านมาโครตัวประมวลผลล่วงหน้า (และ / หรือแหล่งกำเนิด shader)
ทางออกที่ดีที่สุดอาจไม่ใช่ แต่เป็นลูกผสมบางประเภท อาจจะมี uber-shaders หรือ uber-shaders ร่วมกับผู้เชี่ยวชาญบางคนในบางกรณี
Shader ขนาดเล็ก
ข้อดี:
- มีแนวโน้มที่จะเร็วขึ้น / ดีที่สุด
- ทำในสิ่งที่คุณต้องการทำ
- สามารถทำสิ่งแปลก ๆ และกำหนดเองได้อย่างง่ายดาย
จุดด้อย:
- หลุดพ้นจากมือได้ง่ายโดยเฉพาะเมื่อจำนวนคุณลักษณะเพิ่มขึ้น
- อาจจะทำงานได้มากขึ้นเว้นแต่ว่าคุณจะมีเฉดสีน้อยมาก
Uber-Shader
ข้อดี:
- ทุกอย่างในที่เดียว
- เป็นมิตรกับศิลปินมากขึ้น (การใช้คุณสมบัติ A พร้อมฟีเจอร์ X เป็นครั้งแรกไม่จำเป็นต้องใช้เวลา coder)
จุดด้อย:
- เวลาในการคอมไพล์ที่ยาวขึ้น
- ผลลัพธ์ที่ดีที่สุดน้อยลง (โดยเฉพาะถ้าเครื่องแบบใช้เพื่อเปิด / ปิดคุณสมบัติ)
- อาจเป็นเรื่องยากมากขึ้นในการแก้ปัญหา / เพิ่มประสิทธิภาพ