ওপেনজিএল উত্সকে স্ক্রিনের উপরের বামে পরিবর্তন করার সময় আমার কীসের জন্য চিন্তা করা উচিত?


11

স্বশিক্ষার জন্য, আমি এসডিএল / ওপেনজিএল ব্যবহার করে সি ++ তে একটি 2 ডি প্ল্যাটফর্মার ইঞ্জিন লিখছি। আমি প্রাথমিকভাবে এসডিএলটিউটোরিয়ালস.কম এবং লাজিফু.নে.এল টিউটোরিয়ালগুলি ব্যবহার করে খাঁটি এসডিএল দিয়ে শুরু করেছি, তবে আমি এখন একটি ওপেনএল রেন্ডারিং প্রসঙ্গে তৈরি করতে এবং তারপরে ওপেনজিএল ফাংশনগুলির সাথে রেন্ডার করতে (বিশেষত তাত্ক্ষণিক মোড তবে আমি ভিএও / ভিবিওস সম্পর্কে শিখছি) )। আমি কেবল ইন্টারফেস, অডিও ইত্যাদির জন্য এসডিএল ব্যবহার করছি

এসডিএল স্ক্রিনের উপরের বামে উত্স এবং ধনাত্মক y- অক্ষটি নীচে নির্দেশ করে একটি সমন্বিত সিস্টেম ব্যবহার করে। এটিকে মিরর করার জন্য ওপেনজিএলে আমার অর্থোগ্রাফিক প্রজেকশন সেট আপ করা সহজ।

আমি জানি যে জমিনের স্থানাঙ্কগুলি 0 থেকে 1 এর মান সহ একটি ডান হাতের সিস্টেম - রেন্ডারিংয়ের আগে টেক্সচারটি উল্লম্বভাবে উল্টানো (ভালভাবে লোড করার আগে ফাইলটি ফ্লিপ করুন) সঠিকভাবে রেন্ডারযুক্ত টেক্সচার দেয় ... যা আমি আঁকছি যদি ঠিক থাকে পুরো টেক্সচারটি, তবে শেষ পর্যন্ত আমি টাইলসেট ব্যবহার করব এবং সমস্যাগুলি কল্পনা করতে পারি।

আমি যখন এটি করি তখন রেন্ডারিংয়ের ক্ষেত্রে আমার কী সম্পর্কে উদ্বিগ্ন হওয়া উচিত?

কারও কাছে যদি কোনও পরামর্শ থাকে বা তারা নিজেরাই এটি করেছে এবং ভবিষ্যতের সমস্যাগুলি চিহ্নিত করতে পারে তবে তা দুর্দান্ত হবে তবে সত্যিকার অর্থে যে কোনও ধারণা প্রশংসিত হবে।


1
আপনি কি এসডিএলকে রেন্ডার করতে ব্যবহার করছেন (এসডিএলের ব্লিটিং ফাংশনগুলির মতো), বা আপনি কি ওপেনজিএল রেন্ডারিং প্রসঙ্গ তৈরি করতে এসডিএল ব্যবহার করছেন, তারপরে রেন্ডার করার জন্য ওপেনজিএল ফাংশন ব্যবহার করছেন?
নিকল বোলাস

1
আমি একটি ওপেনএল রেন্ডারিং প্রসঙ্গ তৈরি করতে এসডিএল ব্যবহার করছি এবং রেন্ডার করতে ওপেনজিএল ফাংশন ব্যবহার করছি। আমি এই প্রশ্নে স্পষ্ট করব।
ডেরিভেটিভ

1
হতে পারে আপনি যদি কোনও পদার্থবিজ্ঞান সিস্টেম ব্যবহার করতে চলেছেন তবে এটি কোন সমন্বিত সিস্টেমটি ব্যবহার করে তা ভালভাবে দেখুন (রাই হাতে বা বাম হাতে, ওয়াই-ইউপি বা ওয়াই-ডাউন) এবং একই ব্যবহার চালিয়ে যান। অবশ্যই আপনি গ্র্যাভিটি ইনভার্ট করার মতো জিনিসগুলি করতে পারেন তবে থ্যাংগুলি আরও সহজ করার জন্য আমি এটি ব্যবহার করার চেষ্টা করব।
গুস্তাভো ম্যাকিয়েল

উত্তর:


8

"আমি যখন এটি করি তখন রেন্ডারিংয়ের ক্ষেত্রে আমার কীসের জন্য উদ্বিগ্ন হওয়া উচিত?" - বেশি না. একটি সমন্বয় ব্যবস্থা হ'ল একটি কনভেনশন, একটি কঠোর এবং দ্রুত নিয়ম নয় এবং এটি করা একটি নিখুঁত আইনী এবং বৈধ কাজ। আপনার নিজের ব্যবহারের সাথে আপনি সামঞ্জস্য বজায় রেখেছেন এবং সবকিছু ঠিকঠাক কাজ করবে তা নিশ্চিত করুন।


গ্রেট! আমার একমাত্র হঞ্চের স্ব-ধারাবাহিকতা ছিল যার জন্য আমাকে চিন্তিত হওয়া দরকার তবে এটি আমার জন্য নতুন অঞ্চল।
ব্যুৎপন্ন

1
আমার যুক্ত করা উচিত যে প্রিয় পুরাতন ভূমিকম্পটি 1996 সালে এটি করেছিল এবং এটি ঠিক কাজ করেছিল।
ম্যাক্সিমাস মিনিমাস

5

ওপেনজিএল দিয়ে 2 ডি তে কাজ করার সময়, আমি প্রায়শই উত্স হিসাবে উপরের-বাম কোণটি ব্যবহার করি। এটি দিয়ে করা যেতে পারে:

glOrtho(0,      // left
        width,  // right
        height, // bottom
        0,      // top
        0,      // zNear
        1       // zFar
        );

যাইহোক, উত্সটি উপরের-বামে পরিবর্তিত করার সময় কিছু সমস্যা রয়েছে।

আমি একাধিকবার ঝুঁকিতে পড়েছি: glScissor()যা ক্লিপিংয়ের জন্য ব্যবহৃত হয়, সর্বদা নিম্ন-বাম স্থানাঙ্ক ব্যবহার করে।

এর স্বাক্ষরটি হ'ল:

void glScissor( GLint x, GLint y, GLsizei width, GLsizei height )

যেখানে কাঁচি বক্সের নীচের বাম কোণটি x, yনির্দিষ্ট করুন ।

আরও সাধারণভাবে, যে কোনও ফাংশন যা উইন্ডোতে সমন্বয় করে সেগুলি নীচের বামটিকে মূল হিসাবে ব্যবহার করে। এই মতো কাজগুলির অন্তর্ভুক্ত gluProject, gluUnProject, glCopyPixels, ইত্যাদি

কিন্তু মত কিছু ফাংশন glDrawPixelsব্যবহার glRasterPosপজিশনিং জন্য, এবং glRasterPosব্যবহারের বস্তু স্থানাঙ্ক (অর্থাত রুপান্তরিত)

আপনি যদি লিনাক্সে চলছেন এবং কীভাবে ব্যবহার করতে হয় তা জানেন তবে manআপনি ওপেনজিএল ম্যানাপেজগুলির একটি অনুলিপি এখানে পেতে চাইতে পারেন: ftp://ftp.sgi.com/sgi/opengl/doc/ আমি তাদের একটি আসল সময়- সেভার।

এছাড়াও, আমি লক্ষ্য করেছি আপনি টেক্সচারগুলি "লোড করার আগে ফাইলটি ফ্লিপ করুন" বলেছিলেন। এই প্রয়োজন হয় না. চিত্রটি লোড করার সময় উল্টানোর পরিবর্তে, রেন্ডারিংয়ের সময় 1.0 থেকে 0.0 পর্যন্ত যেতে টেক্সচারের স্থানাঙ্কগুলি ফ্লিপ করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.