আপনি পোস্ট করেছেন শেডার কোডের উপর ভিত্তি করে, আপনি উল্লম্ব থেকে ইউভিগুলিকে বিভক্ত করছেন না - এটি প্রদর্শিত হয় আপনি 3 ডি অবস্থান ( fragVert
) ব্যবহার করছেন, তারপরে গোলাকার স্থানাঙ্কে রূপান্তরিত করে ইউভিগুলি গণনা করছেন।
আপনার বিশ্লেষণটি ঠিক আছে যে ক্ষুদ্রতর মিপম্যাপটি যখন কোনও বিরতি থাকে তখন বেছে নেওয়া হয়, যেহেতু মিপম্যাপ নির্বাচনটি ডেরাইভেটিভের উপর ভিত্তি করে প্রতিবেশী পিক্সেলগুলিতে ব্যবহৃত ইউভি থেকে সংখ্যারূপে অনুমান করা হয়। যখন একটি পিক্সেলের ইউ = 0 এবং অন্যটিতে ইউ = 1 থাকে আপনি একটি খুব বড় ডেরিভেটিভ পান। আপনার চেষ্টা করা ফিক্সটির একই সমস্যাটি হ'ল u = 0.01 এবং u = 0.99 এর আশেপাশে বড় ডেরিভেটিভস দেখা দেয়, যার কারণে আসল সিমটি যেখানে ছিল সেখানে দুটি দিক দুটি seams প্রদর্শিত হবে।
সমস্যাটি সমাধানের জন্য অপেক্ষাকৃত সহজ পদ্ধতির মধ্যে কোনও মিপ স্তরটি নিজেকে ব্যবহার করবেন এবং textureLod
এটি সরাসরি নমুনাতে কল করতে হবে decide যদি গ্রহটি সর্বদা ক্যামেরার সাথে মোটামুটি কাছাকাছি চলে যায় তবে আপনি কেবল মিপ স্তরকে 0-এ হার্ড কোড করতে পারেন (বা এই ক্ষেত্রে কেবল জমিনে মিউপ স্তর অন্তর্ভুক্ত করবেন না)। অন্যথায়, এটি ক্যামেরা থেকে পয়েন্টের দূরত্বের লগ 2 এর উপর ভিত্তি করে কিছু উপযুক্ত কারণ দ্বারা স্কেল করা যেতে পারে। মনে রাখবেন এটি কার্যকরভাবে অ্যানিসোট্রপিক ফিল্টারিং অক্ষম করবে।
আরও উচ্চতর মানের ডেরাইভেটিভগুলি গণনা করার জন্য আরও একটি "সঠিক" পদ্ধতি হবে। এর পরিবর্তে ব্যবহার করার dFdx
এবং dFdy
Uvs, যা কারণে সান্তরতা উপর atan2
, আপনি প্রয়োগ হতে পারে dFdx
এবং dFdy
করা fragVert
(যা গোলক প্রায় সব পথ একটানা হতে হবে), তারপর কিছু ক্যালকুলাস (চেইন নিয়ম) ব্যবহার এই UV- ডেরাইভেটিভস পেতে সূত্র খুঁজে পেতে অবস্থান ডেরাইভেটিভস থেকে। এটি আরও জটিল এবং ধীর হতে পারে তবে অ্যানিসোট্রপিক ফিল্টারিংয়ের কাজ করা উচিত এমন সুবিধা রয়েছে।
অবশেষে, যেহেতু আপনি ওপেনজিএলে নতুন রয়েছেন আমি কেবল লক্ষ্য করব যে গোলাকৃতির স্থানাঙ্কগুলি থেকে UV গণনা করার সময় একটি গোলকের অঙ্গবিন্যাসের সঠিক বৈধ উপায়, এটি বেশিরভাগ লোকেরা বেছে নেওয়ার "স্বাভাবিক" উপায় নয়। এমন একটি গোলক জাল তৈরি করা আরও সাধারণ যা ভার্টেক্স প্রতি ইউভি নির্দিষ্ট করা আছে এবং কেবল ভার্টেক্স শ্যাডার থেকে পিক্সেল শেডার (প্রতিটি ত্রিভুজ জুড়ে রৈখিকভাবে বিরক্ত) হয়েছে build প্রান্তবিন্দু, স্তর বরাবর স্থাপন করা হয় ভালো , প্রতিটি প্রান্তবিন্দু দুটি অনুলিপি, ঠিক একই অবস্থানে আছে যেমন যে, কিন্তু তোমার সাথে অর্ধেক = 0 একপাশে ত্রিভুজ সাথে সংযুক্ত, এবং তোমার সাথে বাকী অর্ধেক = 1 সংযুক্ত অন্যদিকে ত্রিভুজ। এটি কোনও দৃশ্যমান সিউমকে সরিয়ে দেয় এবং পিক্সেল শেডারটিতে কোনও কৌশল প্রয়োজন হয় না।