এই UV টেক্সচার সমন্বয়গুলি বুঝতে পারি না (পরিসীমা 0.0 থেকে 1.0 নয়)


9

আমি গুগল স্কেচআপ 8 প্রো দ্বারা উত্পন্ন একটি সাধারণ 3 ডি অবজেক্টটি আমার ওয়েবজিএল অ্যাপ্লিকেশানে আঁকতে চেষ্টা করছি, মডেলটি একটি সাধারণ সিলিন্ডার।

আমি রফতানি করা ফাইলটি খুললাম এবং জাভাস্ক্রিপ্টে এটি ব্যবহার করতে সক্ষম হওয়ার জন্য শীর্ষস্থানীয় অবস্থানগুলি, সূচকগুলি, নরমালগুলি এবং টেক্সচারের স্থানাঙ্কগুলিকে একটি জেএসএন ফাইলে অনুলিপি করেছি। 46.331676 এবং কিছু নেতিবাচক মানগুলির মতো বেশ সুন্দর মান রয়েছে এমন টেক্সচার সমন্বয়গুলি বাদে সবকিছু ঠিকঠাক বলে মনে হচ্ছে। আমি জানি না আমি ভুল কিনা, তবে 2 ডি টেক্সচার স্থানাঙ্কগুলি কেবল 0.0 থেকে 1.0 এর মধ্যে হতে পারে?

ঠিক আছে, এই টেক্সচারের স্থানাঙ্কগুলি ব্যবহার করে মডেলটি আঁকিয়ে দেওয়া আমাকে পুরোপুরি অদ্ভুত চেহারা দেয় এবং আমি কেবল তখনই টেক্সচারটি সঠিকভাবে দেখতে পাই যখন আমি খুব কাছে থাকি (সত্যিই আমার নয়, ক্যামের) মডেলটির সাথে, যেন টেক্সচারটি উন্মাদভাবে হয়েছে if এর আকার হ্রাস এবং মডেলের মুখ জুড়ে অসীম পুনরাবৃত্তি। (হ্যাঁ, আমি এই টেক্সচার মোড়ানোর জিনিসটিতে GL_REPEAT ব্যবহার করছি)

আমি যেটি লক্ষ্য করেছি তা হ'ল আমি যদি এই সমস্ত স্থানাঙ্কগুলি পাই এবং সেগুলি 10 বা 100 দ্বারা ভাগ করি তবে আমি অনেক "স্বাভাবিক" চেহারা পাই, তবে এখনও 0.0 থেকে 1.0 রেঞ্জের মধ্যে না।

এখানে আমার জেসন ফাইলটি: http://pastebin.com/Aa4wvGvv

এখানে আমার জিএলএসএল শেডারগুলি: http://pastebin.com/DR4K37T9

এবং এখানে স্কেচআপ দ্বারা রফতানি করা। এক্স ফাইলটি রয়েছে: http://pastebin.com/hmYAJZWE

আমি এক্সএনএ ব্যবহার করে এই মডেলটি আঁকার চেষ্টা করেছি, কিন্তু এখনও কাজ করছি না। এইচএলএসএল শেডারগুলি ব্যবহার করে: http://pastebin.com/RBgVFq08

আমি একই মডেলটি বিভিন্ন ফর্ম্যাট, ক্যালাডা, এফবিএক্স এবং এক্সে রফতানি করার চেষ্টা করেছি। যারা সব একই জিনিস ফলন।

উত্তর:


8

আপনি সঠিক UV এর সাধারণত 0-1 থেকে যান যদিও ডেভিড এক্স উল্লেখ করেছেন এটি কোনও প্রয়োজনীয়তা নয়। আপনার ক্ষেত্রে সমস্যাটি স্কেচআপ উত্পন্ন UV স্থানাঙ্কগুলির ফ্রিকোয়েন্সি। উদাহরণস্বরূপ যদি আপনার ওয়াই অক্ষ (ভি স্থানাঙ্ক) 0 থেকে 46 পর্যন্ত চলে যায় তবে সেই টেক্সচারটি যদি মোড়কে সক্ষম করা থাকে, তবে ভি দিকের 46 বার পুনরাবৃত্তি করবে। মোড়ানোও এটিকে আরও ছোট দেখায় কারণ আপনাকে একই পৃষ্ঠের অঞ্চল জুড়ে চিত্রটি বহুবার নকল করতে হবে। এফবিএক্স বা কল্লাডা হিসাবে পুনরায় রফতানি সমস্যা সমাধানের জন্য কিছুই করে না কারণ এটি উভয় ক্ষেত্রেই একই V এটি ঠিক করার জন্য আপনাকে স্কেচআপে ফিরে যেতে হবে এবং সিলিন্ডারের জন্য কীভাবে এটি ইউভি তৈরি করে তা পরিবর্তন করতে হবে। সম্ভবত আপনি নিজেই UV পরিসীমা নির্দিষ্ট করতে পারেন বা জ্যামিতিটি কীভাবে প্যারামিটারাইজড হয় তা আপনাকে পরিবর্তন করতে হবে। আমি স্কেচআপ কখনও ব্যবহার করি নি তাই আমি ডোন না '

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


1

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


1

আপনি যদি চান যে আপনার ইউভি স্থানাঙ্কগুলি 0 থেকে 1 এর মধ্যে হয় তবে আপনি আপনার মডেলের জন্য একটি স্কেল ম্যাট্রিক্স ব্যবহার করতে পারেন।

সুতরাং আপনার মডেলটি লোড করার সময়, আপনি আপনার সর্বোচ্চ ইউ এবং ভি স্থানাঙ্কের জন্য পরীক্ষা করতে পারেন এবং একটি স্কেলিং ম্যাট্রিক্স তৈরি করতে পারেন যা এটি আরও "স্বাভাবিক" করে তুলবে। সুতরাং এটি আপনার 10 বা 100 এর ম্যানুয়াল স্কেলিংকে প্রতিস্থাপন করবে So সুতরাং এটি ফিট করতে আপনাকে আপনার ইউভি স্থানাঙ্কগুলি [0,1] এর নীচে স্কেল করতে হবে।

|1/uMax|0     |
|0     |1/vMax|

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


@ মারমিক্স এটি একটি খুব সহজ, কার্যকর এবং মার্জিত সমাধান !!!
3 ডি-ইন্ডিয়ানা-জোনস

0

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

অন্য একটি মডেলিং প্যাকেজ (মিল্কশ্যাপ, ব্লেন্ডার) এ জাল আমদানি করার চেষ্টা করুন এবং সেখান থেকে ইউভি মানচিত্রটি ঠিক করুন।


4
টেক্সচার্ডস <0 বা> 1 এবং GL_REPEAT টেক্সচার মোড়ক হিসাবে অর্থ এই টেক্সচারটি [ সরানো ভুল বিবৃতি ] অনুভূমিকভাবে এবং উলম্বভাবে পুনরাবৃত্তি হবে।
ক্রোমস্টার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.