2016-06-30 12 views
5

ओपनजीएल और जीएलएसएल की बात आती है जब मैं एक पूर्ण नौसिखिया हूं। यही कारण है कि ने कहा, जब ShaderToy का उपयोग कर मैं अक्सर देखने की तरह कुछ का उपयोग कर लोग: ओपन के distance समारोह कीलोग OpenGL के दूरस्थ फ़ंक्शन पर sqrt (dot (distanceVector, distanceVector) का उपयोग क्यों करते हैं?

vec2 uv = fragCoord/iResolution; 
vec2 centerPoint = vec2(0.5); 

vec2 distanceVector = uv - centerPoint; 
float dist = sqrt(dot(distanceVector, distanceVector)); 

:

vec2 uv = fragCoord/iResolution; 
vec2 centerPoint = vec2(0.5); 

float dist = distance(uv, centerPoint); 

मैं सिर्फ उत्सुक क्यों है कर रहा हूँ (मेरा अनुमान है कि यह कुछ नहीं है है distance के लिए गति या समर्थन के साथ करें)।

मैं कम समझता हूं कि यदि तर्क समान हैं, तो डॉट उत्पाद की वर्ग रूट वेक्टर की लंबाई के बराबर होती है: दूरी?

उत्तर

5

अनिवार्य रूप से एक ही बात कर रहा है, लोगों को अक्सर दो किसी एक कारण से sqrt विकल्प चुनें: 1. वे के बारे में पता नहीं है/दूरी समारोह 2. वे खुद को और अपने स्वयं के गणित पर भरोसा कर रहे साबित होता है कि याद एक बग का कारण बनने में कोई समस्या नहीं है (ओपनजीएल समस्याओं से परहेज)

+0

मेरे लिए काम करता है। धन्यवाद। – bradleygriffith

+0

क्या यह तेज़ है? या आप दो समारोह चक्रों की तुलना कर सकते हैं? –

संबंधित मुद्दे