डेमोस्कोप में जीपीयू के अंदर प्रक्रियात्मक सामग्री को रेंडर करने के लिए लोकप्रिय है (स्क्रीन को भरने के लिए एक एकल क्वाड ड्राइंग और जीपीयू को पिक्सल की गणना करने देता है)।
रे मार्चिंग लोकप्रिय है:
इसका मतलब है कि GPU प्रति पिक्सेल कुछ अज्ञात संख्या में लूप पुनरावृत्तियों को निष्पादित कर रहा है (हालांकि आपके पास एक ऊपरी बाध्य हो सकता है maxIterations
)।
चर-लंबाई लूप होने से shader प्रदर्शन कैसे प्रभावित होता है?
सरल रे-मार्चिंग प्यूसीकोड की कल्पना करें:
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, आदि) कैसे प्रभावित हैं? वर्टेक्स शेड्स, लेकिन विशेष रूप से टुकड़े शेड्स?
इसे कैसे अनुकूलित किया जा सकता है?