ray*_*red 1 iphone objective-c ios opengl-es-2.0
可能重复:
在OpenGL ES中绘制球体
我已经浏览了很长一段时间了,还没有找到合适的答案.我开始学习Opengl es 2.0(因为我需要参加大学的项目)并且最近完成了绘制圆圈.WOOPIE!
我看了很多类似的问题,但它要么已经过时,要么我太复杂了,无法掌握.任何人都可以指出我如何在iOS上用opengl ES 2.0绘制实心球体的正确方向?
我不确定你到底有多远,所以我只想给出一些我认为可能有用的一般性说明,并指出一些我一直用来爬上学习曲线的资源.
一个球是一个足够复杂的对象,你可能不想在代码中生成顶点,因为你可能已经绘制了圆圈 - 你会想要使用像Blender或Maya或Houdini这样的程序,无论你喜欢什么用于构建3d对象,然后将其导出.
您的目标是遵循以下工作流程:3D程序> .obj或者.collada文件> OpenGL可以使用的顶点数组.
您的顶点数组(应该是C数组[],而不是NSArray)将为每个顶点保持{x,y,z}位置,您可能还想使用纹理坐标和法线.如果计划使用纹理,则需要从3D程序中导出纹理坐标,如果计划点亮对象,则需要导出法线.纹理坐标将采用格式{s,t},其将与其关联的顶点连接到矩形纹理上的2d坐标.法线将是{x,y,z}格式的向量.tex坐标和法线可以位于具有顶点(交错)的阵列中,也可以位于单独的阵列中.如果它们是交错的,那么在你的代码中你将拥有一个VBO并且它通常更快,但如果它们不是,你将拥有单独的VBO - 一个用于位置顶点,
这是我用来将.obj转换为用于OpenGL的C头的好脚本.因此,在从3D程序导出到.obj后,您将.obj传递给此脚本,它会吐出.h文件:http: //heikobehrens.net/2009/08/27/obj2opengl/
获得C头文件后,只需#import"sphere.h" - 然后当您稍后调用glBufferData读取顶点时,将传递sphere.h中的数组名称.
这本书是我在iOS上学习OpenGL时遇到的最好的一本书.它提供了很好的GLKit课程解释,对初学者很友好:http://my.safaribooksonline.com/book/animation-and-3d/9780132478939
如果它有用,这里有一些示例代码,我把它放在一起,我几个月前给出了一个演讲.它实际上让我们"内部"爆炸球体,让我们滑动旋转:http: //davidsweetman.com/mobilemeetup-talk-glkit-demo.html
| 归档时间: |
|
| 查看次数: |
2900 次 |
| 最近记录: |