रैंप शेडिंग या लाइटिंग क्या है?


14

रैंप शेडिंग या लाइटिंग क्या है और यह कैसे काम करता है? क्या यह टॉन शेडिंग से अलग है या यह एक ही अवधारणा है? रैंप शेडिंग बनाम ब्लिन-फोंग या लैम्बर्ट के लिए स्पेक्युलैरिटी की अलग-अलग गणना कैसे की जाती है?

जवाबों:


21

पारंपरिक ब्लाइन / फोंग शेडिंग में, आप सतह पर सामान्य और प्रकाश की दिशा के बीच कोण के कोसाइन को मापकर पिक्सेल के लिए फैलाना शब्द की गणना करते हैं। तो, इस मामले में, एक साधारण shader कुछ इस तरह दिखेगा:

float DiffuseCoeff(in float3 pos, in float3 normal, in float3 lightPos) {
    float3 lightDir = lightPos - pos;
    lightDir.normalize();

    return max(0.0, Dot(lightDir, normal));
}

रैंप शेडिंग में, विचार 1D लुकअप टेक्सचर द्वारा डिफ्यूज़ गुणांक को संशोधित करना है। इस बनावट में आप जो डालते हैं उसके आधार पर आप विभिन्न प्रभाव उत्पन्न कर सकते हैं। इसलिए, फैलाने वाले गुणांक की गणना करने के लिए हमारा शेडर फ़ंक्शन:

texture1D rampTex;
float DiffuseCoeff(in float3 pos, in float3 normal, in float3 lightPos) {
    float3 lightDir = lightPos - pos;
    lightDir.normalize();

    // Map value from [-1, 1] to [0, 1]
    float rampCoord = Dot(lightDir, normal) * 0.5 + 0.5;
    return tex1D(rampTex, rampCoord);
}

उदाहरण के लिए, यदि हम एक सेल शेडर को लागू करना चाहते हैं, तो हम जो कर सकते हैं वह एक रैंप बनावट उत्पन्न करता है जो एक कदम समारोह का अनुकरण करता है:

यहाँ छवि विवरण दर्ज करें

आप एक ही विचार का उपयोग कर सकते हैं स्पेक्युलर लाइटिंग के लिए अलग-अलग प्रभाव उत्पन्न करते हैं। "रैंप" वास्तव में केवल बनावट द्वारा छायांकन मूल्य को संशोधित करने के विचार को संदर्भित करता है।

संपादित करें : टीम फोर्ट 2 उनके रेंडरिंग में एक रैंप शेडर का उपयोग करता है। आप इस पत्र में विवरण देख सकते हैं:

http://www.valvesoftware.com/publications/2007/NPAR07_IllustrativeRenderingInTeamFortress2.pdf

धारा 5 के तहत, "डिफ्यूज़ वॉरपिंग फंक्शन" शीर्षक से देखें।


1
बहुत बढ़िया जवाब! डिफ्यूज़ और रैंप लाइटिंग के बीच प्रकाश व्यवस्था के अंतर की व्याख्या बिल्कुल वैसी ही है जैसी मैं देख रहा था। मैं इस टिप्पणी की भी सराहना करता हूं कि रैंप छायांकन की अवधारणा सामान्य रूप से क्या है। एक तरफ एक अतिरिक्त के रूप में, क्या आप संभवतः एक गेम से एक उदाहरण छवि पोस्ट कर सकते हैं जो इस अवधारणा का उपयोग करता है?
स्टैम्पर्ट टर्टल

@Stampyturtle मैंने एक उदाहरण के साथ अपना उत्तर अपडेट किया है।
मकोशा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.