Android 3D引擎能为我做什么?
我对开发一个android应用程序感兴趣,它将显示一个类似谷歌地球的地球仪Android 3D引擎能为我做什么?,android,graphics,opengl-es,3d,Android,Graphics,Opengl Es,3d,我对开发一个android应用程序感兴趣,它将显示一个类似谷歌地球的地球仪 我从未使用过opengl,也没有任何图形编程的经验,所以我来这里学习一些基础知识。现在,我知道有些东西像Unity或Ogre有助于简化图形,但与仅使用opengl api渲染图形相比,使用这些引擎究竟能带来什么好处呢?为什么要使用像Ogre这样的引擎而不是直接使用opengl?创建图形应用程序要比创建3D库多得多 像OpenGL这样的库映射图形硬件的硬件特定功能(以及模拟软件中不支持的功能),但这只是开始 首先,您需要管
我从未使用过opengl,也没有任何图形编程的经验,所以我来这里学习一些基础知识。现在,我知道有些东西像Unity或Ogre有助于简化图形,但与仅使用opengl api渲染图形相比,使用这些引擎究竟能带来什么好处呢?为什么要使用像Ogre这样的引擎而不是直接使用opengl?创建图形应用程序要比创建3D库多得多 像OpenGL这样的库映射图形硬件的硬件特定功能(以及模拟软件中不支持的功能),但这只是开始 首先,您需要管理您的对象。您需要找到一种方法将它们从3D软件(Maya、Max、Blender)转换为您希望在应用程序中存储它们的任何数据格式,并且您需要使用控制结构以某种方式将它们存储在应用程序中 您需要对它们进行变换、设置动画和蒙皮。您需要一个场景管理来轻松剔除平截体外部的对象。你需要一个照相机,把它移开 你需要处理照明,光源。您需要处理渲染过程,例如灯光过程、阴影过程、反射过程 然后需要一些好的着色器,一些着色器支持漫反射贴图、法线贴图、镜面反射贴图、环境光遮挡贴图、灯光贴图等功能,这些着色器支持点光源、平行光和聚光灯 你需要管理纹理,将它们流进流出,并将它们应用到你的模型中 所以。。。这些是3D引擎包为您做的一些事情。还有更多
编辑:也就是说,如果你只想显示一个地球仪,那么使用一个成熟的引擎就太过分了。为此,您需要类似OpenGL的东西,创建一个球体模型(=简单球体),对其应用纹理,设置一两盏灯,然后进行渲染。3D引擎将在许多方面帮助您:
- 它们通常带有预定义的数据格式,因此您不必创建自己的数据格式。有时,它们还附带具有良好界面的工具,帮助您创建三维对象。或者,他们可以加载或转换流行的文件格式,以便您可以使用流行的工具来创建3D
- 它们附带渲染循环和事件循环,因此您不必实现这些循环。这通常比自己做容易
- 他们已经编写了算法来去除隐藏的表面
- 它们具有高级功能,可以轻松地对它们提供的对象执行复杂的操作