找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 2545|回复: 0

【3D】OpenGL使用心得

[复制链接]
发表于 2014-8-29 10:41:10 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
1、glBegin和glEnd之间只能调用规定的函数,调用别的函数比如glGetError会引发错误。
详细的情况是这样:
我在glEnd之后用了glGetError,然后导致什么也不会显示。
去掉了glEnd后面的glGetError后,调用glFlush出错,原因是在glBegin与glEnd之间我调用了glGetError。
谨记:
从glBegin开始,到glFlush或glFinish之间,不准胡乱调用函数。。可以调用的函数在MSDN上有粗略的介绍,而在OpenGL的官网有详细的介绍。

2、载入纹理后需要设置好纹理的Wrap、放大Filter、最小Filter和Mipmap的Filter,否则没法显示(一片空白)。
3、用了glew就能在Windows下用高版本的OpenGL
4、GL_BITMAP是用来读取双色位图的(通常为黑白位图),要读取24位真彩色位图(BMP的“文件体”),需要用GL_UNSIGNED_BYTE之类的东西。
5、任何对OpenGL函数的调用必须保证你调用了wglMakeCurrent并给了有意义的数值。调用了wglMakeCurrent(0,0);之后别调用OpenGL的函数。
6、CubeMap必须是方的,各个面尺寸必须完全一致。有一个面的尺寸有问题(比如不方、和别的面不一样大小)就会导致整个CubeMap变成白色。
7、最好把尺寸是N的二次方的位图拿去给OpenGL。否则兼容性问题很大。
8、VB调用glCreateProgram等函数失败的原因不是因为没有调用glewInit,而是因为glew32.dll导出的__glew开头的符号指向的不是函数体,而是函数指针。
解决的办法是自己再写个DLL。
9、有些函数,比如glGenFramebuffers,需要先用wglGetProcAddress取得地址,然后再用kernel32的GetProcAddress取得地址,最后用CopyMemory来完成手动的取地址。
回复

使用道具 举报

本版积分规则

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-11-23 20:06 , Processed in 0.038354 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表