我有一个 Blender .obj 文件,它被上传到一个 tomcat 网络服务器。
现在我需要将此文件转换并存储到 Oracle 数据库中。
转换后的数据应该可以被 Android OpenGL Viewer 使用(我没有实现那个 Android 应用程序,所以我不能改变它获取数据的方式),它以某种方式从数据库中获取数据。
我的问题是:如何将 .obj 文件转换为 OpenGL 查看器可以理解的内容并将其存储到数据库中?
好吧,只需将 OBJ 文件转储到可以表示顶点、面和面列表的 SQL 模式中。例如
CREATE TABLE vertices (object_ID KEY, vert_ID INTEGER, x DOUBLE, y DOUBLE, z DOUBLE);
CREATE TABLE faces(object_ID KEY, vertex_A INTEGER, vertex_B INTEGER, vertex_C INTEGER);
然后将您的对象加载到OpenGL
SELECT x,y,z FROM vertices WHERE objectID = ... ORDER BY vert_ID;
并将结果放入顶点数组。面部相似
SELECT vertex_A, vertex_B, vertex_C FROM faces WHERE objectID = ...;
并使用结果数组进行调用glDrawElements
如果你不知道如何使用顶点数组和glDrawElements,那么首先学习它们的使用,这样你就知道如何使用SQL转储的结果进行绘图。
我之前推荐过 Pixel Nerve 的ObjImport来完成这种工作。请注意,这个工具实际上只是一个解析,你仍然需要编写大量代码才能让它做一些有用的事情。
还有另一个我没有使用过的选项,但我听说了一些好消息——JMonkeyEngine实际上与 OpenGL 集成。你仍然需要编写相当多的代码,但可以这么说,它更接近目标。