原文如下:obj2opengl: convert obj 3D models to arrays compatible with iPhone OpenGL ES

obj2opengl在GitHub中的主页:https://github.com/HBehrens/obj2opengl

终于找到一个iPhone OpenGL ES转换和加载OBJ 3D模型的好工具了,感谢作者

Heiko Behrens

原文翻译如下:

任何时候你想在iPhone应用程序或其他任何OpenGL工程中使用如Blender,3ds Max 或Cinema 4D等软件制作的3D对象模型,都需要让你的程序去访问这些制作好的数据文件。要达到这个效果,你可以加载并解析本地保存的模型文件,或者干脆自己在内存中创建一个你想要表现的模型。

OBJ2OPENGL是一个将模型文件转换成C/C++头文件的转换器,转换后的头文件中包含存储面的顶点,法线,纹理坐标的简单的浮点型数组。

OBJ2OPENGL是一个将 Wavefront OBJ 3D模型文件转换成OpenGL ES可以使用的C/C++头文件的Perl脚本。转换后的头文件和Objective-C以及iPhone SDK库是兼容的。脚本的思路和代码都是基于Margaret Geroch的,他允许我增强并重新发布这个版本。它现在支持纹理映射和存储法线(而不是重新计算)。我已经改变了产生的数组结构以使用glDrawArrays而不是glDrawElements。这对纹理和法线是非常有好处的。这个版本包含了几个可选的命令行工具,用来更好的控制它的行为(如缩放和平移原点,设置对象和输出文件名等)。

你可以简单的做一个默认的转换操作:

./obj2opengl.pl banana.obj

要包含转换后的对象你必须这么做:

// include generated arrays
#import "banana.h" // set input data to arrays
glVertexPointer(3, GL_FLOAT, 0, bananaVerts);
glNormalPointer(GL_FLOAT, 0, bananaNormals);
glTexCoordPointer(2, GL_FLOAT, 0, bananaTexCoords); // draw data
glDrawArrays(GL_TRIANGLES, 0, bananaNumVerts);

下载:

本地预览.3DS、.OBJ、.MD2、.MD3、.MS3D、.X等模型文件,推荐使用supermodel 。这里有几个OBJ 3D示例模型,感兴趣的哥们可以下载使用。

本人在经过使用后发现真的很好用,非常方便,在本人的CSDN资源上上传了一个示例代码工程,需要的兄弟们可以去下载!工程中加入了纹理、旋转、平移和光照,包含OBJ文件和对应的纹理图片。注意在经过本人尝试后发现,JPG、GIF和PNG都是可以使用的纹理图片,而tga格式加载失败,所以还是使用PNG格式好一点。

OBJ2OpenGLES示例代码

顺便发几张截图:

 

 

obj2opengl:转换OBJ 3D模型到iPhone OpenGL ES兼容的数组中的更多相关文章

  1. 适配抖音!三角面转换和3d模型体量减小,轻量化一键即可完成!

    抖音3d特效,可谓是越来越火爆了,这个有着迪士尼画风的3D大眼,就刷屏了国内外用户的首页! 有人好奇这些特效究竟是怎么制作的?其实就是把3D模型调整适配到头部模型上,调整位置或者大小就可以制作出一个简 ...

  2. [iTyran原创]iPhone中OpenGL ES显示3DS MAX模型之一:OBJ格式分析

    [iTyran原创]iPhone中OpenGL ES显示3DS MAX模型之一:OBJ文件格式分析作者:yuezang - iTyran     在iOS的3D开发中常常需要导入通过3DS MAX之类 ...

  3. WPF 3D 模型旋转

    原文:WPF 3D 模型旋转 WPF 是 Microsoft 在 Framework3.0 中支持的一种技术,它能作出很绚丽的界面,同时它也支持3D的操作.在3D操作主要包括平移(Translate) ...

  4. [OpenGL ES 02]OpenGL ES渲染管线与着色器

    [OpenGL ES 02]OpenGL ES渲染管线与着色器 罗朝辉 (http://www.cnblogs.com/kesalin/) 本文遵循"署名-非商业用途-保持一致"创 ...

  5. 从零开始学习OpenGL ES之一 – 基本概念

    我曾写过一些文章介绍iPhone OpenGL ES编程,但大部分针对的是已经至少懂得一些3D编程知识的人.作为起点,请下载我的OpenGL Xcode项目模板,而不要使用Apple提供的模板.你可以 ...

  6. iOS实现图形编程可以使用三种API(UIKIT、Core Graphics、OpenGL ES及GLKit)

    这些api包含的绘制操作都在一个图形环境中进行绘制.一个图形环境包含绘制参数和所有的绘制需要的设备特定信息,包括屏幕图形环境.offscreen 位图环境和PDF图形环境,用来在屏幕表面.一个位图或一 ...

  7. 笔谈OpenGL ES(二)

    昨晚回家也看了OpenGL ES 2.0 iOS教程的第一篇,对于其中涉及的一些基本知识罗列下,虽然自己做iOS开发一年多了,但是对于一些细节没有注意,真正的把自己当成“应用”工程师了 ,不仅要会用, ...

  8. 在Android中使用OpenGL ES进行开发第(二)节:定义图形

    一.前期基础知识储备笔者计划写三篇文章来详细分析OpenGL ES基础的同时也是入门关键的三个点: ①OpenGL ES是什么?与OpenGL的关系是什么?——概念部分 ②使用OpenGLES绘制2D ...

  9. 在Android中使用OpenGL ES进行开发第(一)节:概念先行

    一.前期基础是知识储备笔者计划写三篇文章来详细分析OpenGL ES基础的同时也是入门关键的三个点: ①OpenGL ES是什么?与OpenGL的关系是什么?——概念部分 ②使用OpenGL ES绘制 ...

随机推荐

  1. 【Go语言入门系列】(七)如何使用Go的方法?

    [Go语言入门系列]前面的文章: [Go语言入门系列](四)之map的使用 [Go语言入门系列](五)之指针和结构体的使用 [Go语言入门系列](六)之再探函数 本文介绍Go语言的方法的使用. 1. ...

  2. Kubernetes K8S之通过yaml文件创建Pod与Pod常用字段详解

    YAML语法规范:在kubernetes k8s中如何通过yaml文件创建pod,以及pod常用字段详解 YAML 语法规范 K8S 里所有的资源或者配置都可以用 yaml 或 Json 定义.YAM ...

  3. android 捕获未try的异常、抓取崩溃日志

    1.Thread.UncaughtExceptionHandler java里有很多异常如:空指针异常,越界异常,数值转换异常,除0异常,数据库异常等等.如果自己没有try / catch 那么线程就 ...

  4. 【转】Android 5.0 : Parsing Data for android-21 failed unsupported major.minor version 51.0

    http://code2care.org/pages/parsing-data-for-android-21-failed-unsupported-major.minor-version-51.0/ ...

  5. Linux命令使用教程

    Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的. Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包. 目 ...

  6. Oracle数据库时提示“ORA-28000

    当使用SQL*Plus登录时,Oracle数据库时提示“ORA-28000:帐号被锁定”. 导致出现改错误的原因是:在oracle database 11g中,默认在default概要文件中设置了“F ...

  7. 07_Python语法示例(基础语法,文件操作,异常处理)

    1.写程序在终端输出图形 ######## # # # # ######## print("#" * 8) print("#" + " " ...

  8. Mybatis源码学习第七天(插件开发原理)

    插件概述: 插件是用来改变或者扩展mybatis的原有功能,mybatis的插件就是通过继承Interceptor拦截器实现的,在没有完全理解插件之前j禁止使用插件对mybatis进行扩展,有可能会导 ...

  9. Agumaster 将爬虫取股票名称代号子系统分出来成agumaster_crawler, 两系统通过RabbitMq连接

    agumaster_crawler系统负责启动爬虫取得数据,之后便往队列中推送. agumaster_crawler系统中pom.xml关于RabbitMq的依赖是: <!-- RabbitMq ...

  10. 洛谷P1712 [NOI2016]区间 尺取法+线段树+离散化

    洛谷P1712 [NOI2016]区间 noi2016第一题(大概是签到题吧,可我还是不会) 链接在这里 题面可以看链接: 先看题意 这么大的l,r,先来个离散化 很容易,我们可以想到一个结论 假设一 ...