জিপিইউতে ভূখণ্ড তৈরি করা হচ্ছে


9

আমার ইঞ্জিনে আমি সিপিইউতে গণনা করা পার্লিন গোলমাল আলগোরিটম ব্যবহার করে অসীম অঞ্চল তৈরি করি।

ভূখণ্ডের সৃষ্টি এইভাবে হয়:

  • ক্যামেরা যদি লোড প্যাচের কাছাকাছি থাকে তবে এটি তৈরি করুন
  • প্রদত্ত সীমানা সহ 513x513 শব্দের অ্যারে গণনা করুন
  • গণনা নরমাল, স্পর্শকাতর, দ্বিপদী, সূচকগুলি
  • ভিবিওতে ডেটা পাস করুন

পেশাদাররা:

  • প্রয়োজন হলে কেবল রেন্ডার করা দরকার
  • সংঘর্ষ করা সহজ

বিরূদ্ধে

  • ধীর 64৪ 513x513 প্যাচগুলি 3,1 এস (একটি থ্রেড) এ তৈরি করা হয়েছে। প্রতিটি টাইলের 20 মিমি শোনার সৃজন, 25 মিমি বিশিষ্ট, নরমালস, স্পর্শকাতর, বিটজেন্ট, সূচকগুলি। যখন ক্যামেরা দ্রুত চলে আসে তখন ব্যবহারকারী টাইলস লোড করতে পারে notice
  • স্মৃতি গ্রাস ???

এখন আমি ভাবছিলাম কীভাবে জিপিইউতে সম্পূর্ণ ভূখণ্ড তৈরি করে এই গতি বাড়ানো যায় তবে কিছু সন্দেহ রয়েছে:

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

আমার চূড়ান্ত প্রশ্নটি হ'ল:

জিপিইউতে অসীম ভূখণ্ড তৈরি করার জন্য সেরা / দ্রুত / বহুল ব্যবহৃত কৌশল কী?


8
কেবল নোট করুন যে জিপিইউতে টেরেইন তৈরি করা সংঘর্ষ সনাক্তকরণ, বাছাই সনাক্তকরণ বা ভূখণ্ডের সাথে প্রায় কোনও প্রকারের মিথস্ক্রিয়াকে জটিল করে তুলবে।
মাইকেলহাউস

1
একটি গণনা শ্যাডার (ডিএক্স 10 বা 11) জিপিইউতে ভূখণ্ড তৈরি করতে ব্যবহৃত হতে পারে। বাইট 55 অনুসারে, আপনার সাথে ইন্টারঅ্যাক্ট করার জন্য আপনাকে GPU এর বাইরে মানগুলি টানতে হবে। msdn.microsoft.com/en-us/library/windows/desktop/…
অ্যান্ডস্কোরজিরো

GPU ধরণের শব্দে ভূখণ্ড তৈরি করা আমার কাছে খারাপ ধারণা। এটি কাজ করতে পারে তবে আমি অনুমান করি যে এটি আপনি যদি কেবলমাত্র সিপিইউয়ের অঞ্চলটি তৈরি করেন এবং জিপিইউতে স্ট্যান্ডার্ড অঙ্কন স্টাফ প্রেরণ করেন তবে এটি সম্ভবত কিছুটা ভাল কাজ করবে।
বেনিয়ামিন ডেঞ্জার জনসন

শুধু আমার অভিজ্ঞতা; আমি আসলে এটি অপাপির সাহায্যে করেছি এবং আসলে কাজ করার জন্য জঘন্য জিনিসটি পেয়েছি; তবে এটি আসলে সিপিইউর কাজটি করার চেয়ে ধীর হয়ে গেছে। আমি জিপিইউতে / থেকে ডেটা প্রেরণের ওভারহেডের কারণেই মনে করি। যদি আমি সঠিকভাবে মনে করি জিপিইউ কেবল সত্যই কাজ করে যদি ডেটা আকারের তুলনায় গণনাটি বড় হয় (এবং নিখুঁত পদে এটিও বড়)
রিচার্ড টিঙ্গল

এই নিবন্ধটি আপনাকে কিছু ধারণা দিতে পারে http.developer.nvidia.com/GPUGems3/gpugems3_ch01.html
জেরেমিয়

উত্তর:


2

আচ্ছা যদি আমি এই জাতীয় জিনিসের জন্য জিপিইউটি ব্যবহার করার চেষ্টা করি তবে আমি মনে করি আমি গণনা / ওপেনক্লোল / চুদা যাব।

তবে জিপিইউ বা সিপিইউ ব্যবহার না করেই (যা আমি আসলে করি) আমি এটি অ্যাসিঙ্ক্রোনাস পদ্ধতিতে করব, বর্তমান ফ্রেমের জন্য আপনাকে কিছু নতুন ভূখণ্ডের প্রয়োজন হবে সিদ্ধান্ত নেওয়ার সম্ভাবনা অনেক দেরিতে (যেমন 1000ms / 60 = 16.666ms বিবেচনা করুন, এবং পুরো ফ্রেম এটিতে ফিট করতে চায়)।

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

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