সত্তা উপাদান উপাদান - কোনও সামগ্রীর ট্রান্সফর্মটি কীভাবে প্রয়োগ করা যায়?


11

আমার ইঞ্জিনের জন্য কোনও সত্তা-উপাদান সিস্টেম ডিজাইনের ক্ষেত্রে, আমি নির্দিষ্ট ধরণের উপাদান সংরক্ষণ এবং পুনরুদ্ধারের পথে কিছুটা ফাঁকে এসেছি।

প্রথমে, আমি এই প্রশ্নটি ব্যবহার করতে যাচ্ছি তার একটি পরিভাষাটি পরিষ্কার করতে দিন:

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

প্রতিটি সিস্টেমের তার উপাদানগুলির একটি (আইডি-ম্যাপযুক্ত) অ্যারের মালিক (উদাহরণস্বরূপ পদার্থবিজ্ঞান-> পদার্থবিজ্ঞান কম্পোনেন্ট, এআই-> এআইসি কম্পোনেন্ট, রেন্ডারিং-> রেন্ডারিং কম্পোনেন্ট) যাতে এটি ডেটার উপর দক্ষতার সাথে পুনরাবৃত্তি করতে পারে।

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

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

এই সমস্যাটি সমাধান করার কোনও সঠিক উপায় আছে কি? রূপান্তর এমনকি একটি উপাদান হতে হবে?



আমি এই সাইটে এই ধরণের প্রশ্নগুলি আরও দেখতে চাই। +1
এস তারেক Çতীন

সমস্ত উপাদান কেবল গ্লোবাল ভেরিয়েবল হিসাবে সংরক্ষণ করুন
মাইলস রাউট

উত্তর:


2

এটি বেশ বিস্তৃত প্রশ্ন, যার উত্তর, দৃ architect়ভাবে আপনার স্থাপত্যের উপর নির্ভর করে। তবে, আমি আপনাকে একটি সাধারণ উত্তর দেওয়ার চেষ্টা করব।

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

আপনি যদি পরবর্তী সমাধানটি চয়ন করেন তবে রূপান্তরে আগ্রহী প্রতিটি সিস্টেমের যেখানেই ট্রান্সফর্ম অবজেক্টটি সঞ্চিত আছে সেখানে অ্যাক্সেসের প্রয়োজন হবে।

আপনি যদি পূর্বটি চয়ন করেন, তবে প্রতিটি সিস্টেমের যা যা করা দরকার তা হ'ল সত্তাকে অ্যাক্সেস করতে হবে এবং রূপান্তরটির জন্য অনুরোধ করবে।

পূর্ববর্তী ক্ষেত্রে, সমস্যাটি হয়ে ওঠে যে কীভাবে ওওপি বিধিগুলি ভঙ্গ না করে প্রতিটি সিস্টেমে রূপান্তর করার জন্য স্টোরেজে অ্যাক্সেস দেওয়া যায়, যদি আপনি এই জাতীয় বিষয়ে যত্নবান হন।

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

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

এ সম্পর্কিত আরও তথ্যের জন্য এই ইসিএস ওভারভিউটি একবার দেখুন।

দিনের শেষে, আপনার পক্ষে কোনটি আরও গুরুত্বপূর্ণ: এটি নির্ধারণ করা সহজ বিকাশ, বা কর্মক্ষমতা।

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


আপনার পরামর্শের জন্য ধন্যবাদ। যদিও আমার একটি প্রশ্ন রয়েছে: এআই সিস্টেমটির কেন কোনও বস্তুর অবস্থানের প্রয়োজন হবে না?
ক্রাইফিস 15

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

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

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

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