বাংলায় অ্যান্ড্রয়েড সহায়িকা - Bangla Android Guide

একটি ত্রিভুজ (ট্রায়াঙ্গেল) নির্ধারণ

OpenGL ES ত্রিমাত্রিক স্পেসে কোঅরডিনেটস ব্যবহার করে ড্র হওয়া অবজেক্ট নির্ধারণ করতে দেয়। সুতরাং একটি ত্রিভুজ অঙ্কন করতে পারার আগে, আপনাকে অবশ্যই এর কোঅর্ডিনেটস ঠিক করে নিতে হবে। OpenGL ES এর মধ্যে সাধারণভাবে এটা করা হচ্ছে কোঅর্ডিনেটস এর জন্য ফ্লোটিং পয়েন্ট নাম্বার এর একটি ভার্টেক্স অ্যারে ঠিক করা। সর্বোচ্চ কার্যকারিতার জন্য, আপনি এই সকল কোঅরডিনেটস একটি ByteBuffer এর মধ্যে লিখেন, যা প্রসেস হওয়ার জন্য OpenGL ES গ্রাফিক্স পাইপলাইনে পাস হয়ে যায়।

public class Triangle {

    private FloatBuffer vertexBuffer;

    // number of coordinates per vertex in this array
    static final int COORDS_PER_VERTEX = 3;
    static float triangleCoords[] = {   // in counterclockwise order:
             0.0f,  0.622008459f, 0.0f, // top
            -0.5f, -0.311004243f, 0.0f, // bottom left
             0.5f, -0.311004243f, 0.0f  // bottom right
    };

    // Set color with red, green, blue and alpha (opacity) values
    float color[] = { 0.63671875f, 0.76953125f, 0.22265625f, 1.0f };

    public Triangle() {
        // initialize vertex byte buffer for shape coordinates
        ByteBuffer bb = ByteBuffer.allocateDirect(
                // (number of coordinate values * 4 bytes per float)
                triangleCoords.length * 4);
        // use the device hardware's native byte order
        bb.order(ByteOrder.nativeOrder());

        // create a floating point buffer from the ByteBuffer
        vertexBuffer = bb.asFloatBuffer();
        // add the coordinates to the FloatBuffer
        vertexBuffer.put(triangleCoords);
        // set the buffer to read the first coordinate
        vertexBuffer.position(0);
    }
}

বাই ডিফল্ট, OpenGL ES মনে করে একটি কোঅরডিনেট সিস্টেম যেখানে [0,0,0] (X,Y,Z) GLSurfaceView ফ্রেমের কেন্দ্র নির্দিষ্ট করে দেয়, [1,1,0] ফ্রেমের উপরের ডান কোন, [-1,-1,0] ফ্রেমের নীচের বাম কোন নির্দিষ্ট করে। এই কোঅরডিনেট সিস্টেম সম্পর্কে আরও তথ্য পেতে OpenGL ES ডেভেলপার গাইড দেখুন।

উল্লেখ্য যে, এই গঠনের/ শেপ কোঅরডিনেটস কাউন্টার-ক্লক-ওয়াইজ ক্রমে নির্ধারিত হয়। ড্র করার ক্রম থাকা গুরুত্বপূর্ণ কারন এটা ঠিক করে শেপের কোন পাশটি ফ্রন্ট ফেস হবে, যেটা সাধারণভাবে আপনি ড্র হওয়াতে চান, এবং ব্যাক ফেস, যেটা ড্র না করার জন্য বেছে নেন, OpenGL ES কাল (cull) ফেস বৈশিষ্ট ব্যবহার করে। ফেস এবং কালিং সম্পর্কে আরও তথ্যের জন্য OpenGL ES ডেভেলপার গাইড দেখুন।