GL_TEXTURE_Wrap) _ (এস / টি) পরিবর্তন করে কী করে?


12

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

উত্তর:


29

ওয়েল এস এবং টি এর অর্থ কেবল ইউ এবং ভি (বা আপনি যদি পছন্দ করেন তবে এক্স এবং ওয়াই), বা জিএলএসএল:

vec4.xyzw == vec4.rgba == vec4.strq

আপনি যখন (0,0) থেকে (1,1) ব্যাপ্তিটি যান তখন GL_REPEAT মোডের টেক্সচার পুনরাবৃত্তি হয়

আপনি প্রান্ত থেকে পড়লে GL_CLAMP_TO_EDGE মোডের টেক্সচারটি শেষ পিক্সেলে থামবে।

জিএল_সিএলএএমপি এবং জিএল_সিএলএএমপিপিউবিডারকে অবমূল্যায়ন করা হয়েছে কারণ সমস্ত জমিনের সীমানা অবশ্যই 0 পিক্সেল হতে হবে, সুতরাং মোডগুলি আর বোঝায় না। (জিএল 3 এর আশেপাশে কোথাও আমি বিশ্বাস করি)

আরও মোড রয়েছে তাই ডক্সটি পড়ার বিষয়টি নিশ্চিত করুন। (উদাহরণ: GL_MIRRORED_REPEAT, GL_MIRROR_CLAMP_TO_EDGE)


Http://www.flipcode.com/archives/Advanced_OpenGL_Texture_Mapping.shtml এ কয়েকটি ভাল উদাহরণ রয়েছে , এখানে একটি পূর্বরূপ দেখুন:

মোড়ানো এস: জিএল_সিএলএএমপি / মোড়ানো টি: জিএল_সিএলএএমপি

বাতা ক্ল্যাম্প

মোড়ানো এস: জিএল_সিএলএএমপি / মোড়ানো টি: জিএল_REPEAT

বাতা পুনরাবৃত্তি

মোড়ানো এস: GL_REPEAT / মোড়ানো টি: GL_CLAMP P

পুনরাবৃত্তি বাতা

মোড়ানো এস: GL_REPEAT / মোড়ানো টি: GL_REPEAT

পুনরাবৃত্তি পুনরাবৃত্তি


ধন্যবাদ। দুর্দান্ত উত্তর। আপনি কি জানেন যে জিএল_সিএলএএমএপিএমপিইউইজিজেইডি এবং জিএল_সিএলএএমপির মধ্যে কোনও পার্থক্য আছে এবং যদি উপলব্ধ স্থানটি পূরণ করার জন্য কেবল টেক্সচারটি প্রসারিত করার মতোই হয় তবে?
w4etwetewtwet

স্পষ্ট না করার জন্য দুঃখিত, আমি যেখানে ক্ল্যাম্প বলতে আমি জিএল_সিএলএএমপিএইচএইচডি, জিএল_সিএলএমপি আধুনিক ওপেনলিতে চলে গেছে। আমি জোর দেওয়ার জন্য উত্তরটি সম্পাদনা করব।
মিকএলএইচ

যেমন "সম্প্রসারণ" আপনি যদি বোঝাতে চেয়েছেন যে টেক্সচারটি একটি ভিন্ন পরিসরে প্রসারিত করা হয়, এটি জাল প্যারামিটারাইজেশনের সময় পরিচালনা করা উচিত। (ইউভি ম্যাপিং, শিল্পীদের কাজ) .. যদি আপনার সত্যিই এটি ব্যবহারিকভাবে করা আবশ্যক তবে একটি শেডার ব্যবহার করতে আপনাকে নিজের সূত্র লিখতে হবে। (অথবা আপনার অ্যাপ্লিকেশনটি ইতিমধ্যে মারাত্মকভাবে পুরানো হয়ে থাকলে GL_TEXTURE ম্যাট্রিক্স অনুমান করি: পি)
মিকএলএইচ

4

2014/02/07 পর্যন্ত glTexParameter এ ওপেনলএল রেফারেন্স পৃষ্ঠাটির একটি সূত্র এখানে দেওয়া হয়েছে , সহজ পাঠের জন্য কিছুটা বিন্যাস করা:

GL_TEXTURE_WRAP_S

সেট জমিন জন্য মোড়ানো প্যারামিটার তুল্য গুলি পারেন GL_CLAMP_TO_EDGE, GL_CLAMP_TO_BORDER, GL_MIRRORED_REPEAT, GL_REPEAT, অথবা GL_MIRROR_CLAMP_TO_EDGE করতে।

  • GL_CLAMP_TO_EDGE কারণ গুলি স্থানাঙ্ক রেঞ্জ করা পরিসর, যেখানে এন নিবন্ধন দিক জমিন মাপ।

  • জিএল_সিএলএএমপিএইচপিবিআরডিআর এর স্থানাঙ্কগুলি জিএল_সিএলএএমপিএইউপিডিজিতে অনুরূপভাবে মূল্যায়ন করে ।
    তবে, জিএল_সিএলএএমপিএইএমপিইউইডিজেইড মোডে ক্ল্যাম্পিংয়ের ঘটনা ঘটেছিল, ক্ষেত্রে আনীত টেক্সেল ডেটা GL_TEXTURE_BORDER_COLOR দ্বারা নির্দিষ্ট মানগুলির সাথে প্রতিস্থাপিত হবে।

  • GL_REPEAT এর ফলে s এর স্থানাঙ্কের পূর্ণসংখ্যার অংশ উপেক্ষা করা হবে;
    জিএল কেবল ভগ্নাংশের অংশ ব্যবহার করে, যার ফলে পুনরাবৃত্তি প্যাটার্ন তৈরি হয়।

  • GL_MIRRORED_REPEAT ঘটায় গুলি তুল্য জমিন এর ভগ্ন অংশ সেট হওয়ার তুল্য যদি এর পূর্ণসংখ্যা অংশ গুলি এমনকি হয়; যদি s এর পূর্ণসংখ্যার অংশটি বিজোড় হয় তবে s এর টেক্সচার সমন্বয়টি সেট করা হয় 1-fracযেখানে এস এরfrac ভগ্নাংশের অংশকে উপস্থাপন করে ।

  • GL_MIRROR_CLAMP_TO_EDGE ঘটায় গুলি জমিন এক reptition, এই স্থিতিতে GL_CLAMP_TO_EDGE হিসেবে আটকানো করা তুল্য পয়েন্টের জন্য GL_MIRRORED_REPEAT জন্য পুনরাবৃত্তি করা তুল্য।

প্রাথমিকভাবে, GL_TEXTURE_Wrap_S GL_REPEAT এ সেট করা আছে

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