ক্যামেরা দেখার বাইরে থাকা গেম অবজেক্টগুলি কি ইউনিটিতে কম্পিউটার / মোবাইল সংস্থান গ্রহণ করে?


11

একতার সাথে, ধরে নিই যে আমার দৃশ্যে আমার কাছে এমন কিছু গেম অবজেক্ট রয়েছে যা ক্যামেরায় দৃশ্যমান নয় এবং গেমটি চলাকালীন রেন্ডার করা হয় না।

এই গেম অবজেক্টগুলি যখন গেমটি চলছে তখন কম্পিউটার / মোবাইল সংস্থান গ্রহণ করবে?

এর মতো ব্যবহারের বিশদটি আমি কোথায় পাব?

উত্তর:


13

আপনি যা চান তা একটি মেমরি প্রোফাইলার, কোন ইউনিটির আছে। এখানে: http://docs.unity3d.com/Manual/ProfilerMemory.html

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

তবে সাধারণত প্রধান ধীরগতির অঙ্কন হ'ল, সামান্য পরিমাণ সিপিইউ সময় নির্ধারণ করতে ব্যবহৃত হয় যে বস্তুটি ক্যামেরার হতাশার (সীমানা) বাইরে রয়েছে, তবে কোনও অঙ্কন করা হয় না।


5

আমার মনে হয় আপনার ফ্রাস্ট্রাম কুলিং, বা উপরিভাগ অপসারণ সম্পর্কেও জানা উচিত: http://en.wikedia.org/wiki/Hided_surface_determission

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


2
@ গিসিপি_453, এই লাইনগুলি নিয়ে গবেষণা করার সময়, কোয়াড এবং অষ্ট-গাছগুলি (স্থানিক ডেটা বাছাই করা) গবেষণাও করেছেন
জন

3

সংক্ষিপ্ত উত্তর হল হ্যাঁ"; আপনার গেমটিতে ব্যবহারের জন্য প্রস্তুত যে কোনও কিছু স্মৃতি গ্রহণ করছে।

অন্য বিষয় বিবেচনা করার জন্য হ'ল আপনার ফ্রেম-রেটের ব্যয়:

5 পৃথক টেক্সচার সহ 5 টি অবজেক্টের জন্য পৃথকভাবে আঁকতে অভ্যন্তরের মধ্যে রাজ্য-পরিবর্তন প্রয়োজন। ব্যবহৃত না হওয়া টেক্সচারগুলি আনলোড করে আপনি কিছু স্মৃতি সঞ্চয় করতে সক্ষম হতে পারেন।

একক আটলাস টেক্সচারে পৃথক সমস্ত টেক্সচার লোড করে, মেমরির পদক্ষেপ স্থির হয়ে যায় এবং আপনি আর কোনও পৃথক টেক্সচার আনলোড করতে পারবেন না। একবার তৈরি হয়ে গেলে, আপনার সমস্ত বস্তু আঁকতে আপনাকে একবার কেবল আটলাসকে আবদ্ধ করতে হবে।

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

আরও অনেক সময় আছে যেখানে বর্ধিত আপ-ফ্রন্ট মেমরির ব্যয় অনেকগুলি রাষ্ট্র-পরিবর্তনের চেয়ে পছন্দনীয়।

আপনি যদি নিজের ক্যামেরাটি ঘোরান, আপনি না জানলে আপনি অবশ্যই সেগুলিকে ধ্বংস করতে পারবেন না, সেই ক্যামেরাটি সেই বস্তুটি পরীক্ষা করতে পিছনে ঘুরবে না "" - কাটু

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


1

প্রচুর উত্তর মূলত আপনার প্রশ্নের গ্রাফিক্স দিক বিবেচনা করছে।

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

অফ-স্ক্রিন উপাদানগুলির প্রভাব হ্রাস করার সহজতম উপায় হ'ল অনবেকেমভিজিবল এবং অনব্যাকামআইভিজিবল কলব্যাকের উপর ভিত্তি করে একটি সিস্টেম ।

void OnBecameVisible()
{
    myComplexComponent.enabled = true;
}
void OnBecameInvisble()
{
    myComplexComponent.enabled = false;
}

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


1

এটিকে বাঁচিয়ে রাখতে এবং এর অবস্থান এবং অন্যান্য বৈশিষ্ট্যগুলি আপডেট করতে এটি মেমরি লাগে।

এটি দৃশ্যমান না হওয়ায় এটি কম্পিউটার / মোবাইল গ্রাফিক সংস্থান গ্রহণ করে না।

সুতরাং হ্যাঁ, এটি মেমরির সংস্থানগুলি গ্রাস করে তবে গ্রাফিক্স সংস্থানগুলি দৃশ্যমান গেম অবজেক্টের মতো নয়।


অনেক ধন্যবাদ. এটি আমি খুব সন্ধান করেছি direct
গিসিপি_453

0

প্রোগ্রামে থাকা যে কোনও কিছু সংস্থান গ্রহণ করে; আপনি কি মনে করেন না যে প্রোগ্রামগুলি কেবল আশা এবং স্বপ্ন নিয়ে চলে, তাই না?

গেমের অবজেক্টটি কতটা সংস্থান গ্রহণ করে তা প্রশ্ন হওয়া উচিত এবং এর শেষে আমি মনে করি এটি একটি খুব শক্ত উত্তর: http://answers.unity3d.com/questions/280455/how-much-memory-a-gameobject- consume.html

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


আপনাকে অনেক ধন্যবাদ. সুতরাং গেমটি চলাকালীন আমার কি ক্যামেরা দৃষ্টি থেকে যায় এমন জিনিসগুলি ধ্বংস করা উচিত?
গিসিপি_453

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

@ কাতু, এটিও একটি বিষয়। ধন্যবাদ। যদি অবজেক্টটি একেবারে রেন্ডার করার প্রয়োজন না হয় তবে আমার এটিকে নষ্ট করা উচিত নয়।
গিসিপি_453

@ কাতু আমি এই প্রশ্নের উত্তর দিয়েছিলাম: "এই গেম অবজেক্টস (আমার দৃশ্যে অবজেক্টস যা ক্যামেরাতে দৃশ্যমান নয়) যখন কম্পিউটার চলছে তখন কম্পিউটার / মোবাইল সংস্থান গ্রহণ করবে?" এই উত্তরটি হ'ল: "হ্যাঁ। প্রোগ্রামে যে কোনও কিছু সংস্থান গ্রহণ করে"। এবং আমি দৃশ্যে খালি গেমের সামগ্রীর প্রভাবগুলি এবং সংস্থানগুলির ব্যয় ব্যাখ্যা করতে গিয়েছিলাম।
সত্য

2
@ গিসিপি_453 আপনার প্রশ্নের উত্তর দেওয়ার জন্য, দৃশ্যের গেম অবজেক্টগুলি আসলে কী করছে, কতবার তারা তৈরি / মুছে ফেলা হয় এবং অন্যান্য বিবেচনার উপর পুরোপুরি নির্ভর করে। কখন অনুকূলিত হওয়া উচিত তা জানা নিজের পক্ষে দক্ষতা, তবে চিন্তা করার মতো কিছু না হওয়া পর্যন্ত থাম্বের নিয়মটি এটি সম্পর্কে চিন্তা করা উচিত নয়। অতিরিক্ত গেমের সামগ্রীর ওভারহেড কোনও কিছুর কাছে নেই, তাই চিন্তা করবেন না। কিছু ক্ষেত্রে, আপনি ঘন ঘন বস্তু যুক্ত / মুছে ফেলতে থাকলে, অবজেক্ট পুলিং একটি জীবন রক্ষাকারী হতে পারে এবং অন্যান্য পরিস্থিতিতে আপনি অন্যান্য কৌশলও করতে পারেন। এটি সব কিছুর উপর নির্ভর করে এবং সমস্যাটি ঠিক কী।
সত্য
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.