位置: 编程技术 - 正文
推荐整理分享openGL读取obj文件(opengl context for format),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:opengl导入obj能动起来吗,opengl读取图片,opengl读取3d模型,opengl读取stl文件,利用opengl实现读文件点,利用opengl实现读文件点,利用opengl实现读文件点,opengl读取txt文件,内容如对您有帮助,希望把文章链接给更多的朋友!
《代码转自网上》
1.最简单的obj文件的读取,
没有采用结构体来储存信息,不过比较有参考意义
用int **a;来定义二维数组之后需要在使用之前初始化 如:a=new int*[];
2.通过glm读取obj文件
glm是Nate Miller的obj文件加载类
使用该类需要把glm.c修改为glm.cpp
以下是一些相关操作:
//单位化模型model并返回缩放比例因子单位化就是把模型通过平移和缩放变换限制到3维坐标系中点为中心的一个单位正方体区域内GLfloat glmUnitize(GLMmodel* model); //计算模型的宽,高,深尺寸,结果保存在dimensions所指的3元素数组中GLvoid glmDimensions(GLMmodel* model, GLfloat* dimensions); //按比例参数缩放模型,参数大于1放大,大于0小于1缩小,小于0反射,等于0缩小到0GLvoid glmScale(GLMmodel* model, GLfloat scale); //反转模型的多边形顶点顺序,同时反转法向量,默认多边形顶点顺序是逆时针的。GLvoid glmReverseWinding(GLMmodel* model); //计算模型面的法向(假定多边形顶点顺序为逆时针)GLvoid glmFacetNormals(GLMmodel* model); //计算模型的平滑顶点法向,angle参数为平滑交叉的最大角度(角度制)GLvoid glmVertexNormals(GLMmodel* model, GLfloat angle); //按线性投影产生纹理坐标,它把顶点线性映射到矩形上GLvoid glmLinearTexture(GLMmodel* model); //按球形映射产生纹理坐标GLvoid glmSpheremapTexture(GLMmodel* model); //从内存中释放模型GLvoid glmDelete(GLMmodel* model); //从Wavefront公司标准的.OBJ文件中读取模型GLMmodel* glmReadOBJ(char* filename);
代码如下:
使用时直接调用显示列表就好:glCallList(list_id);OpenGL--shader入门 理论基础着色器:opengl渲染管线分为固定管线和可编程管线,3.1版本后固定管线已经废除了。可编程管线主要是包括顶点着色器和片段着色器,而我们
Java版WorldWind中加入会运动模型 在worldwindsdk中的gov.nasa.worldwind.geom,这个包是存放一些几何模型的。我使用的是球类Sphere,它是使用OpenGL画出来的。参考这个类进行了一定的修改成为Pla
VS下编译无法打开包括文件:“GL/glaux.h”: No such file or directory //包含有关OpenGL函数的头文件#includegl/gl.h#includegl/glu.h#includegl/glaux.h#includegl/glut.h在VS下却出现编译错误:c:usersljdesktop跟踪定位程序camerastdafx.h():f
友情链接: 武汉网站建设