আমি কীভাবে পরীক্ষার রেন্ডারিং আউটপুট ইউনিট করতে পারি?


19

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

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

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

এটির জন্য কেবলমাত্র দূরবর্তীভাবে কার্যকর পদ্ধতির মধ্যে একটি রেফারেন্স আউটপুটটির সাথে রেন্ডার আউটপুট তুলনা করা জড়িত, যা সাধারণত টিডিডি অনুশীলনকে বাদ দেয় এবং খুব জটিল umbers

আমি অন্যান্য কাঙ্ক্ষিত প্রয়োজনীয়তাগুলি নিয়ে যেতে পারি, তবে আমি ভয় করি যে আমি ইতিমধ্যে তালিকাবদ্ধ করেছি সেগুলি ধরাছোঁয়ার বাইরে।


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

আমি সন্দেহ করি যে উত্তরটি আমি আশা করি ঠিক তেমন উত্তর আমি পাব না, তবে আমি এখনও কিছু ভাল ধারণার আশা করি। কালো পাস সম্পর্কে ভাল চিন্তা। গভীরতার বাফার পরীক্ষা করাও সহায়ক হতে পারে।
notlesh


@ অ্যাডাম যে ভাগ করে নেওয়ার জন্য ধন্যবাদ। দুর্ভাগ্যক্রমে, মোবাইল গেমসে কাজ করা আমার মতো কোনও ইনডির পক্ষে এটি পৌঁছানোর পথ নয় :) এটি আমার বেশিরভাগ বুনিয়াদি প্রয়োজনীয়তাও ব্যর্থ করে।
notlesh

@ অ্যাডাম আপনার অবশ্যই সেই লিঙ্কটি 'উত্তর' দেওয়া উচিত। বেশ উপন্যাস।
জোনাথন ডিকিনসন

উত্তর:


8

এটি অনুমোদনের পরীক্ষার কাঠামোর একটি ভাল প্রয়োগ বা এর মতো কিছু বলে মনে হচ্ছে ।

মন্তব্যে যেমন বলা হয়েছে, আপনি এখনও খারাপ আউটপুট নিয়ে একটি সমস্যা নিয়ে যাচ্ছেন, যদি আপনি খারাপ আউটপুটকে অনুমোদন করে থাকেন তবে আউটপুট উল্লেখযোগ্যভাবে পরিবর্তিত হয়ে গেলে এটি আপনাকে কমপক্ষে বলবে।

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


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

অনুমোদনের পরীক্ষাটি স্বয়ংক্রিয় পরীক্ষা নয়।
জেডউইক্লাউড

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

@ জনগিয়েটজেন আপনার উত্তর থেকে আমি এটি বুঝতে ব্যর্থ হয়েছি। আমি মনে করি আপনার অনুমোদনের পরীক্ষার ধারণাটি আরও স্পষ্টভাবে স্পষ্ট করা উচিত। উত্তর আপডেট হলে আমি ডাউনভোটটি সরিয়ে ফেলব।
zwcloud

6

আমি গেম ব্যবসায়ে নেই, সুতরাং দয়া করে কোনও সম্ভাব্য বোকা এবং নিষ্পাপ ধারণাটি সহ্য করুন

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

একটি মধ্যবর্তী স্তর সম্পর্কে কী যেখানে আপনি যাচাই করতে পারেন যে সবকিছু ঠিক আছে? দুটি বিষয় আমার মনে আসে:

  1. সরাসরি আঁকবেন না, তবে কমান্ড স্ট্রিমটি সরবরাহ করুন যা কলগুলি উপস্থাপনে পরিণত হয় down কমান্ড স্ট্রিমটি সঠিকতার জন্য পরীক্ষা করা যেতে পারে। এটি কোনও শেষ-শেষের পরীক্ষা নয়, তবে আপনি ইউনিট পরীক্ষা চান , পুরো সংহতকরণ পরীক্ষা নয়।

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


3

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

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

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

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

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