উত্তর:
ওপেনজিএল ইএস ২.০ পয়েন্ট স্প্রাইটসকে সমর্থন করে; আমি কণা জন্য তাদের ব্যবহার। শুধু ব্যবহার glDrawElements
সঙ্গে GL_POINTS
।
ভার্টেক্স শ্যাডারে, আপনি টেক্সচার ম্যাপিংয়ের জন্য আকারটি সেট করে ফ্রেগমেন্ট শেডার gl_PointSize
ব্যবহার gl_PointCoord
করেন।
আমার ভার্টেক্স শ্যাডার:
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;
}
আমার খণ্ড খণ্ডনকারী:
uniform sampler2D tex0;
varying vec4 vColor;
void main()
{
gl_FragColor = texture2D(tex0, gl_PointCoord) * vColor;
}
আপনি যদি অ্যান্ড্রয়েডে থাকেন তবে আপনি আমার ফরাসি টিউটোরিয়ালটি দেখতে পারেন । পয়েন্ট স্প্রাইটস সহ একটি সম্পূর্ণ প্রকল্প রয়েছে।
আশ্চর্যজনকভাবে, glLineWidth () পয়েন্টগুলি আরও বড় করে তোলে:
GLES20.glLineWidth(8); // Make the edges (and points!) thicker
GLES20.glDrawArrays(GLES20.GL_POINTS, 0, 38);// 38 is number of my vertexes
ওপেনগ্লেস ২.০ সরাসরি পয়েন্ট স্প্রাইটকে সমর্থন করে না। আপনি হয় আপনার গ্লোপয়েন্টগুলি টেক্সচার করতে পারেন বা একটি পয়েন্টকে কেন্দ্র করে ম্যানুয়ালি একটি ক্যামেরা-মুখোমুখি এবং ক্যামেরা-সারিবদ্ধ কোয়াড তৈরি করতে পারেন ।
float
খণ্ড ছায়ায়লে স্পষ্টভাবে নির্ভুলতা নির্দিষ্ট করতে ভুলবেন না - তাদের ডিফল্টfloat
যথার্থতা নেই এবং কিছু ড্রাইভারের উপর এই ধরনের শেডার সংকলন করতে ব্যর্থ হতে পারে।