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


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.