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.