ভেরিয়েবল লাইন প্রস্থের সাথে টুন / সেল শেডিং?


15

আমি সেল শ্যাডিংয়ের জন্য কয়েকটি বিস্তৃত পদ্ধতি দেখতে পেয়েছি:

  1. ফ্লিপড নরমালগুলির সাথে মডেলের নকল এবং বর্ধন (আমার পক্ষে কোনও বিকল্প নয়)
  2. সোবেল ফিল্টার / খণ্ডের শেডার প্রান্ত সনাক্তকরণের দিকে এগিয়ে যায়
  3. স্টেনসিল বাফার প্রান্ত সনাক্তকরণের দিকে এগিয়ে যায়
  4. জ্যামিতি (বা ভার্টেক্স) শেডার পন্থা যা মুখ এবং প্রান্তের সাধারণগুলি গণনা করে

আমি জ্যামিতি কেন্দ্রিক পদ্ধতির ধারণা এবং হালকা এবং লাইনের বেধের উপর নিয়ন্ত্রণের সর্বাধিক পরিমাণ দেয় যেমন ধরে রেখেছি ঠিক তাই? ভূখণ্ডের জন্য যেখানে আপনি দেখতে পাচ্ছেন একটি পাহাড়ের সিলুয়েট লাইন ধীরে ধীরে সমভূমিতে মিশে যাচ্ছে?

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

শেষ অবধি, জ্যামিতির শেডার ব্যবহার করে কী সস্তার সাথে ফ্লিপড-নরমালসের পদ্ধতির অনুকরণ করা সম্ভব? এটির সাথে আমার উদ্বেগটি হ'ল আমি অবশ্যই প্রতিটি একদিকের প্রতিলিপিটি নকল করতে এবং সেগুলি অনুসারে স্কেল করতে পারি, তবে আমি কীভাবে উল্টানো নরমালগুলি এবং টুকরো টুকরো টুকরো শ্যাডারে পৃথক রঙের কাছে যেতে পারি?

আমি যা চাই - সিলুয়েটের অভ্যন্তরে প্রবেশের লাইনগুলির সাথে বিভিন্ন লাইনের বেধ ...

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

আমি যা চাই না ...

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


সম্পাদনা: আরও গবেষণা নিম্নলিখিত বিষয়গুলি আপ করেছে ...

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

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

স্টেনসিল বাফার এমন কিছু যা আমি শেডারে সমস্ত কাজ করতে পছন্দ করায় আমি এড়াতে পারি। (লাল রূপরেখার সাথে উপরের উদাহরণটি স্টেনসিল বাফার - পুরানো স্কুল দিয়ে করা হয়েছিল))

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

সুতরাং প্রশ্নটি এখন আরও সুনির্দিষ্ট হয়ে উঠেছে: আমি ভ্যারিয়েবল প্রান্তের প্রস্থগুলি সম্পর্কে বিশেষত বাইরের সিলুয়েটে কোনও খণ্ড শেডারে কীভাবে যাব?


পরিবর্তনের লাইনের বেধ জ্যামিতিক পদ্ধতির একটি বৈশিষ্ট্য। দক্ষতার সাথে এটি অন্য কোনও উপায়ে পাওয়া যায় না। যেহেতু আপনি এটি চান, আমি পিক্সেল শেডারগুলিকে "আরও দক্ষ পদ্ধতি" হিসাবে দেখছি না: অনুসন্ধান করতে পিক্সেলের সংখ্যা = (লাইন_ধ্বন * 2 + 1) ^ 2 - 1. এর অর্থ মূলত আপনার পোস্ট-প্রক্রিয়া শেডার সর্বাধিক হলে ধীরে ধীরে (অনুমান: 10x) হবে ess লাইন প্রস্থ সমান 2. শুধু প্রাক বিচারক ড্রপ এবং জ্যামিতি শেডার পদ্ধতির চেষ্টা করুন।
সাপ

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

২২ মিলিয়ন ভার্টিক্স (লিনিয়ার রিড / রাইটিং) বনাম ২৩ মিলিয়ন টেক্সচারের নমুনা (বরং খারাপভাবে ক্যাশেড মেমরি পড়ে + টার্গেটের ডেটা রেন্ডার করে) + 1280x720। উপায় দ্বারা, ভার্টেক্স গণনা সীমাবদ্ধ করা / হ্রাস করা অনেক সহজ। বিশেষত এই দিনগুলিতে, যখন বড় মনিটর (1920x1080 +) এবং মাল্টিমনিটর সেটআপগুলি খুব জনপ্রিয় হয়ে উঠছে।
সাপ

লাল আউটলাইন উত্পন্ন এক হিসাবে একই অ্যালগরিদম ব্যবহার এবং তার গভীরতার উপর ভিত্তি করে পাতলা / ক্রমবর্ধমান লাইন সম্পর্কে কী?
Ali1S232

@ গাজু, আমি যখন প্রশ্নে বলছিলাম, এটি কেবল সিলুয়েটের কথা নয়। প্রথম চিত্রটিতে মেয়েটির কাঁধের পিছনে অনুপ্রবেশকারী রেখাগুলি নোট করুন। এগুলি হ'ল ফ্লিপড-নরমালসের পদ্ধতির একটি ফাংশন এবং পরামর্শমূলক রূপ / ক্রিজ হিসাবে কাজ করে। আমারও একই দরকার
ইঞ্জিনিয়ার

উত্তর:


4

আমি গভীরতা বাফারের বিচ্ছিন্নতা ফিল্টারিংয়ের মাধ্যমে একটি খণ্ড শেডার পদ্ধতির সাথে যাওয়ার সিদ্ধান্ত নিয়েছি। এর কারণগুলি হ'ল:

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

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


আমি মনে করি যে স্বাভাবিকের বিরতি নিয়ে যাওয়া আপনার ফ্ল্যাট নরমাল হওয়ার ক্ষেত্রে আরও ভাল ফলাফল দেয়। স্যাম্পলকে আরও দূরে সরিয়ে আপনি লাইন প্রস্থকে আলাদা করতে পারেন।
গ্রিভারহার্ট 11

@ গ্রেভারহার্ট এটি গ্রহণযোগ্য উত্তর, কারণ যে পদ্ধতিটি আমি ব্যবহার করছি তা ঠিক কাজ করে। ধন্যবাদ।
ইঞ্জিনিয়ার

0

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

আমি ফরাসি বংশোদ্ভুত, যিনি এই সমাধানটি তৈরি করেছিলেন তার আগেও আমি টুনশেডার আলগোরিদমকে 2000/2001 সালে আবিষ্কার করেছি। খনি প্রকৃত উপকরণ জ্যামিতির উপর ভিত্তি করে ছিল। তারপরে এটি করার মূলত দুটি উপায় রয়েছে: ১. নরমালগুলির দিকে নজর দিন, যদি কোনও লাইনের সাথে সংযুক্ত দুটি প্লেন দূরে এবং ক্যামেরার দিকে মুখ করে থাকে তবে সেই লাইনটি রেন্ডার করুন, তারপরে আপনি রেখাঙ্কনের জন্য সংকেত হিসাবে গভীরতা, আলো ইত্যাদি ব্যবহার করতে পারেন। ২. রেন্ডারড জিওমেটিটি দেখুন (সুতরাং দৃষ্টিভঙ্গি রূপান্তরের পরে) প্রতিটি লিগিনগমেন্ট নিন, যদি সংযোগকারী প্লেনগুলির উল্লম্বগুলি এই লিনিগমেন্টের একই দিকে থাকে, আপনি লাইনটি রেন্ডার করুন .. আপনি তারপরে লাইন-বেধের জন্য একই কাজ করতে পারেন পদ্ধতি ১. ৩. আপনি এই তিনটি কৌশলগুলির সংমিশ্রণ তৈরি করতে পারেন, তবে আমি প্রথমটি উল্লেখ করেছি, কারণ আপনি একটি বিশাল পলি-কাউন্ট ইঙ্গিত করেছেন।

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