เป็นที่นิยมในการแสดงเนื้อหาขั้นตอนภายใน GPU เช่นใน demoscene (วาดรูปสี่เหลี่ยมจัตุรัสเดียวเพื่อเติมหน้าจอและปล่อยให้ GPU คำนวณพิกเซล)
เรย์เดินขบวนเป็นที่นิยม:
ซึ่งหมายความว่า GPU กำลังประมวลผลวนซ้ำที่ไม่รู้จักจำนวนหนึ่งต่อพิกเซล (แม้ว่าคุณจะมีขอบด้านบนเหมือนmaxIterations
)
การวนลูปที่มีความยาวผันแปรมีผลต่อประสิทธิภาพของ shader อย่างไร
ลองนึกภาพ psuedocode ray-marching ที่เรียบง่าย:
t = 0.f;
while(t < maxDist) {
p = rayStart + rayDir * t;
d = DistanceFunc(p);
t += d;
if(d < epsilon) {
... emit p
return;
}
}
ตระกูล GPU กระแสหลักต่างๆ (Nvidia, ATI, PowerVR, Mali, Intel, ฯลฯ ) ได้รับผลกระทบอย่างไร Vertex shaders แต่โดยเฉพาะอย่างยิ่ง shader ส่วน?
จะเพิ่มประสิทธิภาพได้อย่างไร