[opengl版本过低]openGL 095版玩法攻略 v4.6 官方版
openGL适合所有人使用的免费固体图形引擎,是一个开源图形API,提供硬件而不是软件渲染,可以访问显卡并提供不受CPU约束的高质量渲染。opengl驱动用于缩放2D和3D矢量图形,适用于普通应用程序或简单游戏开发,收到了广泛的用户支持,对于新手来说是一个学习的机会。openGL官方版对于任何不需要高多边形数量的游戏以及高仿真等任务,都可以很好地工作,并提供极高的速度。这个软件非常的耐用,从24年前发布到现在,依然被人使用,如果你想用3D图形编程并且不知道从哪里开始,那么它是一个很好的选择。
1.建模——提供基本的点、线、多边形的绘制函数
2.变换——减少算法的运行时间,提高三维图形的显示速度
3.颜色模式——提供RGBA模式和颜色索引
4.纹理映射——可以十分逼真地表达物体表面细节
用户在安装游戏时,会遇到OpenGL版本或显卡驱动版本太低等问题, 如果你电脑显卡OpenGL的版本低于2.0,那么有以下3种可能:
1、电脑显卡比较低端;
2、显卡是集成显卡;
3、显卡驱动版本太低;
解决方法如下:
首先,如果是显卡驱动版本过低导致的安装游戏失败的情况,我们可以利用“驱动人生”或“驱动精灵”来升级显卡驱动程序。直接在百度中搜索来获取程序的玩法攻略地址。
https://att.xiawai.com/data/attachment/forum/202102/15/pho4i30k0he146228.png
运行驱动程序,切换到“硬件检测”选项卡,就可以查看本机电脑显卡驱动程序的版本以及具体显卡型号啦。
https://att.xiawai.com/data/attachment/forum/202102/15/xozvkmkzyy4146229.png
对于显卡驱动的升级方法,我们可以通过切换到“驱动程序”选项卡,选择最新版本的显卡驱动进行安装。
https://att.xiawai.com/data/attachment/forum/202102/15/q3i11vd0nff146230.png
时导致游戏安装失败的原因还可以是显卡硬件本身性能较低所造成的,对此我们只得升级显卡硬件或购买新的高性能显卡硬件设备。
https://att.xiawai.com/data/attachment/forum/202102/15/rpkl5mqb3qe146231.png
同时部分主板采用集成显卡功能,对于主板集成类显卡,通常显卡性能均比较低,对此建议使用独立高性能显卡进行替代。
https://att.xiawai.com/data/attachment/forum/202102/15/4cnyck5m5en146232.png
1.解压后得到的文件如下图所示
https://att.xiawai.com/data/attachment/forum/202102/15/0zdtuwk5ffa146233.jpg
2.然后把glut.h拷贝到VC的include问价夹下,lib文件放到lib文件夹下
https://att.xiawai.com/data/attachment/forum/202102/15/0k3th5zwckh146234.jpg
3.dll文件放到\WINDOWS\system32文件夹下
https://att.xiawai.com/data/attachment/forum/202102/15/rchzmmatbn3146235.jpg
4.注意,这些文件路径都是相对于VS的安装路径而言的。
下面是一个一个简单的OpenGL程序:
https://att.xiawai.com/data/attachment/forum/202102/15/1fvmnwpofsl146236.jpg
5.该程序的作用是在一个黑色的窗口中央画一个白色的矩形,运行结果如下图所示
https://att.xiawai.com/data/attachment/forum/202102/15/5icjuwnl1bh146237.jpg
1.关于obj的说明。
obj中存放的是顶点坐标信息(v),面的信息(f),法线(vn),纹理坐标(vt),以及材质(这个放在mtl)中
我使用CINEMA 4D导出用VS查看后的信息:
CINEMA 4D中的正方体:
https://att.xiawai.com/data/attachment/forum/202102/15/r142jw0vzbf146238.png
导出obj后的信息
https://att.xiawai.com/data/attachment/forum/202102/15/bn3c451wtyo146239.png
VS中查看;未标题4.obj
https://att.xiawai.com/data/attachment/forum/202102/15/v0kwmhenul4146240.jpg
https://att.xiawai.com/data/attachment/forum/202102/15/fd0vr3acbkh146241.jpg
未标题4.mtl
https://att.xiawai.com/data/attachment/forum/202102/15/0uer2faptgs146242.jpg
这就是其中的信息。
我们知道OpenGL中建立不规则模型可以通过点和三角面来创建。那么我们要做的就是从obj中导出点的三维信息和面的三维信息
2、obj中模型导出的设置。
首先在三维软件中创建一个模型。这里我以一个人体模型演示(只以线框显示)。
https://att.xiawai.com/data/attachment/forum/202102/15/wxm4egjznw2146243.jpg
模型分析:
·我们可以看到这个模型的点面信息太多了,如果直接导出数据太多,处理时程序读取花费的时间太长,而且我们演示也不需要这种高模。
·还有就是,我们知道OpenGl中的运行后可视化界面的坐标是重-1到1,这里可以看到这个模型的尺寸太大,我们必须进行缩放。
模型不是一个整体,分层太多opengl版本过低,导出后各个模块的数据是分开的,所以必须在软件中对模型连接opengl版本过低,使其变为一个整体。
模型处理后:
https://att.xiawai.com/data/attachment/forum/202102/15/shz5q2olgrr146244.png
模型导出:注意一下以下地方就好,因为这里只要点(v),面(f)其他会干扰,也会使程序效率下降。导出后只有以下一个文件。
https://att.xiawai.com/data/attachment/forum/202102/15/vu5pqxjxazp146245.png
所以我们要新建一个txt文件,将里面的数据复制进来,然后把这个文件放在你新建的win32或MFC项目中,将先前的obj从工程中移除。
https://att.xiawai.com/data/attachment/forum/202102/15/1n0ot3urc31146246.png
在VS中查找“#”开头的,有以下两句话,然后直接删除这个是我用CINEMA 4D导出后自带的,会干扰程序的运行。
https://att.xiawai.com/data/attachment/forum/202102/15/vl4orlet331146247.png
4.编程
分析:
¨分析这些数据,不难猜想obj文件由若干行组成,每行开始有一个字母,用来标注改行数据所表示的意思,v 应该是顶点,g应该是一个名字,观察到,f后紧跟着三个整数,由opengl中的顶点数组得到,他应该是三角行的三个顶点,后面的三个整数就代表着前端顶点的索引值.
https://att.xiawai.com/data/attachment/forum/202102/15/0dpyh4v2hpg146248.jpg
1. 开启纹理功能
使用glEnable(GL_TEXTURE_2D)开启2D纹理功能,使用glDisable(GL_TEXTURE_2D)关闭纹理,默认情况下纹理是关闭的。
2. 读取纹理图片到内存
读取的时候注意以下3点:
1) BMP文件数据前54位是文件头和信息头数据,偏移54位之后才是要读取的图像数据。
2) 要检测图像宽度的位数是否是4的整数倍,如果不是,需要补齐,并且以补齐后的内存带下分配内存。
3) 出于兼容较低版本OpenGL的目的,一般需要检测图像的长宽是否是2的整数次幂,以及长宽是否超过了当前版本所支持的最大长宽数值,若条件不符合,需要进行相应的调整,可以使用gluScaleImage函数对图像进行缩放。
3. 分配纹理编号并设置相关属性
使用函数glGenTextures(N,&textureID)来分配N个纹理编号,使用glTexParameteri来设置常用的4个纹理参数,这些参数包括了当前纹理图像大小/小于模型目标时扩展纹理的处理方式。使用gltextImage2D函数根据指定的纹理参数生成一个2D纹理,函数原型是:
https://att.xiawai.com/data/attachment/forum/202102/15/qg30bq5al3w146249.jpg
4) 设置视景体和观察点
通过gluPerspective和gluLookAt设置“视角”和“观察点”的相关参数。
5. 纹理映射,绘制纹理图像
纹理映射跟颜色的绘制一样,需要指定每一个顶点在纹理图像中所对应的位置,OpenGL会自动计算出顶点之间的其他点在纹理图像中应该对应的位置。这里注意纹理图像的坐标范围是从(0,0)到(1,1),左下角为(0,0),右上角为(1,1),鉴于之前已经在第3步中设置了坐标点大于1或者坐标点小雨0的情况的处理方法,所以不考虑显示效果的话,坐标可以任意指定。
下边代码是纹理映射的应用:
https://att.xiawai.com/data/attachment/forum/202102/15/emjhndupiys146250.jpg
https://att.xiawai.com/data/attachment/forum/202102/15/tp1qdsqldm0146251.jpg
https://att.xiawai.com/data/attachment/forum/202102/15/5rqnimdj1hl146252.jpg
https://att.xiawai.com/data/attachment/forum/202102/15/4wbbflltexx146253.jpg
https://att.xiawai.com/data/attachment/forum/202102/15/gzbhqa2stfo146254.jpg
https://att.xiawai.com/data/attachment/forum/202102/15/bhiwjqa1zn0146255.jpg
https://att.xiawai.com/data/attachment/forum/202102/15/pweqfoxtlje146256.jpg
https://att.xiawai.com/data/attachment/forum/202102/15/gp0inqufsqq146257.jpg
运行效果:
以上内容就是openGL 095版玩法攻略 v4.6 官方版的相关内容介绍,喜欢侠外游戏论坛的朋友可以关注我们。
页:
[1]