2D和3D间有哪些不同点呢? 

让我们来比较一下,共同找出它俩之间的不同点. 

对玩家来说,2D技术和3D技术只是显示数据的方式而已,玩家都是通过二

维的平面显示器来观看它们.对制作者来说,二者的不同之处,首先就在于

数据的存储方式.2D技术中为了显示图像,主流的做法是把预先画好的图

像存放到文件中去.并在游戏中调用出来.3D技术把游戏世界中的每个物

体看作一个个立体的对象,由若干个几何多边体构成.为了显示对象,你在

文件中存储的是对对象的描述语句:对象由哪几个多边体组成,它们之间

的位置关系,以及在哪个部位使用哪个贴图等等描述性内容.在显示时,还

得通过程序对这些语句的解释来实时地合成一个物体.通过若干个立体几

何和平面几何公式的实时计算,玩家在平面的显示器上还能以任意的角度

来观看3D物体.如果构成物体的多边形越多,那么合成时需要的计算量就

越大.贴图是一些很小的图像文件,也被称为"材质".如果说多边体是物体

的骨架,那么贴图就是物体的皮肤. 

如果你在2D游戏中需要一个角色不同角度的画面表现,例如表现它在四个

方向上行走时的动作,那么你就必须预先画好起码四幅图像,游戏运行时,

你就必须分别从不同的文件中调用行走时的图像,来表现行走动作.如果

你想让角色能在8个方向上行走,那么工作量就会增加一倍.在制作一些动

画时,工作量更是急剧地增长.这时,使用3D技术就能省下不少的时间. 

3D技术的优点
3D技术在三个重要的方面显得非常灵活.首先就是表现你眼前的世界.3D 游戏能够让玩家以任意的角度来观看世界,并让他们在其中以不同的步伐 移动.显然,通过2D技术是实现不了的,因为表现的结果有上万种可能性. 在Quake中,由于使用3D技术,玩家就能够自由地移动,以任意角度观察.
3D技术在动画制作方面有独特的优势.这个方面也已经被QUAKE证明了。 如果用2D技术来实现,那么在视角的转换上就会非常受限,而且存储这些 动画会超过所能承受的最大空间.3D动画能够很轻松地越过这些困难.你 先给3D对象定义变形和运动的规律,实际运行时,程序就会让3D对象按照 预定的规律来运动,形成3D动画.但是在现有的游戏中,还没有很好地发 挥这一优势.
第三个方面,3D对象易于修改,因为它本身是由若干个多边体,象搭积木似 地组成的.这些多边体可以象橡皮泥一样任意地揉捏,来符合最终的要求. 而2D图像是由手工绘制而成,修改非常不便,一些大的改动往往导致已有 的工作成果作废,需要重新绘制. 2D技术的优点
第一点,就是2D的图像能够画得很精致,把一些细节完美地表现出来.3D虽 然也能通过增加多边体来更细致地表现对象,但与2D图像所能达到的最高 水准还是相差一段距离.如果你的游戏不需要诸如旋转视角等功能的话, 那么采用2D技术会给你的玩家带来更好的视觉享受.
2D技术的另一个优点就是在屏幕上显示和处理都很快.因为所有的图像都 已经预先处理好了,你所要做的只是把它们从文件中调出来,显示到屏幕 上.显示卡做这些工作是绰绰有余的.在实时的游戏中,你能够轻易地获得 每秒三十帧的显示速度. 这就为处理器节省了大量的时间,使它有充裕的 时间来做显示外的其它工作.例如对即时战略游戏来说,电脑方的人工智 能就需要较多的处理器时间去进行计算.现在, 3D加速卡的速度已经变 得越来越快了,但如果要模拟一个真正的3D世界,这点速度还远远不够.所 以至少在未来的几年内,2D图像的显示速度还将占有较大的优势。
对2D图像来说,做一个显示引擎很容易。对3D图像来说,制做显示引擎就 困难得多了.但随着技术的普及,这一优势会渐渐消失.
另外还有一个隐性的优势.3D游戏一般具有较高的自由度,对有经验的玩 家来说是没问题的.但对一些新手来说,自由度越高就感到越难以控制.2D 游戏一般具有较少的自由度,新手容易在设计者的引导下一步步地进行下 去. 你,作为游戏设计者,需要决定采用哪种技术.如果你的游戏需要比较自由 的空间, 倾向于动作化,并且有强大的技术力量,那么3D引擎将是你最好 的选择.如果你想制作具有精美图像的游戏,不需要太高的自由度,那么2D 技术是最好的选择.事实上,3D 技术与2D技术并不存在什么孰优孰劣的 问题,只存在着哪种技术能更好地为你服务的问题.很明显,现在2D游戏仍 有着大量的市场需求,你并不需要为2D的未来而担心. 2D
2D图形游戏最显著的特征是所有图形元素是以平面图片的形式制作的, 地图无论是拼接的还是整图制作,其地表、建筑都是单张的地图元素构 成的。而动画则是以一张一帧的形式预先存在的。这些图形元素最终都 会以复杂的联系方式在游戏中进行调用而实现游戏世界中丰富的内容。
另一方面是2D游戏的显示技术,传统的2D游戏很少需要调用显卡加速, 大部分的2D图形元素都是通过CPU进行。因此一款2D游戏的图形符合要看 CPU的负载能力,知道这点很重要,例如现在的二级城市网吧里普遍CPU 配置高,但显卡配置低,因此即使是3D游戏纵横的现在,我们制作一款 画面丰富、风格独特的2D游戏也是相当有市场的。近两年,有人也对2D 游戏使用了显卡加速,但显卡技术注定2D图形是通过3D技术进行加速的 ,即单张的图形或动画还是以D3D计算帖图的形式进行,这样通常可以保 证了2D图形运行可以达到很高的速度,但是这类技术也不是很全面,瓶 颈主要在显存帖图数量的限制和3D显卡技术标准不一,导致个别显卡运 行不了。像素点阵技术也是较早期的2D技术。
游戏范例:《幻灵游侠》
3D
3D技术把游戏世界中的每个物体看作一个个立体的对象,由若干个几何 多边体构成。为了显示对象,你在文件中存储的是对对象的描述语句: 对象由哪几个多边体组成,它们之间的位置关系,以及在哪个部位使用 哪个贴图等等描述性内容。在显示时,还得通过程序对这些语句的解释 来实时地合成一个物体。通过若干个立体几何和平面几何公式的实时计 算,玩家在平面的显示器上还能以任意的角度来观看3D物体。如果构成 物体的多边形越多,那么合成时需要的计算量就越大。贴图是一些很小 的图像文件,也被称为"材质"。如果说多边体是物体的骨架,那么贴图 就是物体的皮肤。即使仅仅是图形显示上的变化,在3D引擎下世界构成 的任何事情也要以3D世界观来对待。
在3D世界观中需要了解三件事:3D的特点
●物体是真实占有空间的
●任何人的视点(摄像机)是可以任意移动并改变角度的
●要了解光的运用
游戏范例:《古墓丽影》《天堂2》
2D与3D的区别
2D与3D最大的区别在于2D的平面与3D的立体。所谓2D、与3D之区别分为 两部分,第一部分就是图形显示技术上的区别。第二部分就是游戏在进 行过程中所有的游戏进行动作都是在一个平面进行的还是一个三维空间 进行的?例如:即便《MU》采用了3D图形显示引擎,但其玩法仍然是纯 以鼠标点击地面(平面)进行的,实质上他还是个2D游戏;而类似《天 堂2》、《微软模拟飞行》这样的游戏,则是标准的、真正的3D游戏。在 这里,我们只描述2D与3D在图像上的区别。2D平面,3D立体,是2D与3D 的最基本区分特点。
2.5D
同时具备了2D与3D游戏特点的游戏我们称之为2.5D游戏。一种是3D的地 图,2D的精灵(角色、npc等),例如《ro仙境传说》;一种是2D地图, 3D精灵,例如《征服》。但在地图设计制作上,目前还没有2.5D之说, 至多为伪3D。以《最终幻想7》(FF7或太空战士七)为例,该作的地图 制作采用了3D与伪3D技术的结合。在世界地图上行动时,使用的是真3D 技术,所以该地图具备了3D技术的几大特点:物体立体占有空间,视角 可变换,光照会随视角移动而变化,而其中最显而易见的便是视角的变 换。而在FF7的场景地图中,在同一场景中,其视角是不可变的。其实 FF7场景地图所采用的是3D建模、上材质,再进行2D渲染整合的伪3D的技 术,这种技术也可称为“2D渲染”技术。伪3D的好处在于比较容易将制 作物的质感给表现出来,而纯2D技术要做到这一点就需要特别专业的技 术了。另外,在视角不可变的场景地图中,FF7却实现了精灵(角色、 npc)的近大远小透视效果。这种效果就是指在有透视(纵伸感)的游戏 场景中,移动的角色会随着场景的向前景或背景方延伸而显得渐大或渐 小。这是需要配合程序方面来进行制作的,所以在程序方面会有一定的 限制

2D游戏与3D游戏的区别 原文:https://zhidao.baidu.com/question/588490865.html的更多相关文章

  1. 2d游戏和 3d游戏的区别

    2D游戏和3D游戏的主要区别 一.总结 一句话总结:2D中的单位就是贴图,3D中的单位还有高 1. 3D 和 2D 游戏的区别主要体现在呈现画面和文件体积上: 2. 借助 3D 引擎可以提升 2D 游 ...

  2. 2D转换与3D转换的区别

    2D与3D的区别——2D 转换元素能够改变元素 x 和 y 轴.3D 转换元素还能改变其 Z 轴.

  3. 转载:[转]如何学好3D游戏引擎编程

      [转]如何学好3D游戏引擎编程 Albert 本帖被 gamengines 从 游戏引擎(Game Engine) 此文为转载,但是值得一看. 此篇文章献给那些为了游戏编程不怕困难的热血青年,它的 ...

  4. Unity3D 之3D游戏SD快打 3D游戏基础入门开发全(1)

    这里记录一个U3D游戏,3D游戏的基本开发. 导入素材 1.首先导入需要的素材.因为FBX格式的素材是通用的,所以尽量导入这样的资源使用 导入后的结果: 然后对人形骨骼进行设置. 看哪里没有映射到骨骼 ...

  5. CSS3常用属性(边框、背景、文本效果、2D转换、3D转换、过渡、有过渡效果大图轮播、动画)

    CSS3边框: 1.CSS3圆角:border-radius  属性--创建边框线的圆角 <body style="font-size:24px; color:#60F;"& ...

  6. 3D游戏编程大师技巧──2D引擎的编译问题

    接上一篇文章,这里将介绍2D引擎的编译,从现在开始才真正进入<3D游戏编程大师技巧>的学习.本书的第一.二章只是简介了游戏编程和windows编程,从第三章开始才是介绍<window ...

  7. 介绍用C#和VS2015开发基于Unity架构的2D、3D游戏的技术

    [Unity]13.3 Realtime GI示例 摘要: 分类:Unity.C#.VS2015 创建日期:2016-04-19 一.简介 使用简单示例而不是使用实际示例的好处是能让你快速理解光照贴图 ...

  8. 棒!使用.NET Core构建3D游戏引擎

    原文地址:https://mellinoe.wordpress.com/2017/01/18/net-core-game-engine/ 作者:ERIC MELLINO 翻译:杨晓东(Savorboa ...

  9. 3D游戏编程大师技巧──环境搭建

    刚开微博,想借助这个平台与大家交流,写下自己的学习记录,希望得到大家的批评指正. 好了,进入主题.这段时间对游戏编程很感兴趣,于是在网友的推荐下开始学习<3D游戏编程大师技巧>这本书.今天 ...

随机推荐

  1. cin.get();cin.clear();cin.sync()

    先看代码: #include<iostream> using namespace std; int main(){ int c,x; cout<<"输入大小" ...

  2. Ubuntu 18.04安装中文输入法

    reference: https://blog.csdn.net/fx_yzjy101/article/details/80243710 https://pinyin.sogou.com/linux/ ...

  3. 释放jQuery 的$ 的使用权

    1.释放操作必须在编写其他jquery 代码之前编写,释放之后就不能使用$,改为jQuery . jQuery.noConflict();   2.也可以自定义访问符号   var nb = jQue ...

  4. php 跨域请求

    执行要在跨域请求的服务器端对应的代码上增加下面的代码 <?php namespace Admin\Controller; // 指定允许跨域访问 header('Access-Control-A ...

  5. SharePoint Framework 在web部件中使用第三方样式 - 将第三方样式打到包中

    博客地址:http://blog.csdn.net/FoxDave 有许多第三方库可以帮助我们构建丰富的SharePoint Framework客户端web部件.并且这些JavaScript脚本常常包 ...

  6. cocos大量对象使用动作注意事项

    ,,} for i,v in ipairs(area) do if gameResult == v then ]) do local scale_1 = cc.ScaleTo:create(0.05, ...

  7. http协议发送post请求

    package post; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamR ...

  8. java实现截图功能

    package Jietu; import java.awt.Dimension; import java.awt.Rectangle; import java.awt.Robot; import j ...

  9. JAVA 集合 按照某个字段(依据一定条件)进行分组

    由于数据不能够在本地化实现, 无法通过sql语句得到对应的结果,小编只好在业务层处理.通过调用接口得到集合,拿到集合后,通过年来分组,以此来达到对应的Map集合... 在这里小编给大家提供一个封装了一 ...

  10. 我与java的故事

    前奏 2012年开始接触java,当时还是大二因为博客园的原因我选择了java这门语言进行深入的学习.一开始看的是<动力节点>的教学视频,请原谅我已经忘记那个讲师叫什么名字.但是的项目叫E ...