OpenGL ES 2.0 प्वाइंट स्प्राइट्स का आकार


15

मैं OpenGL ES 2.0 में पॉइंट स्प्राइट्स को आकर्षित करने की कोशिश कर रहा हूं, लेकिन मेरे सभी बिंदु 1 पिक्सेल के आकार के साथ समाप्त होते हैं ... तब भी जब मैं अपने वर्टिशर शेड में एक उच्च मूल्य के लिए gl_PointSize सेट करता हूं।

मैं अपनी बात को कैसे बड़ा बना सकता हूं?

जवाबों:


24

OpenGL ES 2.0 प्वाइंट स्प्राइट्स का समर्थन करता है; मैं उन्हें कणों के लिए उपयोग करता हूं। बस के glDrawElementsसाथ उपयोग करें GL_POINTS

वर्टेक्स शेडर में, आप बनावट मानचित्रण के लिए टुकड़े के साथ आकार निर्धारित करते हैं gl_PointSizeऔर gl_PointCoordटुकड़े टुकड़े करना में उपयोग करते हैं ।

मेरा शीर्ष shader:

uniform mat4 uMvp;
uniform float uThickness;

attribute vec3 aPosition;
attribute vec2 aTexCoord; 
attribute vec4 aColor;

varying vec4 vColor;

void main() {
    vec4 position = uMvp * vec4(aPosition.xyz, 1.);
    vColor = aColor;
    gl_PointSize = uThickness;
    gl_Position =  position;  
}

मेरा टुकड़ा shader:

uniform sampler2D tex0;
varying vec4 vColor;

void main() 
{
   gl_FragColor = texture2D(tex0, gl_PointCoord) * vColor;
}

यदि आप Android पर हैं, तो आप मेरे फ्रेंच ट्यूटोरियल देख सकते हैं । बिंदु स्प्राइट के साथ एक पूर्ण परियोजना है।


floatटुकड़े टुकड़े में सटीकता को स्पष्ट रूप से निर्दिष्ट करने के लिए मत भूलना - उनके पास डिफ़ॉल्ट floatपरिशुद्धता नहीं है और कुछ ड्राइवरों पर ऐसे शेड संकलित करने में विफल हो सकते हैं।
कियुकन

1

हैरानी की बात है, glLineWidth () अंक भी बड़ा बनाता है:

    GLES20.glLineWidth(8); // Make the edges (and points!) thicker
    GLES20.glDrawArrays(GLES20.GL_POINTS, 0, 38);// 38 is number of my vertexes

आप एक नायक हो। बॉब आशीर्वाद।
नेटपोएटिका

0

OpenGLES 2.0 सीधे प्वाइंट स्प्राइट का समर्थन नहीं करता है। आप या तो अपने glPoints को बनावट कर सकते हैं या मैन्युअल रूप से एक बिंदु पर केंद्रित एक कैमरा-फेसिंग और कैमरा-संरेखित क्वाड बना सकते हैं।


5
असत्य। GL_POINTS और gl_PointSize को वर्टिशर शेडर में उपयोग करें
एलिस

@ Ellis खैर उन्होंने कहा कि तरह की। यदि आप इस लिंक को देखते हैं तो यह GL ES 1 भाग के बारे में बात करता है जो कि पदावनत किया गया था, और कैसे "अपने ग्लेप्स को बुनावट करें"
bobobobo
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.