প্লেয়ারদের রঙের মান না হারিয়ে চিত্রগুলিকে "ডাই" করতে দেওয়ার সর্বোত্তম উপায়?


41

আমি একটি 2.5 ডি আইসোমেট্রিক (2 ডি চিত্র) গেম তৈরি করছি।

আমি চাই খেলোয়াড়রা তাদের বর্ম, জামাকাপড় এবং অন্যান্য জিনিসগুলি "রঙ্গিন" করতে সক্ষম হন। আমি দেখতে পেয়েছি যে সব কিছুকে গ্রেস্কেল করা কিছু "প্রাকৃতিক" রঙিন থেকে কিছু হারিয়ে ফেলেছে। উদাহরণস্বরূপ, লাল / হলুদ গ্রেস্কেল দিয়ে ড্রাগন তৈরি এবং তারপরে ওভারলে রঙ প্রয়োগ করা, গৌণ রঙের সমস্ত ক্ষতির সাথে খাঁটি লাল ড্রাগনের দিকে নিয়ে যায়। এদিকে, একই লাল / হলুদ ড্রাগন নীল মারা যাওয়া এটিকে নীল / সাদা করে তোলে যা দুর্দান্ত দেখাচ্ছে।

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

সুতরাং আমি চাই খেলোয়াড়রা কোনও চরিত্র নির্বাচন করতে, বেশ কয়েকটি অস্ত্রের মধ্যে একটি বেছে নিতে, কয়েকটি মুষ্টিমেয় পোশাকের পছন্দগুলির মধ্যে বিকল্প (অক্ষরগুলির উপরে স্তরযুক্ত), এবং তারপরে বেশিরভাগ ক্ষেত্রে রং করা (অস্ত্রগুলির জন্য একটি নির্দিষ্ট ধাতব রঙ বেছে নিন, যে কোনও রঙ বেছে নিন) পোশাকের জন্য আদৌ)।

আমি যদি কিছু রঙ না হারিয়ে গ্রেস্কেল ব্যবহার করতে সক্ষম হয় তবে আমি করব would

আমি যে বিষয়ে কথা বলছি তার একটি উদাহরণ এখানে দেওয়া হয়েছে:

এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন

এমনকি ফটোশপের "কালার ওভারলে" বিকল্পগুলিতে আমি যাই ব্যবহার করি না কেন ড্রাগনকে "রঙ করা" সম্ভব নয়। স্পষ্টতই, গ্রেস্কেল ব্যবহার করে আরও ভাল রঙ করা সম্ভব হলে আমি এটি ভুল করছি wrong সবুজ বা হলুদ বা হালকা বেগুনির মতো রঙের জন্য, এটি ঠিক আছে। অন্য কোনও রঙের জন্য, এটি শিল্পকে ধ্বংস করে।

তবে, আমি যদি এটি গ্রেস্কেল না করি তবে এটি আরও ভাল দেখায় এবং পরিবর্তে মূল (লাল / হলুদ) চিত্রটিতে একটি "এইচইউই" রঙ প্রয়োগ করুন।

রেড হিউ এখানে চিত্র বর্ণনা লিখুন

বেগুনি হিউ এখানে চিত্র বর্ণনা লিখুন

খেলোয়াড়রা এখন ড্রাগন কোনও রঙ করতে পারে, এবং এটি এখনও দুর্দান্ত দেখায়! (হলুদ সাদা হয়ে যায়, যখন লাল রংয়ের রংধনুর কোনও রঙে পরিবর্তিত হয়))

এর অর্থ হ'ল হোয়াইট বা ব্ল্যাক সেরা গৌণ রঙ? তারপরে সাদা (গৌণ) রঙকে আলাদা কিছুতে পরিবর্তন করতে কোনও ধরণের পদ্ধতি বা শেডার ব্যবহার করবেন?

একটি একক চিত্র নেওয়ার এই জটিল পদ্ধতিতে এবং রঙিনের উপর ভিত্তি করে বিভিন্ন পিক্সেল ছোপানোর কোনও নিবন্ধ আছে?

ড্রাগনের জন্য, এটি কি হোয়াইট / ব্ল্যাক হাই কনট্রাস্ট ড্রাগন হিসাবে সেরা কাজ করবে? লাল / হলুদ সেরা রঙ সেট? আমি চেষ্টা করা অন্যান্য কয়েকটি রঙের চেয়ে এটি চিত্রগুলির জন্য অনেক বেশি উন্নত। গ্রেস্কেল কি এখনও উচ্চতর?

ফটোশপের "মিশ্রণ বিকল্পগুলি" কোনও ভিডিও গেমের জন্য চিত্রগুলি যথাযথভাবে "ডাই" করার পদ্ধতিতে অন্তর্ভুক্ত করে না? জটিল ছায়া / পদ্ধতি আছে যা আমাকে আরও ভাল সাফল্য অর্জন করতে দেয়?

দ্রষ্টব্য: যদি গ্রেস্কেল আমাকে আমার চিত্রগুলির র‍্যাম ব্যবহার হ্রাস করতে দেয় বা ক্ষতিকারক সংকোচনকালে গুণমানের ক্ষতি রোধ করতে দেয় তবে এটাই আমি গুরুত্ব সহকারে বিবেচনা করব।


5
এটি বৈধভাবে আকর্ষণীয়। আমি এটিকে ভোট দেবো এবং আশা করি এটি আরও কিছুটা মনোযোগ পেয়েছে। রঙ তত্ত্ব একটি দুর্দান্ত বিষয়।
ইভান

হু রোটেশন একটি সম্ভাবনা, যদিও 2 ডি সত্ত্বেও - আমি জানি না এটি 3 ডি তে কাজ করবে কিনা।
ashes999

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

উত্তর:


19

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

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

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

finalColor = image.r * userColor1 + image.g * userColor2 + image.b * userColor3;

এটি ব্যবহারকারীদের কালো ও সাদা বা বেগুনি এবং সোনার মতো জিনিসগুলি সহ যে কোনও রঙের সংমিশ্রণটি বেছে নিতে দেয়।


1
কেবলমাত্র একটি উত্তরের জন্য নয়, তবে একটি বিরল বিষয়ে (রঙের তত্ত্ব) একটি উত্তর। আমি আগে কেন এটি ভেবে দেখিনি আমার ধারণা নেই। আরজিবি। লাল সবুজ নীল Duh! পৃথক চ্যানেলগুলিতে কৌশলের দক্ষতার কারণে ব্যবহারের জন্য সর্বোত্তম রঙগুলি সম্ভবত সেই তিনটি রঙ।
Carter81

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

10

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

সুতরাং আপনাকে ছবিটির উপাদানগুলির মধ্যে পচন করতে হবে।

একটি উদাহরণ :

ডিকনস্ট্রাক্টড ইমেজ টিন্টেড উদাহরণ

এই ক্ষেত্রে আমাদের 3 স্তর রয়েছে:

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

+1 টি। তবে "আপনি পুরো চিত্রটি কেবল" রঙিন করতে পারবেন না "কিছুটা বিভ্রান্তিকর। এটি সব তার গেমের জন্য ওপি পছন্দ উপর নির্ভর করে। উদাহরণস্বরূপ ডায়াব্লো দ্বিতীয় এটি করেছিলেন। সুতরাং আমি "আপনার প্রয়োজন / আপনার প্রয়োজন" অংশগুলির সাথে এতটা কঠোর হব না। এটি কেবলমাত্র বিকল্পগুলির মধ্যে একটি, আরও ভাল দেখাচ্ছে তবে আরও বেশি র‌্যাম গ্রাহক।
ক্রোমস্টার বলেছেন মনিকা

1
@ ক্রমস্টার্ন পয়েন্টটি হ'ল, আপনি যদি সর্বদা এটি করেন তবে তা দেখতে ভয়ঙ্কর দেখাচ্ছে।
এপিআই-বিস্ট

দুর্দান্ত উত্তর। অটোমেশনের মাধ্যমে কি এটি সম্ভব? একক চরিত্রের জন্য যদি কারও কাছে হাজার হাজার অ্যানিমেটেড চিত্র থাকে তবে প্রতিটি স্তরটি হাত-বাছাই করা বা একবারে চিত্রটি পচিয়ে ফেলা সম্ভব নয়। তবুও, আমি মাস্কিং ব্যবহার করে 3 ডি থেকে রেন্ডারিং করলে এটি স্বয়ংক্রিয় করতে সহায়তা করার জন্য আমি কিছু কাজের চাপ দেখতে পাচ্ছি, তবে তা এখনও একটি দুর্দান্ত উত্তর is
Carter81

প্রভাবশালী রঙগুলি খুঁজে বের করে এবং এগুলি বের করে (আলফা থেকে বর্ণ বিপরীত "আলগোরিদিম ব্যবহার করে" এটি স্বয়ংক্রিয়ভাবে সম্ভব) তবে এর মতো নয় যে আমি কখনও এরকম কিছু প্রয়োগ করেছি।
এপিআই-বিস্ট

হাইলাইটগুলি এক্সট্রাক্ট করার জন্য আপনি পূর্বে উত্তোলিত মুখোশটি নিতে এবং এটি ফিল্টার করতে পারেন যাতে আপনার কেবল উজ্জ্বল উপাদানগুলি থেকে যায়।
এপিআই-জন্তু

3

আপনি যা চান তা অর্জন করার জন্য আমি ব্যক্তিগতভাবে মাস্ক টেক্সচার ব্যবহার করার পরামর্শ দেব। এটি নিশ্চিত করবে যে আপনার মূল আরজিবি 24 টেক্সচারটি কোনও নির্ভুলতা ছাড়াই তার মূল রঙের মান বজায় রাখবে। এটি আপনার রঙিন মুখোশের সাথে আপনার মূল টেক্সচারটি মিশ্রিত করতে আপনাকে প্রচুর শৈল্পিক স্বাধীনতা দেবে।

প্রতিটি মুখোশকে গ্রেস্কেল টেক্সচার হিসাবে দেখা যায় যা আপনার কাস্টম রঙের সাথে আপনার বেস টেক্সচারের রঙকে রৈখিকভাবে বিভক্ত করবে। ধরা যাক আপনি আপনার ব্যবহারকারীদের দুটি রঙ কাস্টমাইজ করতে দিচ্ছেন, পিক্সেল শেডারটি এর মতো দেখতে পাবেন:

ইনপুটস: মেইন টেক্সচার (আরজিবি), মাস্ক 1 টেক্সচার (এ), মাস্ক 2 টেক্সচার (এ), কালার 1 (ফ্লোট), কালার 2 (ফ্লোট)

আউটপুট: (মাস্ক 1 টেক্সচার + মাস্ক 2 টেক্সচার) -মেন টেক্সচার + কালার 1 * মাস্ক 1 টেক্সচার + কালার 2 * মাস্ক 2 টেক্সচার

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

আমি মোবাইল গেমসের জন্য এই কৌশলটি ব্যবহার করেছি এবং এটি আপনার সামগ্রিক কর্মক্ষমতাকে প্রভাবিত করবে না। এতে আপনার প্রতি টেক্সচারের জন্য 33% বেশি র‍্যাম লাগতে পারে তবে মানের জন্য ট্রেড অফ সম্ভবত এটি উপযুক্ত।

পিএস যদি আপনি কেবল একটি কাস্টম রঙ ব্যবহার করার কথা ভাবছেন তবে আপনি কেবল আপনার আরজিবিএ 32 প্রধান টেক্সচারটির আলফা চ্যানেলটিকে আপনার মুখোশ হিসাবে ব্যবহার করতে পারেন।


2

আপনি রঙ প্যালেট ব্যবহার করতে পারেন এবং প্লেয়ারকে প্যালেট সম্পাদনা করতে দিন। আপনি যদি শেডার ব্যবহার করেন, আপনি প্যালেট হিসাবে 1 ডি টেক্সচার এবং সূচক হিসাবে মূল ধূসর মান ব্যবহার করতে পারেন।

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


এটি মূলত আমি যা ভাবছিলাম তাও। আপনি কিছুটা আরও সম্পূর্ণরূপে উত্তরটি প্রসারিত করতে চাইতে পারেন। মূলত, আপনি ব্যবহারকারীকে দুটি রঙ বাছাই করতে (বা ততোধিক বা কম, তবে যুক্তি, 2) এর জন্য একটি 1 ডি টেক্সচার তৈরি করতে পারেন যা দুটি রঙ থেকে বিবর্ণ হয়ে যায়। জ্যামিতিতে একটি গ্রেস্কেল টেক্সচার ব্যবহার করুন যা 1D টেক্সচারে রেফারেন্স হিসাবে কাজ করে। ব্যবহারকারীর পক্ষে কুরুচিপূর্ণ রঙ নির্ধারণ করা এখনও সম্ভব, তবে তাদের কাছে কমপক্ষে বিপরীতে রঙ পছন্দ করার বিকল্প রয়েছে।
wrosecrans

হ্যাঁ আপনি কম ব্যবহারকারীর রঙ থেকে পুরো 255 রঙের প্যালেটও পেতে পারেন, তবে এখানে আমি কেবল আপনাকে এটি ব্যবহার করার পরামর্শ দিতে পারি। আমি জানি যে প্রচুর পুরানো গেমগুলি তাদের দানবগুলিতে পরিবর্তন আনতে রঙ প্যালেটে পরিবর্তন ব্যবহার করেছিল। আমার মনে হয় ডায়াবলো সেটা করেছে।
আরনে

1

আপনি ছবিটি ধূসর ছবিতে রূপান্তর করতে পারেন তবে এটি আরজিবিএ চ্যানেলগুলির সাহায্যে সংরক্ষণ করতে পারেন। আলফা চ্যানেলে একটি ওজনের মান সঞ্চয় করুন তারপরে পিক্সেলটিতে কত ডাই প্রয়োগ করতে হবে তা সিদ্ধান্ত নিতে এটি ব্যবহার করুন। সাদাটি রঙের কতটা কাছাকাছি তার উপর ভিত্তি করে এই ওজনটি গণনা করা যায়। পিক্সেলের সাদাটির যত কাছাকাছি হয়, কম রঙ্গক প্রয়োগ করা উচিত বা ওজন কম হওয়া উচিত। এটি তাদের আসল স্বল্পতা সহ সর্বাধিক হাইলাইটগুলি ছেড়ে দেবে, তবে এতে রঙিনের জন্য কিছুটা প্রয়োগ করুন। চূড়ান্ত পিক্সেলের রঙটি প্রতিটি চ্যানেল রো + (আরডি * এও) গণনা করে পাওয়া যাবে যেখানে Ro আসল লাল, আরডি ডাই রঙের মধ্যে লাল এবং আও মূলটির আলফা। সুতরাং সমস্ত সাদা পিক্সেল কোনও নতুন রঙ পায় এবং সমস্ত কালো পিক্সেল ডাই রঙ অনুমান করে।

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