1 এর চেয়ে বেশি বা 0 এর চেয়ে কম টেক্সচারের সমন্বয় কেন সম্ভব encounter


11

আমি অধিবেশনটিতে texture mappingএবং পাঠের পাঠ্য অধ্যয়ন করছি preparing to draw, আমি পড়লাম:

টেক্সচার মোড়ানোর পরামিতিগুলি সংজ্ঞায়িত করুন। যখন কোনও টেক্সচার ০.০ এর বেশি বা 0.0 এর চেয়ে কম সমন্বয় ঘটে তখন কী হবে তা নিয়ন্ত্রণ করবে:

glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S,wrap);  
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T,wrap);  

যেখানে মোড়ানো রয়েছে:
GL_REPEAT: নির্দিষ্ট করে যে এই প্যাটার্নটি পুনরাবৃত্তি করবে (অর্থাত্, মোড়কে চারপাশে) যদি পরিবর্তিত টেক্সচার সমন্বয় 0.0 এর কম হয় বা 1.0 এর চেয়ে বেশি হয়।

জিএল_সিএলএএমপি: নির্দিষ্ট করে যে প্যাটার্নটি 0.0 বা 1.0 এ মানটির সাথে "লেগে থাকবে"।

কিন্তু এই জাতীয় টেক্সচারের স্থানাঙ্কগুলির মুখোমুখি হওয়ার কারণ কী তা নিয়ে কোনও ব্যাখ্যা নেই?
উদাহরণস্বরূপ ধরুন যে আমি কেবল একটি আয়তক্ষেত্র অঙ্কন করেছি এবং আমি এটিতে একটি টেক্সচার হিসাবে কোনও চিত্র প্রয়োগ করতে চাই, এই জাতীয় স্থানাঙ্কের মুখোমুখি হওয়া কি সম্ভব?

উত্তর:


5

সমস্ত টেক্সচার জাল তথ্য থেকে আসা টেক্সচার সমন্বয়গুলি ব্যবহার করে না। উদাহরণস্বরূপ, প্রজেক্টিভ টেক্সচারের সাহায্যে আপনি বিশ্বেরকে টেক্সচারের স্পেসে রূপান্তরিত করুন। ঠিক আছে, সেই পৃথিবীর অনেক অংশ টেক্সচারের [0, 1] পরিসরের বাইরে পড়ে। জায়গায় কোনও ধরণের ক্ল্যাম্পিং মোড ছাড়াই আপনি সমস্যা পেতে চলেছেন।


10

অবিকল, একটি টেক্সচার পুনরাবৃত্তি।

সুতরাং, আপনার যদি চতুষ্কোণ থাকে এবং টেক্সচারের স্থানাঙ্কগুলি 0 থেকে 1 পর্যন্ত চলে যায় তবে টেক্সচারটি একবার টানা হবে। স্থানাঙ্কগুলি 0 থেকে 2 এ যায় এবং মোড়কে সেট করা থাকেGL_REPEAT তবে টেক্সচারটি দু'বার টানা হবে।

এটি চেষ্টা করে দেখুন এবং নিজেই দেখুন


ঠিক আছে @ পান্ডা পাজামা তাই এর মতো কোডের জন্য: ফ্লোট x0 = 0; // চিত্রের উপরের বাম কোণটি ভাসা y0 = 0; ভাসা x1 = x0 + চিত্রের প্রস্থ; চিত্রের নীচে ডান দিকের কোণটি y1 = y0 + ইমেজহাইট; glBegin (GL_TRIANGLE_STRIP); {glTexCoord2f (0, 1); glVertex2f (x0, y1); glTexCoord2f (0, 0); glVertex2f (x0, y0); glTexCoord2f (1, 1); glVertex2f (x1, y1); glTexCoord2f (1, 0); glVertex2f (x1, y0); the বিরতি (0,1) এর বাইরেও জমিনের সমন্বয়গুলির কোনও সম্ভাবনা নেই?
সিপাহী আবদপুর

1
@ এসপিডিহ: অবশ্যই না। আপনি বিশেষত আপনার রচনা স্থানাঙ্ককে [0, 1] রেঞ্জের মধ্যে রেখেছেন। আপনি যা বুঝতে পারেন না তা হ'ল আপনার দরকার নেই ; আপনি তাদের কিছু করতে পারে। এছাড়াও, মন্তব্যে একটি গুচ্ছ কোড পোস্ট করবেন না। আপনি যদি স্পষ্টতা চান তবে আপনার প্রশ্নটি সম্পাদনা করুন।
নিকল বোলাস

ঠিক আছে আমার প্রশ্নের কোড পাস করার বিষয়ে আপনার গাইডেন্সের জন্য ধন্যবাদ। আমি কমান্ডগুলিতে কোড ফর্ম্যাট করার একটি উপায় খুঁজছিলাম কিন্তু খুঁজে পেলাম না !!! সুতরাং আপনি বোঝাতে চেয়েছেন যে এই জাতীয় স্থানাঙ্কের মুখোমুখি হওয়া কোনও রান-টাইম সম্ভাব্য ইভেন্ট নয়। টেক্সচারটি পুনরাবৃত্তি করতে বা না করার জন্য এটি কেবল প্রোগ্রামার দ্বারা স্পষ্টভাবে নির্দিষ্ট করা হয়েছে।
সিপাহী আবদপুর

1
@sepideh "রান-টাইম সম্ভাব্য ইভেন্ট নয়" এর অর্থ কী? glTexCoord2f(0, 2);উদাহরণস্বরূপ মন্তব্যটিতে আপনার কোড পরিবর্তন করা পুরোপুরি ঠিক । উভয় কোডে এবং প্রোগ্রামটি চলাকালীন সময়ে এটির একটি খুব নির্দিষ্ট সংজ্ঞাযুক্ত অর্থ রয়েছে। আপনি যদি এটি দেখতে পান তবে প্রোগ্রামারটি ইচ্ছাকৃতভাবে এটি করেছে কারণ এটি তাদের ফলাফল দেয়।
জোসেফ ম্যানসফিল্ড

2
@ স্পিপিডাহ অবশ্যই ওপেনজিএল আপনি যা মান দেয় তা ব্যবহার করে। আপনি যদি এটি 0 থেকে 1 এর মধ্যে মান দেয় তবে আপনি আর কখনও কিছু পাবেন না।
জোসেফ ম্যানসফিল্ড

5

হ্যাঁ, আপনি টেক্সচার স্থানাঙ্কগুলি এর চেয়ে বড় 1.0এবং এর চেয়ে ছোট এর মুখোমুখি হতে পারেন 0.0

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

এটি কোনও টেক্সচারের পুনরাবৃত্তি করতে ব্যবহৃত হয় । উদাহরণস্বরূপ, ছেদচিহ্ন একটি চতুর্ভুজ মধ্যে একটি জমিন চার সময় মাপা হয়, জমিন স্থানাঙ্ক হবে 0,0, 0,4, 4,0এবং 4,4। জমিন মোড়ানো ছাড়া, আপনি প্রতিটি জমিন স্থানাঙ্ক সঙ্গে 4 বার মধ্যে পৃষ্ঠ বিভক্ত করতে 4 সাব পৃষ্ঠতলের অতিরিক্ত ছেদচিহ্ন হবে 0,0, 0,1, 1,0, 1,1। ভাল রেন্ডারিং পারফরম্যান্সের ফলে খুব কম ভার্টিক্সের ফলাফল।

সাধারণত, এটি পছন্দসই নয় যে ব্যবহারকারী পুনরাবৃত্ত টেক্সচারের প্রান্তগুলি লক্ষ্য করুন। অতএব, বারবার টেক্সচার বেশিরভাগ ক্ষেত্রে টাইলিযোগ্য। এর অর্থ হ'ল, ডান প্রান্তটি বাম একের সাথে নির্বিঘ্নে এবং নীচের প্রান্তে শীর্ষ প্রান্তটি বিবর্ণ হয়ে যায়। এইভাবে, রূপান্তরটি মসৃণ এবং আশা করি ব্যবহারকারীর দ্বারা লক্ষ্য করা যায় না।

আরও উন্নত, তবে সম্পর্কিত বিষয় হ'ল চতুরতার সাথে এই একই টেক্সচারটি একাধিকবার পুনরাবৃত্তি হয়েছিল তা অস্পষ্ট করে দেওয়া। উদাহরণস্বরূপ, বিভিন্ন আকারের বারবার টেক্সচারগুলিকে মিশ্রণ করা, উদাহরণস্বরূপ প্রাচীরের গঠন এবং ময়লা ডেকাল, একটি সাধারণ কৌশল।


Without texture wrapping, you would need additional vertices to split the surface into 4 times 4 sub surfaces with each the texture coordinates 0,0, 0,1, 1,0, 1,1এটাই কিছু বাস্তব ব্যবহারিক ব্যাখ্যা! ধন্যবাদ!
অমিত তোমার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.