什么是3D引擎

        通俗的来说,3D引擎就是一个能够在屏幕上显示3D图像的软件。为达到此目的,现代的3D引擎都是使用一套API通过驱动或者运行时来和硬件进行交互。一个3D引擎可能是一个游戏引擎的一部分,但是游戏引擎也可以不需要3D引擎。
  3D引擎使用的API较为底层,用来处理Vertex Buffers, Index Buffers, Shaders, Textures, Render Targets等;经过封装,3D引擎则提供了更高层次的API,用于处理Meshes, Bones, Effects, Textures等。3D引擎提供的API接口较为简单,用户不需要知道很多而只是选择什么需要渲染,选用哪个材质以及如何使用它们。例如,一个打湿的岩石需要进行凹凸纹理,并且要有反射效果。
  游戏引擎则是处在最高层次,它提供了一个游戏运行起来需要的所有的服务,如:3D引擎(在屏幕上渲染整个3D世界),声音模块(用来产生身临其境的声音效果),网络模块(用于网络游戏),输入模块(处理键盘、鼠标、手柄等),物理模块(保证3D世界中的物体表现得如同现实世界中的物体一样),人工智能模块(用来使得非玩家控制角色(NPC)表现得具有一定智能而不是傻傻的感觉)和一个可能的磁盘I/O模块(处理文件的加载和流)。
  3D引擎的任务只是在屏幕上渲染整个世界,随其架构的不同,它可能和磁盘I/O模块以不同的方式进行一定的交互。有些游戏引擎在游戏开始阶段将所有东西都加在进入内存,另外一些则将这些组织成流的形式。
  并不是所有的3D引擎都提供同样的服务,有一些设计非常简单,他们仅仅提供了一种方式用来在屏幕上显示一个物体,而将快速渲染的任务留给了用户,这些用户还需要处理RAM和CPU的使用。
  而这个不是我们所感兴趣的,对我们来说,一个3D引擎(或者其他软件也是类似)应该提供给用户最好的体验和最简单的使用方式。我发现,计算机科学中的一切都应该简单、快速、高效和优雅,就像K.I.S.S(Keep It Simple, Stupid)原则。
  这个系列的文章用于介绍3D引擎背后的技术。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值