কাকতালীয় তলগুলির সাথে জেড-ফাইটিং এড়ানো


26

দুটি ওভারল্যাপিং কো-প্ল্যানার পৃষ্ঠকে উপস্থাপন করার সময়, একটি সাধারণ সমস্যা হ'ল জেড-ফাইটিং ", যেখানে রেন্ডারার সিদ্ধান্ত নিতে পারে না যে দুটি পৃষ্ঠের কোনটি ক্যামেরার কাছাকাছি রয়েছে, ওভারল্যাপের অঞ্চলে ভিজ্যুয়াল আর্টফিট দেয়।

এর মানক সমাধানটি হ'ল মডেলটি ডিজাইনের সময় পৃষ্ঠগুলি সামান্য অফসেট দেওয়া। অন্য কোন সমাধান আছে কি?


2
আপনি লগারিদমিক গভীরতা বাফারগুলি চেকআউট করতে পারেন। সেখানে একটি নিবন্ধ এর gamasutra
soapy

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

@ সিমোনএফ, "কো-প্ল্যানার" দ্বারা আমি বোঝাচ্ছি "হুবহু কো-প্ল্যানার"। সোপির সমাধানটি কেবল "প্রায় সহ-পরিকল্পনাকারী" ক্ষেত্রে কাজ করে।
চিহ্নিত করুন

আপনি কি আপনার পৃষ্ঠতল উদাহরণ দিতে পারেন? আমার মাথার উপরের অংশটি কেবলমাত্র আমি ভাবতে পারি তা হ'ল @ সিমোনএফ যেমন উল্লেখ করেছে ত্রিভুজগুলি।
রিচিস্যামস

@ রিচিস্যামস সবচেয়ে সাধারণ বিষয় যা আমি ভাবতে পারি সেগুলি হ'ল ডিক্যালস, যেখানে আপনার হুবহু সদৃশ ত্রিভুজগুলির প্রয়োজন নেই।
রশ্মি

উত্তর:


10

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

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

আপনার স্ক্রিন স্পেস ডেসালস (এসএসডি) এর উদাহরণের ক্ষেত্রে, সাধারণ সমাধানটি হ'ল একটি অফসেট, একটি সাধারণ পাতলা ঘনক্ষেত্র ব্যবহার করে। রেফারেন্সের জন্য এসএসডি সম্পর্কে ওয়ারহ্যামার 40k এর উপস্থাপনা দেখুন । বা বার্ট র্রনস্কির পোস্ট যা ডেস্কলগুলি সহ কিছু অন্যান্য বিষয়কে সম্বোধন করে, তবে এসএসডি সম্পর্কে আরও কয়েকটি উপস্থাপনার লিঙ্ক করে


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

@ নাথানরিড সংশোধন করেছেন স্পষ্টতার জন্য আপনাকে ধন্যবাদ
রিচিস্যামস

1
এই কার্যকারিতাটি পেতে আপনাকে glsl এ ইনভেরিয়েন্ট যোগ্যতা ব্যবহার করতে হবে: opengl.org/wiki/Type_Qualifier_%28GLSL%29#Ivariance_qualifiers
ashleysmithgpu

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

2

অতীতে আমি কীভাবে এটি সমাধান করেছি:

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

দ্রষ্টব্য, এটি কাজ করার জন্য অবজেক্টগুলিকে একটানা টানা দরকার।


0

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

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

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