দ্বিগুণ কাছাকাছি কোন বস্তু দ্বিগুণ হিসাবে উপস্থিত হয়?


16

সুতরাং আমি একটি 2 ডি গেম তৈরি করার কথা ভাবছিলাম যেখানে আপনি যে স্তরটিতে আছেন তা পরিবর্তন করে আপনি জেড-অক্ষের সাথেও যেতে পারেন। গভীরতার উপর নির্ভর করে আমি আমার 2 ডি স্প্রিটকে স্কেল করতে চাই।

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

এখন, নিজেই এটি পরীক্ষা করে আমি জানি যে বাস্তব বিশ্বের ক্ষেত্রে নিয়মটি প্রযোজ্য নয়;) তবে এমন কিছু ধ্রুবক রয়েছে যা বাস্তব বিশ্বের গণনায় দৃষ্টিভঙ্গি বা কোনও কিছুর জন্য ব্যবহৃত হয়? নাকি কোনও সূত্র?

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

TL; ড:

"একটি বস্তু দ্বিগুণ কাছাকাছি, দ্বিগুণ বড় হিসাবে উপস্থিত হয়" এটি বাস্তব বিশ্বে সত্য নয়। তবে কোন ধ্রুবক বা সূত্রটি সঠিক?


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

আমি ভাবছি কেন প্রাকৃতিক লগারিদম সম্পর্কে কেউ কিছু উল্লেখ করেনি ...
চাদ হ্যারিসন

4
কেন এটি সত্য নয়? আমি মনে করি এটি সত্য।
ইভান ককির

প্রাকৃতিক লগারিদমগুলির এই প্রশ্নটির সাথে কী সম্পর্ক রয়েছে?
নাথান রিড

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

উত্তর:


19

সাধারণত আপনার দৃষ্টিভঙ্গির উপর নির্ভর করে এটি সত্য এবং এটি কোন দিকে চলে গেছে সেই সাথে দেখার কোণটি।

বস্তুর জন্য দৃষ্টিভঙ্গির উদাহরণ

প্রথম ক্যামেরা ভিউতে কীভাবে দ্রষ্টব্য, যেমন রেড ব্লকটি ক্যামেরার দৃশ্যের সাথে লম্ব হয়, নিখুঁত 1: 2 অনুপাতের মধ্যে বস্তুটি দ্বিগুণ বড় বলে মনে হয় (সরানো হওয়ার পরে এটি বিন্দুটির প্রান্তকে আঘাত করে এমন তীরটি নোট করুন দ্বিগুণ কাছাকাছি)

দ্বিতীয়টি হ'ল একই আকারের ব্লকটি 45 ডিগ্রীতে ঘোরে। এটি ঘোরানো হিসাবে, নীচের প্রান্তটি শীর্ষ প্রান্ত হিসাবে ক্যামেরা থেকে একই দূরত্বে আর থাকবে না, সুতরাং এটি 1: 2 অনুপাতের সাথে সঠিকভাবে স্কেল করে না তবে এটি বাস্তবে দ্বিগুণ হয়ে থাকে (এটি যেমন রয়েছে তেমন কাছাকাছি নীল ব্লকের মতোই আরও দূরে নীল ব্লকের একই কোণ)

উপসংহারে এটির অর্থ আসলে আপনার বন্ধুটি সঠিক ছিল এবং আপনার সামগ্রীর জন্য 1: 1 অনুপাত ("দ্বিগুণ কাছের বস্তুগুলি, দ্বিগুণ বড় আকারের প্রদর্শিত হবে" ") একটি ভাল পছন্দ।



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

@ ম্যাসন হুইলারের - বাছাই করা হয়েছে: পি
টম 'ব্লু' পিডক্ক

8

দ্বিগুণ কাছের কোনও বস্তু দ্বিগুণ হিসাবে উপস্থিত হয়। এটি থ্যালসের উপপাদ্যের একটি পরিণতি এবং এটি বাস্তব বিশ্বে সত্য।

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


দুর্দান্ত রেফারেন্স! আমি অবশ্যই থ্যালিজ থিওরেম চেক আউট করব এবং গ্রাফিক্স পাইপলাইন আরও ভাল করে বোঝার চেষ্টা করব।
বেরি

7

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


2

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

প্রথমত, আপনার বুঝতে হবে যে 3 ডি অবজেক্ট কীভাবে রেন্ডার করা হয়। যদিও একটি ক্যামেরা একক পয়েন্টে রূপান্তরিত করে, সেখানে একটি অদৃশ্য বিমান রয়েছে যা স্ক্রিন হিসাবে কাজ করে যাতে বস্তুগুলি আঁকতে পারে। আপনি কেবল পর্দা সম্পর্কে জানতে হবে তা ক্যামেরা থেকে কত দূরে।

এখানে কীভাবে কোনও বস্তু দুটি পৃথক দূরত্বে ক্যামেরায় রেন্ডার করা হয় তার একটি চিত্র রয়েছে।

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

কিছু বেসিক ট্রিগার গণনা আপনাকে নিম্নলিখিত সূত্রের দিকে নিয়ে যাবে:

f(d, v) = v/(v+d)
* Where f is the size ratio to the original sprite aka size factor
    and v is the distance to the near clipping plane (trial and error value)
    and d is the distance from the near clipping plane to the object

উদাহরণ:

Assuming you have a sprite that is 2.5x1.8 units in size and 10 units away 
   from the camera, and that the near clipping plane is 5 units from the camera.

sizeFactor = 5/(5+10) = 0.3

renderHeight = actualHeight * sizeFactor = 1.8 * 0.3 = 0.54
renderWidth  = actualWidth * sizeFactor = 2.5 * 0.3 = 0.75

আমি এটি দিয়ে শুরু করার পরামর্শ দেব v=5এবং তারপরে এটি কীভাবে দেখাচ্ছে তার ভিত্তিতে সেখান থেকে সামঞ্জস্য করব। আমি একসাথে একটি ফিডাল ফেলে দিতে পারি যা আপনাকে রিয়েলটাইমের পরিবর্তনগুলি দেখতে দেয়।

টি এল; ডিআর

The change in height or width should be multiplied by the following factor:

sizeFactor = v/(v+d)

Where v = Some number greater than 0 that never changes (try 1 thru 5)
  and d = the distance from the camera

So an object that is 2.5 units tall would be rendered at 2.5*sizeFactor units tall.

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

ডেমো!


হ্যাঁ আমি আসলে একটি অর্থোগ্রাফিক দর্শনকে লক্ষ্য করছি। যে খেলাটি থেকে আমি আমার বর্তমান অনুপ্রেরণাটি "ধার" করছি তা হ'ল রায়ম্যান অরিজিন্স। গেমের কয়েকটি বিভাগে আপনি ফুলের উপর ঝাঁপিয়ে পড়তে পারেন, এবং তারপরে আপনি অন্য একটি গভীরতায় অন্য গভীরতায় বাউন্স করবেন। তারপরে ক্যামেরাটি জোর করে বা সেই গভীরতায় কর্সপন্ডিগ আউট করে। উদাহরণগুলি 4:50 এবং 5:00 এ এই ভিডিওতে দেখা যাবে ।
বেরি

তদ্ব্যতীত, দুর্দান্ত উত্তর! তবে যেহেতু এই নিয়মটি "দ্বিগুণ কাছাকাছি, দ্বিগুণ বড়" প্রয়োগ যথেষ্ট হয়েছে, তাই আমি নীলির উত্তরকে সেরা হিসাবে বেছে নিয়েছি।
বেরি

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

সম্পাদনা: আমি আমার আগের মন্তব্যে ভুল করেছিলাম। "দ্বিগুণ কাছাকাছি, দ্বিগুণ হিসাবে বড়" সঠিক যখন আইটেমগুলি একে অপরের সাথে ক্যামেরা থেকে তার দূরত্বের বিষয়ে মোটামুটি কাছে থাকে।
জিম বাক

এখানে আমি একটি দ্রুত ডেমো একসাথে রেখেছি, সরানোর জন্য মাউস এবং গভীরতা পরিবর্তন করতে স্ক্রোল হুইলটি ব্যবহার করুন।
জিম বাক

0

এই আবৃত করা হয়নি এবং আমি এই উপকারী হতে পারে: এটা উল্লেখ করা উচিত যখন আপনি অর্ধেক দূরত্ব, উভয় X এবং Y মাত্রা মাপ দ্বিগুন হবে চতুর্গুণ পরী মোট এলাকা। এই কারণ:

Area = X * Y

জুম ইন করার পরে:

NewArea = (x*2) * (y*2)

এটি আপনাকে এমন ধারণা দেয় যে জুমিং এফেক্টটি খুব দ্রুত ঘটছে বা খুব তীব্র। উপরের সূত্রে 2 টি পরিবর্তনের পরিবর্তে 1.5 বা 1.33 এর মতো একটি ভাসমান মানতে আপনি ফ্যাক্টরটি সামঞ্জস্য করতে পারেন।

বিকল্পভাবে, আমি যা করেছি তা হ'ল ক্যামেরা ট্রান্সলেশন (এক্স এবং ওয়াই) এর সাথে বাইট ভ্যালুতে আপনার টাইলগুলির ক্যামেরা গভীরতা (দূরত্ব) সংরক্ষণ করুন এবং তারপরে অনুমিত টাইলের আকার গণনা করুন:

XTileSize = (255 / CameraZ) * DefaultTileWidth
YTileSize = (255 / CameraZ) * DefaultTileHeight

নোট করুন যে CameraZকঠোরভাবে 1-255 এর মধ্যে হওয়া উচিত, এবং সেই সীমাবদ্ধতা ভবিষ্যতে আপনার পক্ষে কোনও উপকার বা নিষিদ্ধ হতে পারে।

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