"স্ক্যানলাইন রেসিং" কী


13

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

উত্তর:


14

আপনার জিপিইউ যখন স্ক্রিনে একটি নতুন ফ্রেম প্রদর্শন করে, তখন এটি "স্ক্যানআউট" নামক প্রক্রিয়াতে চিত্রটি এইচডিএমআই কেবল (বা যাই হোক না কেন) এর মাধ্যমে স্থানান্তর করে। পিক্সেলগুলি রৈখিক ক্রমে প্রেরণ করা হয়, সাধারণত বাম থেকে ডান এবং উপরে থেকে নীচে। প্রক্রিয়াটি সময়সীমা সম্পন্ন হয় যাতে এটি করতে রিফ্রেশ ব্যবধানের বেশিরভাগ সময়কাল লাগে। উদাহরণস্বরূপ, 60Hz এ, একটি ফ্রেম 17 ডলার। প্রতিটি স্ক্যানআউট প্রায় 15-16 এমএস লাগবে, মধ্যে 1-2 এমবি ভিবি্ল্যাঙ্কের মধ্যে (সঠিক মানগুলি প্রদর্শন এবং ভিডিও মোড অনুসারে পরিবর্তিত হয়)।

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

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

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


1
সুতরাং আমার প্রশ্ন হল আমরা আধুনিক জিপিইউগুলিতে এটি কীভাবে করব? আমি মনে করি না যে স্ক্যানআউটটি জিজ্ঞাসা করার কোনও উপায় আছে এবং আমার কাছে মনে হয় আপনি সত্যিই প্রতি স্ক্যানলাইন ড্র কল জমা দিতে পারবেন না। এমনকি যদি আপনি পারতেন - আপনার কী গ্যারান্টি আছে যে আপনার ড্রগুলি স্ক্যানআউটের আগে সেখানে চলে আসবে?
মোকোশা

1
@ মোকশা সঠিক, স্ক্যানআউটকে সরাসরি এএফআইকে জিজ্ঞাসা করার উপায় নেই। সর্বোপরি, আপনি যখন vsync (কিছু ওএস সিগন্যালের মাধ্যমে) আছেন তখন এটি নির্ধারণ করতে পারেন এবং স্ক্যানআউটটি তার সাথে সম্পর্কিত (ভিডিও মোডের বিশদগুলি জেনে) সময় নির্ধারণ করে mate রেন্ডারিংয়ের জন্য, আপনি সাধারণত glFlush এর মধ্যে কতক্ষণ সময় নেয় এবং কখন রেন্ডারিং হয় তা পরীক্ষা করে পরীক্ষা করতে পারেন এবং এর ভিত্তিতে কিছু অনুমান তৈরি করতে পারেন। শেষ পর্যন্ত, আপনার ত্রুটির ক্ষেত্রে আপনার সময়কালে কিছুটা স্ল্যাক তৈরি করতে হবে (উদাহরণস্বরূপ স্ক্যানআউট থেকে ২-৩ এমএস দূরে থাকুন) এবং গ্রহণ করুন যে সম্ভবত মাঝে মধ্যে নিদর্শন থাকবে।
নাথান রিড

বর্ধিত বিলম্বের প্রভাবটি ভিএনসিএন-এর কারণে হয়, যার ফলে সামনের এবং ব্যাকব্ফার অদলবদল মনিটরের vblank এর সাথে সুসংগত হয়। ডাবল বাফারিং নিজেই এই সমস্যাটি সৃষ্টি করে না এবং ঝলকানি হ্রাস করতে দরকারী কারণ একটি পিক্সেল কেবল সামনের বাফারে একবার পরিবর্তন করতে পারে।
মরিস Laveaux

আমি স্ক্যান লাইন কোয়েরি ছাড়াই রেস্টারদের পূর্বাভাস দেওয়ার সঠিক উপায় নিয়ে এসেছি, নীচের উত্তরটি দেখুন।
মার্ক রেজাইন

0

দুর্দান্ত জিনিসটি হ'ল আমরা শেষ পর্যন্ত স্ক্যানলাইনের প্রতি স্ক্যানলাইন ক্যোয়ারীতে অ্যাক্সেস ছাড়াই সঠিক রাস্টার সঠিকতার পূর্বাভাস দিতে পারি:

https://www.youtube.com/watch?v=OZ7Loh830Ec

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

ফোরামের থ্রেডে মনোযোগ দিন - এখানে কিছু ওপেন সোর্স কোড ক্রমাগত যুক্ত হচ্ছে - https://forums.blurbusters.com/viewtopic.php?f=10&p=32002


0

যদি এটি আগ্রহী হয় তবে ড্রিমকাস্টের একটি "রেসিং বিম" রেন্ডারিং মোড ছিল যার মাধ্যমে এটি মেমরির তুলনামূলকভাবে ছোট ভগ্নাংশটি ফ্রেমবফার পিক্সেলকে (যেমন 64৪ স্ক্যান লাইনগুলি) উত্সর্গ করতে সক্ষম হয়েছিল এবং এটি পরিবর্তে সিঙ্ক্রোনাইজড 32 সারিগুলি সরবরাহ করবে would প্রদর্শন আপডেট। এটি অবশ্য মেমরি বাঁচাতে ব্যবহৃত হয়েছিল। আমি সন্দেহ করি যে কেউ ডিসপ্লেটির পরবর্তী অংশগুলির জন্য "সংশোধিত" জ্যামিতি তৈরি করছে।

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