In 2.5D you use 2D assets/rendering techniques to give the sensation of a 3D environment.
Now, with that definition, in the following potentially ambiguous scenario, some elaboration is required:
Game A
Using 3D graphics, GPU accelerated and all (the game objects are meshes, not images), with a fixed camera angle. Lets make it even worse, the projection is orthographic, the classical 63.43 degrees. The only way to notice at first glance that graphics aren't 2D is because 3DGC, except that you render them with extreme care, are easily differentiated from hand drawing sprites, not matter the projection used to render them. You may experiment with different render techniques, parameters, shaders, etc, and you will have a hard time trying to hide the fact that they are 3D meshes.
Game B
A port of Game A, but targeting platforms that are known to have hardware that does not handle 3D graphics very well or does not handle it at all. Then the port replaces meshes with sprites. It still uses 3D Bounding Boxes for collisions, for example, and objects have a position property with x,y and z values, as the game logic was mostly not touched or not touched at all, only the rendering code was altered.
As the sprites of Game B are renders of the 3D assets of Game A and, to make things more ambiguous, Game A doesn't do anything that requires complicated shaders, in 99% of all GPUs out there you cannot differentiate a frame from Game B of a frame from Game A.
In 2.5D, interaction between game objects are limited to the set of situations where the illusion of 3D cannot be compromised. To represent two characters hugging, for example, you will have to create a single image file with the two characters interacting, as trying to represent the hug action only using a single image per character would be too hard or impossible. Maybe you can come with a character body divided in parts and draw them in the correct order. In 3D this problem does not exists (there exists another, that is posing the two characters correctly so they do not penetrate in the mesh of the other character).
Now, to visualize this, imagine that Game A and B have a bug that in some situation allows the player character to pass through another game object, allowing us to differentiate between the 2.5D one and the 3D one easily.
Game B, 2.5D Render, sprites are ordered by the z value of its position vector. In this example positive z is down and negative z is up. z-axis and y-axis are parallel but z is scaled by a factor of 0.5 of y. So if the visible area is from 10y to -10y, in the same area we have from 20z to -20z. Objects with a greater z will be drawn latter, so they will be seen as being in front of objects with lower z. Shadow of player character looks weird because shadows are in a superior layer than the floor, but in an inferior layer that all the other objects, so the player character shadow never is on top of the cube.
খেলা এ, থ্রিডি রেন্ডার পিক্সেল নির্ভুলতা গভীরতার পরীক্ষার জন্য গভীরতা বাফার (জেড-বাফার নামেও পরিচিত) ব্যবহৃত হয়। সুতরাং, কোনও অবজেক্টের জন্য অন্যটিকে সম্পূর্ণরূপে বিভ্রান্ত করার দরকার নেই, এমনকি ত্রিভুজকে অন্যটিকে পুরোপুরি বিলোপ করার দরকার নেই, আমাদের পিক্সেল যথার্থ গভীরতার পরীক্ষা রয়েছে। আমরা যে কোনও উপায়ে গেমের জিনিসগুলিকে ঘোরাইতে পারি এবং তারা যখন ইন্টারঅ্যাক্ট করে তখনি বাস্তবসম্মত ফলাফল পেতে পারি।
রেজ্যুমে: 2.5 ডি তে একটি স্প্রাইট হয় সামনে বা অন্য স্প্রাইটের পিছনে থাকে। 3 ডি তে, একটি জাল ত্রিভুজ দ্বারা তৈরি করা হয়, তবে গভীরতার জন্য পরীক্ষা করার সময় ত্রিভুজটি ন্যূনতম একক নয়, আপনি পিক্সেল যথার্থতা পেতে পারেন। অবশ্যই, 2.5 ডি তে ক্যামেরার আবর্তন অসম্ভব কারণ একটি স্থির ক্যামেরা কোণের জন্য সম্পদ তৈরি করা হয়েছিল, 3 ডি-তে প্রাকৃতিক, যদি কোনও 3 ডি গেমের নকশায় ক্যামেরার কোণগুলি সীমাবদ্ধ করা হয় তবে এটি অন্য বিষয়।
3 ডি ওয়ার্ল্ডে থাকার সংবেদন দেওয়ার জন্য বিভিন্ন কৌশল রয়েছে যখন আপনি কেবল 2D গ্রাফিক্স রেন্ডার করতে পারেন, আমি কেবলমাত্র আমার একটি পরিত্যক্ত প্রকল্পের কিছু সম্পদ ব্যবহার করে একটি দ্রুত কারুকাজ করা উদাহরণ উপস্থাপন করেছি।
কেন আপনি সর্বদা 3 ডি ব্যবহার করবেন না এবং 2.5 ডি সম্পর্কে ভুলে যাবেন না?
ঠিক আছে, আমি বিকাশকারীরা কেন 2.5 ডি পদ্ধতির পছন্দ করতে পারে তার কয়েকটি উদাহরণে আমি ভাবতে পারি:
- হতে পারে তারা 3 ডি এপিআই (ডাইরেক্ট 3 ডি, ওপেনজিএল, অন্যরা রয়েছে) জানেন না বা পছন্দ করেন না।
- সম্ভবত লক্ষ্য প্ল্যাটফর্ম ভাল 3 ডি গ্রাফিক্স (পুরানো ডেস্কটপ কম্পিউটার, 2 ডি কনসোল) হ্যান্ডেল করে না।
- আপনার দল 3 ডি মডেলগুলি না করে আশ্চর্যজনক স্প্রিট করতে পারে।
আপনি 2.5 ডি ব্যবহার করে 3 ডি গ্রাফিক্সের ফলাফলগুলি কতটা অনুমান করতে পারেন?
একটি কার্য সম্পাদন এবং প্রোগ্রামিং জটিলতা দিগন্ত আছে। আপনি যখন দিগন্তের আনুমানিক হন তখন আপনি সন্দেহ করতে শুরু করেন যে আপনার প্রকল্পটি 2.5 ডি তে সত্যিই সম্ভব কিনা বা আপনাকে যদি পুরো 3D যেতে হয়। উদাহরণস্বরূপ, আপনি জেড-বাফারিংটি 2.5 ডি (তত্ত্ব অনুসারে) ব্যবহার করতে পারেন, তবে আপনি কী ভিডিও মেমোরি খরচ দিতে পারেন (অনলাইনে গ্রাফিক্স সহ পুরানো ডেস্কটপ কম্পিউটার, শক্তিশালী মোবাইল ডিভাইস নয়)? আপনি কি প্রতিটি স্প্রিটের জেড-মাস্কটি সংরক্ষণ করতে অতিরিক্ত চিত্র থাকার স্টোরেজ ব্যয়টি দিতে চান?
2.5 ডি এর ভাল প্রার্থীরা হ'ল আরপিজি গেমস, বালদুরের গেট সিরিজ বা আরটিএস মনে করেন, বয়স 2 এর সাম্রাজ্য 1 এবং 2 (এওই 3 সম্পূর্ণরূপে 3 ডি এবং সহজেই আলাদা করতে পারছে)।
দরকারী তথ্যসূত্র:
জেড-বাফারিং: http://en.wikedia.org/wiki/Z-buffering
অর্থোগ্রাফিক অনুমানগুলি: http://glasnost.itcarlow.ie/~powerk/ জেনারাল গ্রাফিকস নোটস / প্রজেকশন / অর্থোগ্রাফিকপ্রজেকশন html