উত্তর:
আমি যেভাবে এটি করব তা আপনি ইউনিটগুলিতে প্রয়োগ করছেন এমন টেক্সচার মানচিত্রের ভিত্তিতে। বেশিরভাগ স্টাফের জন্য আপনার কাছে এমন কিছু অঞ্চল থাকবে যাতে রঙিত হওয়া দরকার এবং কিছু এমন নয়। সুতরাং উদাহরণস্বরূপ, আপনার একটি সাধারণ ট্যাঙ্ক থাকতে পারে তবে আপনি কেবল কয়েকটি পতাকাগুলির রঙ পরিবর্তন করতে চান।
আপনি যদি টেক্সচারটি আঁকেন যেন রঙিন অঞ্চলগুলি গ্রেস্কেল হয় তবে আপনি কোন অঞ্চলগুলিকে রঙিন করতে হবে তা নির্ধারণের জন্য আলফা চ্যানেলটি ব্যবহার করতে পারেন।
সুতরাং আপনার ছায়ায় আপনি যেতে পারেন (সবচেয়ে সহজ উপায় জন্য):
float3 finalColor;
if (colorFromTex.a > 0)
finalColor = colorFromTex.rgb;
else
finalColor = colorFromTex.rgb*myTintColor.rgb;
এটি অনুকূল নয় যদিও আপনার একটি শক্ত স্থানান্তর হবে এবং আপনার শেডারে একটি শাখা থাকবে। পরিবর্তে এটি আরও ভাল:
float3 finalColor = lerp(colorFromTex.rgb,
colorFromTex.rgb*myTintColor.rgb, colorFromTex.a);
একটি কৌশলটি প্রতিটি মডেলের জন্য দুটি সেট টেক্সচার রাখতে হয় - একটি লাল, অন্যটি নীল। তারপরে কোন দলের জন্য আপনাকে চরিত্রটি বরাদ্দ করা হয়েছে তার উপর নির্ভর করে সেই টেক্সচার সেটটি প্রয়োগ করুন।
অবশ্যই আপনার কেবল দুটি টিম থাকলে এটি কাজ করে। আপনি এটির চেয়ে বেশি সময় ধরে পালিয়ে যেতে পারলে এটি অদক্ষ হতে শুরু করে।
আর একটি উপায় দুটি টেক্সচার মিশ্রন করা হয় - প্রথমটি হচ্ছে মডেলটির বেস টেক্সচার, দ্বিতীয়টি রঙিন ওভারলে যা আপনি রানটাইমে তৈরি করতে পারেন।
তৃতীয় উপায়টি হ'ল বেস মডেলের রঙ পরিবর্তন করা এবং মডেলটির সেই অংশগুলির উপর কোনও টেক্সচার (বা আংশিক স্বচ্ছ টেক্সচার) নেই যা আপনি দলের রঙ দেখাতে চান।
টিমের রঙের সাথে একটি টেক্সচার আলফা চ্যানেল উত্সর্গকরণ ডিএক্সটি টেক্সচার 2x আরও বড় করে তোলে, তাই আমি বরং টিমের রঙ গণনা করার জন্য ক্রোমা কীটি ব্যবহার করব । আপনার টেক্সচারে একটি রঙকে (যেমন সবুজ, নীল, ম্যাজেন্টা) "সংরক্ষিত রঙ" হিসাবে মনোনীত করুন।
ইঞ্জিনটি বুট হয়ে গেলে, প্রতিটি দলের বর্ণের জন্য একটি ম্যাট্রিক্স তৈরি করুন যা "রঙের রঙ" টিমের রঙের দিকে ঘোরায়। কোনও টিম অবজেক্ট আঁকার ঠিক আগে, এই ম্যাট্রিক্সটিকে পিক্সেল শেডার ধ্রুবক হিসাবে সেট করুন।
পিক্সেল শেডারে টিম রঙের ম্যাট্রিক্স দ্বারা পিক্সেল রঙ রূপান্তর করুন। পিক্সেলের ক্রোমার কোণটিকে "সংরক্ষিত রঙের" ক্রোমাতে আনুপাতিক পরিমাণে, রূপান্তরিত পিক্সেলের রঙের সাথে অপরিবর্তিত পিক্সেল রঙটি লিপ করুন।
এটির জন্য আপনাকে কিছু ALU নির্দেশাবলীর ব্যয় করতে হবে এবং পিক্সেল শেডারটিতে ট্রিগার করতে হবে তবে এটি আপনার টেক্সচার ক্যাশেটিকে টেক্সচার 2x এর মতো বড় করে তুলতে অনেক বেশি সস্তা।
আপনার প্রতিটি রঙের জন্য একটি টেক্সচার চ্যানেলটি ব্যয় না করে একাধিক ক্রোমা কী (যেমন, ম্যাজেন্টা এবং সায়ান প্রাথমিক এবং গৌণ টিমের রঙের সাথে ম্যাপ করা যায়) রাখার ক্ষমতাও রয়েছে।
আমার কৌশলটি হবে: 2 টেক্সচারযুক্ত: একটি প্রধান টেক্সচার, একটি দ্বিতীয় টেক্সচার মূলটি কেবল ওভারলাইং করে যা কেবল রঙগুলি হতে চান parts আপনি যেমন চান তেমন দ্বিতীয় জমিনের রঙ পরিবর্তন করুন।
Error 1 Missing asset "C:\Users\Kai\AppData\Local\Temp\fbx.shader.temp.1064.2756\ReplaceColor.fx"
। আমি বুঝতে পারি না যে আমি কীভাবে এটি সঠিক হতে পারি।