我有兴趣开发一个Android应用程序,它将显示某种像Google Earth这样的地球。
我从未使用过opengl或者有图形编程的经验,所以我在这里学习一些基础知识。现在,我知道有一些像Unity或Ogre这样的东西可以帮助促进图形,但是我使用这些引擎获得了什么,而不是仅仅使用opengl api渲染图形?为什么你使用像Ogre这样的引擎而不是直接使用opengl?
答案 0 :(得分:3)
创建图形应用程序远不仅仅是3D库。
OpenGL等库可以映射图形硬件的硬件特定功能(以及模拟软件中不支持的功能),但这只是一个开始。
首先,您需要管理对象。您需要找到一种方法将它们从您的3D软件(Maya,Max,Blender)转换为您希望将它们存储在应用程序中的任何数据格式,并且您需要使用控制结构以某种方式将它们存储在您的应用程序中。
你需要对它们进行转换,为它们制作动画,对它们进行修饰。您需要一个场景管理来轻松剔除视锥体外的对象。你需要一个相机并移动它。
您需要处理照明,光源。你需要处理渲染过程,如光通过,阴影过程,反射过程。
然后你需要一些很好的着色器,其中一些支持漫反射贴图,法线贴图,高光贴图,环境遮挡贴图,支持点光源,定向灯,聚光灯等光线贴图等功能。
您需要管理纹理,将它们输入和输出并将它们应用到模型中。
所以......这些是3D引擎包为你做的一些事情。还有更多。
编辑:那就是说,如果你想要的只是显示一个地球仪,那么使用一个成熟的引擎是过度的。为此,你需要像OpenGL这样的东西,创建一个地球模型(=一个简单的球体),对它应用一个纹理,设置一两个光,然后渲染它。
答案 1 :(得分:0)
3D引擎可以帮助您完成许多事情: