opengl 怎么读入max模型首先将漫游放在一边,说说导入
3D模型。opengl并没有提供什么方便的函数一次性将模型导入到程序,他也没法做,现在的模型格式很多,有的都快被淘汰了,但还是有人在用。如果你想将模型导入到程序,不妨先试试3ds格式的,我以前就试过。你在网上可以搜到很多导入3ds格式模型的代码,通常他们都不是很完美,你需要对他们进行修改,以支持纹理和动画。
md2格式的模型也不错,可以查到相关资料。主要还是得了解保存的模型文件的存储方式,然后读取并组织显示。
再说漫游,刚学directx时也是这样,我不知道如何让自己在场景中跑起来,于是使用平移,将场景移动,而摄像机不动,这样顶点都要进行矩阵计算,反应很卡。后来改用移动摄像头的方法,用opengl的函数就是gluLookAt(...),调节前6个参数就可以了。
会修改摄像头还不够,必须要绘制出起伏的地形,并能实时得到摄像头垂直下方地形的高度以正确放置摄像头的y坐标。一般你可以通过一张raw图片来得到整个地面的每个点的y坐标,及高度,raw图片是8位的,0~255之间定义opengl的y范围,当然可以乘上一个比例系数进行缩放。具体可以在网上搜到地形的实现方法。
如果还有不懂得可以问我~
求opengl载入3D模型源码去找fbx sdk ,这个sdk可以打开dae 和 fbx格式文件.有文档.
而且dae格式还是xml语法的,自己可以写解析文件
053景观树3D模型下载
android opengl es如何导入三维模型Frame Buffer 对象的概念可以参见前面文章Android OpenGL ES 开发教程(23):FrameBuffer。
简单的和2D图像类比,Frame Buffer 如果 对应到二维图形环境中,就是一个2D的内存数组空间,缺省情况为屏幕的显存,也可以创建Offscreen 内存空间,此时Frame Buffer 可以是一个二维数组,数组每个元素代表一个像素颜色。
对于三维图形来说,除了需要代表颜色的二维数组(Color Buffer),还需要深度二维数组(Depth Buffer) 或遮罩数组(Stencil Buffer),因此在OpenGL 中的Frame Buffer为上述Color Buffer,Depth Buffer,Stencil Buffer 的集合。如果手机具有GPU,其缺省的Frame Buffer也是3D屏幕显示区域。
通过Opengl ES扩展支持,应用程序也可以创建内存中的Frame Buffer对象(不用于屏幕显示)。通过这种应用程序创建的FrameBuffer对象,OpenGL应用可以将图像显示输出重新定向到这个非屏幕显示用FrameBuffer对象中,类似于二维图形绘制中常用的Offscreen 技术。
和缺省的屏幕显示FrameBuffer一样,由应用程序创建的FrameBuffer对象也是由Color Buffer, Depth Buffer和Stencil Buffer(可选)的集合组成。这些Buffer在FrameBuffer对象中可以称为FrameBuffer-attachable 图像,FrameBuffer定义了一些接入点(Attachment Point)可以用于连接(Attach)这些Buffer数组。
OpenGL ES定义了两种FrameBuffer-attachable 图像,Texture 和 renderbuffer ,简单的可以将Texture 理解为Color buffer 或是2D图像,render buffer 对应于depth buffer。