- 最后登录
- 2013-9-29
- 注册时间
- 2012-8-20
- 阅读权限
- 90
- 积分
- 6371
- 纳金币
- 6372
- 精华
- 0
|
我从去年下半年开始了解虚拟3D行业,那时候知道关于虚拟现实,有N种技术解决方案,如cult3D, wirefusion, flash3D,unity3d,VRP,Webmax等等。这当中大多数是国外开发的,也有国内开发的,如vrp,webmax。我不知道要学习哪个平台。 我仅仅知道我必须要会3dmax软件制作三维模型。做得很不好,前后断断续续。后面阅读了《迎接互联网的明天》一书并伴随着unity3D在国内的流行,才下意识发现unity3D的强大之处。相比其他技术解决方案,似乎它们都是定位于解决虚拟现实,而unity3D的定位则是用于开发各种3D游戏。尤其是页游。unity3D本身作为一款游戏引擎,其强大的互动性不说,画面的逼真程度丝毫不亚于其他专业的虚拟技术解决方案。其对图像,三维网格,灯光,粒子效果等的可视化编辑处理,仿佛让人觉得,这不仅是一款游戏引擎,更是半个3d软件。3dmax中的建模,材质渲染,动画制作,粒子系统,布料系统。似乎除了建模与渲染,其他的功能都能在unity3D中出现身影。
为了独立制作一个unity3D产品,大致的流程及涉及的技术是:
一是:制作场景,利用3dmax等三维软件制作各种场景道具,人物等并加以渲染。主要以多边形建模为主,贴图中以法线贴图技术,UVW展开,烘焙贴图为核心,广泛应用带有alpha通道的图像,当然还有动画制作,需要掌握一定层次的ps与3D软件技术;
二是:增加互动性,通过脚本编程实现,从软件技术角度,unity3D是一个基于mono的游戏引擎,支持C#,Javascript,Boo三种编程语言。对于一个程序员,掌握一门技术,无非就是掌握其所用编程语言的语法以及该平台带给开发者的运行原理。unity3D给开发者的塑造了这样一个概念,即场景中的一切都是游戏对象,场景由游戏对象构成,游戏对象就像盒子一样,里面放了各种组件,每种组件都有自身的属性特点及功能作用,将一个刚体组件赋给一个游戏对象,这个游戏对象便具备了重力等物理特性,脚本也是组件。脚本主要用于实现交互性功能。简单地说,unity3D引擎给我们塑造了这样一个制作产品概念(官方技术文档也是这么说),我的游戏是由一个个场景构成,场景是由游戏对象构成,游戏对象就像一个容器,里面可以存放代表各种功能的组件(代表位置,大小,缩放的transform也是组件)。就像一个篮子里放了鸡蛋,鸭蛋,鹅蛋一样。这样就赋予了游戏对象各种功能,连最重要的交互也是由组件来完成,只不过这个组件比较特殊,它被称之为脚本。如果我们明白unity给我塑造的这样一个概念。接下来,我们只需要知道,场景中一个个独立的游戏对象(各自带有不同的组件),是如何成为一款生成的游戏或是虚拟现实作品,即就是运行机制。做过程序员的,都明白,我们编程无非就是掌握一门编程的语言以及该平台下的运行机制(当然如果你的作品交互性规则很复杂,你的编程设计水平就非常重要),当然,非程序员也没有关系,甚至我认为学习unity3D对于那些3D设计师来说,更有优势,因为unity3D的编程非常简单,只要掌握javascript或者C#语言,不需要有出色的编程能力,就能制作一款相当不错的产品。unity3D给我们塑造这样一个运行机制,unity3D对当前场景会不断重复地绘制帧画面,在每一帧中都会把场景中所有游戏对象在显卡上绘制一遍,同时在绘制是调用每个游戏对象中的所有脚本代码,主要的几个函数就是start(),LateUpdate(),Update(),Awake(),OnGUI()等,只要知道系统什么时候调用这些函数就可以,剩下就是在这些函数中调用我们写的函数。
所以,虽然在制作大型网游,模型设计与编程水平都很重要,但是如果是制作虚拟现实作品,我认为模型的真实度更为重要,而且虚拟现实作品往往交互性并没有游戏性强且复杂,这对于3D设计师来说,是一大好事。强烈建议,作3D的设计师往这方面拓展,相信你会有质的飞跃,更能在未来就业竞争中,拥有强大的竞争力。
以上是自已的学习感受,与大家分享一下!!!
|
|