使用glext多重贴图的方法-创新互联

如果你在windows下想使用opengl开发程序,都会遇到一个问题,微软提供的opengl的版本是1.1的,高版本就不提供了,(why?因为人家想推广自家的dx,鄙视他!),如果想用一些高版本的功能,那么就只能用opengl的扩展,扩展有很多种,opengl有一个很大的有点就是他的可扩展性,有glext.h还有glew.h在这两个头文件引用的时候要注意引用顺序,glext。h的声明要在glut.h的后面,glew.h的声明就要在glut。h的前面。在用glew.h的时候我们需要初始化。

创新互联长期为上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为潍坊企业提供专业的网站制作、成都网站设计潍坊网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。

GLenum err = glewInit() ;
         if (GLEW_OK != err)

       {
                  MessageBoxA(NULL, "error", "My Window", 1) ;

       }

也许我们很困惑,为什么opengl红宝书的多层贴图的例子不能用,按说他们这群大牛编写了windows下的代码为什么不能用呢?当我添加上glext。h这个头文件是,发现glActiveTextureARB跟glMultiTexCoord2fARB没有定义,在看下nehe的代码,找到问题所在了,windows程序没有找到这两个函数的入口地址,我们先声明函数指针

PFNGLACTIVETEXTUREARBPROC glActiveTextureARB = NULL;
PFNGLMULTITEXCOORD2FARBPROC glMultiTexCoord2fARB = NULL;

然后再在我们的init函数中初始化一下

   glMultiTexCoord2fARB    = (PFNGLMULTITEXCOORD2FARBPROC)  wglGetProcAddress("glMultiTexCoord2fARB");
  glActiveTextureARB  = (PFNGLACTIVETEXTUREARBPROC)  wglGetProcAddress("glActiveTextureARB");

然后在编译一下,ok,没有问题了

但是发现我们得到的结果非常暗,这是因为我们设置的纹理环境是glTexEnvi(gl_texture_env,gl_texture_env_mode,gl_modulate)glmodulate相信大家都明白这个参数代表的意思,要想改变他的现实效果,我们就得在这上面下功夫……

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

文章题目:使用glext多重贴图的方法-创新互联
文章分享:https://www.cdcxhl.com/article42/cecphc.html

成都网站建设公司_创新互联,为您提供外贸建站全网营销推广自适应网站手机网站建设营销型网站建设网站内链

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站建设