opengl使用总结(包含遇到的问题以及解决之道)

本文总结了在使用OpenGL进行纹理映射时遇到的颜色混合问题及其解决方法,指出纹理和颜色混合时需要屏蔽glColor3f的影响。还讨论了在进行纹理贴图时未显示图片的原因,即在调用glGenTextures之前需要完成OpenGL窗口初始化。同时,文章提到了纹理映射的注意事项,包括启用和关闭纹理映射的时机,以及纹理图片尺寸的限制。最后,简要介绍了OpenGL中的一些基本操作,如视点设置和纹理创建。
摘要由CSDN通过智能技术生成
1.  gluLookAt使用方法:
 glMatrixMode( GL_MODELVIEW );
    // 重置模型观察矩阵。
    glLoadIdentity();
    // 选择模型观察矩阵
    gluLookAt( 3.0f, 2.5f, 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f );
注:在调用gluLookAt之前一定要记得调用glLoadIdentity来重置当前指定的矩阵为单位矩阵.不然就会出问题


2. 进行纹理映射时发现纹理和颜色混合了,解决之道:

要屏蔽glcolor3f的影响,只需添加:

glColor3f(1.0, 1.0, 1.0 );  //使得下面正方体的纹理映射不受最下面的正方体和四面体中的glColor3f的影响
或添加:glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);


3. opengl中进行纹理贴图时不显示贴图图片,调试时发现:
glGenTextures(6, &texture[i]); 
glBindTexture(GL_TEXTURE_2D, texture[i]);
//绑定纹理图片后,发现texture数组始终为0,原因是加载纹理,调用glGenTextures之前应该完成opengl窗口
的初始化,即完成下面调用:
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);  
glutInitWindowPosition(0, 0);
glutInitWindowSize(800, 600);
glutCreateWindow("Wander");
wander.load_GL_textures1(); //此时才能调用加载纹理函数,调用纹理载入子例程


1.

 glFrontFace(GL_CCW); //指定逆时针为正面

    glCullFace(GL_BACK); // 使得背面不可见

    glEnable(GL_CULL_FACE);

 

2.

// 金字塔物体没进行纹理映射,所以此时不应该启用纹理映射,否则会看不到该物体

//glEnable(GL_TEX

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值