ওপেনজিএল ইএস ২.০ পয়েন্ট স্প্রিটস আকার


15

আমি ওপেনজিএল ইএস 2.0 তে পয়েন্ট স্প্রিট আঁকার চেষ্টা করছি, তবে আমার সমস্ত পয়েন্টগুলি 1 পিক্সেলের আকারের সাথে শেষ হয় ... এমনকি যখন আমি আমার ভার্টেক্স শেডারটিতে একটি উচ্চ মানের গ্লোপয়েন্টসাইজ সেট করি।

আমি কীভাবে আমার বক্তব্যকে আরও বড় করতে পারি?

উত্তর:


24

ওপেনজিএল ইএস ২.০ পয়েন্ট স্প্রাইটসকে সমর্থন করে; আমি কণা জন্য তাদের ব্যবহার। শুধু ব্যবহার 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;
}

আপনি যদি অ্যান্ড্রয়েডে থাকেন তবে আপনি আমার ফরাসি টিউটোরিয়ালটি দেখতে পারেন । পয়েন্ট স্প্রাইটস সহ একটি সম্পূর্ণ প্রকল্প রয়েছে।


floatখণ্ড ছায়ায়লে স্পষ্টভাবে নির্ভুলতা নির্দিষ্ট করতে ভুলবেন না - তাদের ডিফল্ট floatযথার্থতা নেই এবং কিছু ড্রাইভারের উপর এই ধরনের শেডার সংকলন করতে ব্যর্থ হতে পারে।
— কেওক্রেন


0

ওপেনগ্লেস ২.০ সরাসরি পয়েন্ট স্প্রাইটকে সমর্থন করে না। আপনি হয় আপনার গ্লোপয়েন্টগুলি টেক্সচার করতে পারেন বা একটি পয়েন্টকে কেন্দ্র করে ম্যানুয়ালি একটি ক্যামেরা-মুখোমুখি এবং ক্যামেরা-সারিবদ্ধ কোয়াড তৈরি করতে পারেন ।


5
মিথ্যা। ভার্টেক্স শ্যাডারে GL_POINTS এবং গ্ল_পয়েন্টসাইজ ব্যবহার করুন
— এলিস

@ এলিস ভাল তিনি এক ধরনের বলেছেন। আপনি যদি লিঙ্কটি পোস্ট করেন তবে এটি জিএল ইএস 1 অংশের কথা বলে যা অবহিত করা হয়েছিল এবং কীভাবে "আপনার গ্লোপয়েন্টগুলি টেক্সচার করবেন"
— বোবোবো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.