ভেক্টর গ্রাফিক্স বনাম বিটম্যাপ বা রাস্টার গ্রাফিক্সের পারফরম্যান্স


20

কখনও কখনও আমি ভেক্টর গ্রাফিক্স ব্যবহার করি, কেবল কারণ এগুলি কিছু ক্ষেত্রে সামান্য সুন্দর দেখায় এবং অন্য সময়, আমি বিটম্যাপ / রাস্টার গ্রাফিক্স ব্যবহার করি।

আমি ভাবছিলাম, এই দুটি বিকল্পের মধ্যে কোনও উল্লেখযোগ্য পারফরম্যান্সের পার্থক্য রয়েছে কি?


6
সত্যিই, এটি অনেকগুলি বিষয়ের উপর নির্ভর করে। এনভিআইডিএ ভেক্টর গ্রাফিক্সের জন্য হার্ডওয়্যার ত্বরণ সরবরাহ করে। তুমি কি এটা দেখেছ? developer.nvidia.com/nv-path-rendering-videos
TheBuzzSaw

উত্তর:


15

দ্য বজসউ যেমন বলেছিলেন, এটি ভেক্টর গ্রাফিক্স বনাম রাস্টারযুক্ত গ্রাফিক্সের বাস্তবায়ন সহ প্রচুর বিষয়ের উপর নির্ভর করে।

এখানে কয়েকটি উচ্চ কার্যকারিতা ভেক্টর গ্রাফিক্স পদ্ধতি রয়েছে যা traditionতিহ্যগতভাবে রাস্টেরাইজেশন পদ্ধতি ব্যবহার করে রেন্ডার করা হয়।

লুপ এবং ব্লিন একক ত্রিভুজটি রেন্ডার করে কীভাবে ভেক্টর গ্রাফিক্স চতুষ্কোণীয় বেজিয়ার বক্ররেখা রেন্ডার করতে হয় এবং পিক্সেল শেডারতে টেক্সচার সমন্বয় করে পিক্সেলটি বক্ররেখার উপরে বা নীচে রয়েছে কিনা তা বোঝাতে : http: //www.msr-wayPoint। নেট / en-US / উম / ব্যক্তি / cloop / LoopBlinn05.pdf

মূল ধারণাটি হ'ল আপনি আপনার ত্রিভুজ কোণার অবস্থানগুলি 3 টি নিয়ন্ত্রণ পয়েন্টের অবস্থান হিসাবে সেট করেছেন এবং আপনি প্রতিটি কোণায় টেক্সচারের স্থানাঙ্কগুলি যথাক্রমে (0,0), (0.5,0) এবং (1,1) সেট করেছেন। আপনার শেডারে, যদি বিভক্ত টেক্সচার সমন্বয় (x * xy) <0 হয়, পিক্সেলটি বক্ররেখার নীচে থাকে, অন্যথায় এটি বক্ররেখার উপরে থাকে।

আপনি এখানে shadertoy এ এর ​​একটি ছদ্ম বাস্তবায়ন দেখতে পাবেন: https://www.shadertoy.com/view/4tj3Dy

দ্বিতীয় পদ্ধতির হিসাবে, এখানে ভালভের একটি পদ্ধতি রয়েছে, যেখানে পিক্সেল ডেটার পরিবর্তে কোনও আকারের দূরত্বগুলি একটি জমিনে সংরক্ষণ করা হয়, ভেক্সট গ্রাফিকগুলি টেক্সচার স্যাম্পলিং ব্যবহার করে আঁকতে দেওয়া হয়। ডিকোডিংটি এত সহজ, এটি কেবলমাত্র একটি আলফা পরীক্ষা ব্যবহার করে স্থির ফাংশন হার্ডওয়্যারেও প্রয়োগ করা যেতে পারে! http://www.valvesoftware.com/publications/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf

দ্বিতীয় কৌশলটি কতটা ভাল কাজ করে তার একটি ধারণা দিতে, এই 1024x768 গোঁফ চিত্রটি একটি color৪x32 উত্স চিত্র থেকে উত্পন্ন হয়েছিল যার একটি একক রঙের চ্যানেল ছিল! (ওরফে 2 কেবি সঙ্কুচিত)

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

আমি আমার ব্লগে এটি সম্পর্কে কিছু জিনিসও লিখেছি: http://blog.demofox.org/2014/06/30/distance-field-textures/

এটি কতটা সহজ তা দেখানোর জন্য এখানে কয়েকটি নমুনা ওপেনসিএল কোডটি দেওয়া হল:

float alpha = read_imagef(tex3dIn, g_textureSampler, textureCoords).w;
float3 color = (alpha < 0.5f) ? (float3)(1.0f) : (float3)(0.0f);

এই উভয় কৌশলই দুর্দান্ত দ্রুত, এবং ভেক্টর এবং রাস্টারাইজড গ্রাফিক্সের মধ্যে কিছুটা ধাপ ঝাপসা করে। এগুলি রাস্টারাইজেশন কৌশলগুলি ব্যবহার করে রেন্ডার করা হয় তবে ভেক্টর গ্রাফিক্স কৌশলগুলির মতো জুমিং / স্কেলিং বৈশিষ্ট্য রয়েছে।



হ্যাঁ এটি একটি দুর্দান্ত কৌশল, এটি দ্বিতীয় কৌশলটি আমি উল্লেখ করেছি এবং আমি উপরে একই পিডিএফের সাথেও লিঙ্ক করছি।
অ্যালান ওল্ফ

ওফস, মিস করলাম, দুঃখিত।
তেহ ইন্টারনেটস ক্যাটজ দিয়ে

1
দূরত্বের ক্ষেত্রগুলির প্রান্ত অ্যান্টি-এলিয়াসিংয়ের জন্য একটি অভিযোজিত সমাধানটি এখানে পাওয়া যাবে: প্রয়োজনীয়মাথ . com/blog/?p=151 ।
জিম ভ্যান ভার্থ

8

হতে পারে.

কম প্রযুক্তিগত উত্তর:

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

আরও প্রযুক্তিগত:

মনে রাখবেন যে আপনি জিপিইউতে ভেক্টর পাথ আঁকানোর জন্য কোনও নতুন জিপিইউ এবং একটি লাইব্রেরি ব্যবহার না করে থাকেন, তবে জিপিইউ দ্বারা বিটম্যাপের সমস্ত রচনা সরবরাহ করা হচ্ছে।

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

আশা করি এটা কাজে লাগবে.


6

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

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

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