60+ ইঞ্চি এলইডি টিভিগুলির 5x2 অ্যারে চালানোর জন্য আমাকে একটি রিয়েল টাইম "পূর্ণ স্ক্রিন" ডেমো তৈরির কাজ দেওয়া হয়েছে: বা, অন্য কথায়, একটি 20 মেগাপিক্সেল ডিসপ্লে।
আমরা একটি মেশিন তৈরি করেছি যা পুরো রেজোলিউশনে ডিসপ্লে জুড়ে ছড়িয়ে থাকা একক উইন 7 ডেস্কটপ এবং কিছু সুন্দর শালীন ভিডিও কার্ড চালাতে পারে।
আমার প্রশ্নটি হ'ল: আমার পিক্সেল শেডাররা যে হাস্যকর কাজ করতে চলেছে তা বাদ দিয়ে, ডিএক্স 10 এর অন্য কোনও সীমাবদ্ধতা রয়েছে কি? * যা এখানে খুব বেশি বুদ্ধিমান আকারের ভিউপোর্টে না আসে? আমার পরের সপ্তাহ পর্যন্ত হার্ডওয়্যারটিতে অ্যাক্সেস থাকবে না তবে আমি এমন কিছু লিখে রাখতে চাই যাতে আমি সিস্টেমটিকে বেনমার্ক করতে পারি।
হালনাগাদ
এএমডি আইফিনিটি (output টি আউটপুট) কার্ডের গুচ্ছ সহ একক মেশিনে এই কাজটি চালানোর জন্য পরিচালিত হওয়ার সময় - জিনিসগুলি সুচারুভাবে চালিয়ে যেতে, "উইন্ডো স্প্যানের প্রদর্শন হিসাবে ডিসপ্লেতে একটি ডিএক্স উইন্ডো তৈরি করা" সবচেয়ে সহজ "উপায় হয়ে উঠল কিছু পারফরম্যান্সের সমস্যা সৃষ্টি করেছিল - আমি একদল মেশিনে টাস্কটি বিতরণ করে এটি বেশ ভালভাবে কাজ করতে পেরেছি, যার প্রত্যেকে দুটি করে প্রদর্শন চালায়।
এটা আশ্চর্যজনকভাবে সহজ ছিল। আমার পরীক্ষার এক্সএনএ অ্যাপ্লিকেশানের জন্য, আমি এমন একটি গেমস কম্পোনেন্ট যুক্ত করেছি যা কিছু গেম স্টেট (ক্যামেরার অবস্থান / অভিযোজন ইত্যাদি) ক্যাপচার করে এবং ফ্রেম প্রতি স্থানীয় সাবনেট জুড়ে ইউডিপি-স্প্যাম করে।
এই উপাদানটির একটি Mode
স্যুইচ রয়েছে (প্রেরণ বা গ্রহণ করুন)। যদি এটি Receive
মোডে থাকে তবে এটি ইউডিপি ডেটাগ্রামগুলি ধরে এবং প্রেরকের তথ্য সহ গেমের অবস্থা আপডেট করে। Send
মোড কেবল স্টেট প্যাকেট প্রেরণ করে এবং কোনও পরিষেবা / ডেমনের মাধ্যমে নোডকে ক্লায়েন্ট অ্যাপ্লিকেশন শুরু বা বন্ধ করে দেয়। যে কোনও ক্লায়েন্ট "মাস্টার" হিসাবে কাজ করতে পারে এবং কোনও ক্লায়েন্টকে Send
মোডে স্যুইচ করতে অন্য সমস্ত নোডকে স্যুইচ করার অনুরোধ জানায় Receive
। লোকেরা যখন নিয়ন্ত্রণের বিরুদ্ধে লড়াই করে তখন কী ঘটে তা দেখতে মনোরম বিনোদনমূলক।
আরেকটি ঝরঝরে সুবিধা: আমি একটি কনসোল অ্যাপ্লিকেশন তৈরি করেছি যা কীফ্রেমের রাজ্য সংজ্ঞা - অবস্থান, সময় ইত্যাদির ধারাবাহিকভাবে প্রক্রিয়া করে - প্রয়োজন অনুসারে ইন্টারপোলেট করে এবং গেম ইঞ্জিনে ব্যবহৃত একই কোড ব্যবহার করে তাদের প্রেরণ করে। এটি আমাকে সহজেই চলাচলের স্ক্রিপ্ট করতে, ওয়েব ব্রাউজার থেকে রূপান্তরগুলি জমা দিতে দেয় etc.
সব মিলিয়ে অ্যাপের একাধিক কপি সিঙ্কে চলতে রাখতে প্রায় 50 টি লাইন কোড লেগেছে। কিছু অতিরিক্ত জটিলতা প্রতিটি মেশিনের জন্য ক্যামেরা অবস্থান নির্ধারণ করে এবং কিছু দৃষ্টিভঙ্গি / প্রজেকশন বিরক্তি সংশোধন করে আসে তবে বেশিরভাগটি নোড কনফিগারেশন ফাইলে নেমে আসে।