幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: 好人卡的

v-[求助]一个关于OpenGL读取tga文件的问题。。。

[复制链接]

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
发表于 2007-3-17 19:31:30 | 显示全部楼层
是背景颜色搞错了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
え~え~お!!!
回复 支持 反对

使用道具 举报

好人卡的 该用户已被删除
 楼主| 发表于 2007-3-18 00:59:23 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
发表于 2007-3-18 11:58:21 | 显示全部楼层
  1. module mydraw;
  2. import derelict.opengl.gl;
  3. import loadtexture;
  4. int DrawGLScene()   
  5. {
  6.     GLuint texture[3];
  7.     texture[0] = loadTex("Panoramas.jpg","jpg");
  8.     texture[1] = loadTex("jqwz.jpg","jpg");
  9.     texture[2] = loadTex("jqwz_mask.jpg","jpg");
  10.    
  11.     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  12.     glLoadIdentity();
  13.     glTranslatef(-0.0f,0.0f,-5.0f);   
  14.     glBindTexture(GL_TEXTURE_2D, texture[0]);//背景纹理
  15.     glBegin(GL_QUADS);
  16.     glTexCoord2f( 0.0f, 1.0f ); glVertex3f( -2.0f, -2.0f, 2.0f );
  17.     glTexCoord2f( 1.0f, 1.0f ); glVertex3f(  2.0f, -2.0f, 2.0f );
  18.     glTexCoord2f( 1.0f, 0.0f ); glVertex3f(  2.0f,  2.0f, 2.0f );
  19.     glTexCoord2f( 0.0f, 0.0f ); glVertex3f( -2.0f,  2.0f, 2.0f );
  20.     glEnd();
  21.     //先画上mask,白色被过滤,黑色显示
  22.     glDisable(GL_DEPTH_TEST);
  23.     glEnable(GL_BLEND);
  24.     glBlendFunc(GL_DST_COLOR,GL_ZERO);
  25.     glLoadIdentity();
  26.     glTranslatef(-0.0f,0.0f,-6.0f);   
  27.     glBindTexture(GL_TEXTURE_2D, texture[2]);//选定mask jpg
  28.     glBegin(GL_QUADS);
  29.     glTexCoord2f( 0.0f, 1.0f ); glVertex3f( -1.0f, -1.0f, 1.0f );
  30.     glTexCoord2f( 1.0f, 1.0f ); glVertex3f(  1.0f, -1.0f, 1.0f );
  31.     glTexCoord2f( 1.0f, 0.0f ); glVertex3f(  1.0f,  1.0f, 1.0f );
  32.     glTexCoord2f( 0.0f, 0.0f ); glVertex3f( -1.0f,  1.0f, 1.0f );
  33.     glEnd();
  34.     //画人物
  35.     glBlendFunc(GL_ONE, GL_ONE);
  36.      glBindTexture(GL_TEXTURE_2D, texture[1]);    // 人物纹理
  37.     glBegin(GL_QUADS);
  38.     glTexCoord2f( 0.0f, 1.0f ); glVertex3f( -1.0f, -1.0f, 1.0f );
  39.     glTexCoord2f( 1.0f, 1.0f ); glVertex3f(  1.0f, -1.0f, 1.0f );
  40.     glTexCoord2f( 1.0f, 0.0f ); glVertex3f(  1.0f,  1.0f, 1.0f );
  41.     glTexCoord2f( 0.0f, 0.0f ); glVertex3f( -1.0f,  1.0f, 1.0f );
  42.     glEnd();
  43.     glDisable(GL_BLEND);
  44.     glEnable(GL_DEPTH_TEST);   
  45.     glFlush();
  46.     return 0;                        
  47. }
复制代码
为了装《美少女梦工场5》,我把vc2005给删了,这是用d语言写的。 [s:2]
这东西的编译器才20+m,比庞然大物vc小巧多了,甚至比mingw还小
大体的流程就是这样,具体代码和c的也是差不多的,可以平移。
え~え~お!!!
回复 支持 反对

使用道具 举报

好人卡的 该用户已被删除
 楼主| 发表于 2007-3-18 16:26:49 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
发表于 2007-3-18 16:44:27 | 显示全部楼层
1.在画mask之前调用glDisable(GL_DEPTH_TEST);把depth test给关掉了。
而在画完了后,又用glEnable(GL_DEPTH_TEST); 把depth test打开
所以在这glDisable(GL_DEPTH_TEST)和glEnable(GL_DEPTH_TEST)之间画的东西没有depth test
2.glFlush()是强制绘图,和glSwapBuffer作用差不多。但glFlush()一般用在opengl单缓存显示的时候。这是我抄别人代码的时候遗留下来的东西.[s:5]
え~え~お!!!
回复 支持 反对

使用道具 举报

好人卡的 该用户已被删除
 楼主| 发表于 2007-3-18 16:46:58 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

1

帖子

13

积分

②入门

积分
13
发表于 2007-7-2 18:04:38 | 显示全部楼层

回 楼主(好人卡的神话) 的帖子

请问你读到.tga文件的问题解决了吗!
库之间是不是有一个版本冲突问题! 你的工程用的是OPENGL 的哪过版本,我用你的工程编译出现了下面的问题!
KOJQ error LNK2019: 无法解析的外部符号 ___glutCreateWindowWithExit@8 ,该符号在函数 _glutCreateWindow_ATEXIT_HACK@4 中被引用

KOJQ fatal error LNK1120: 1 个无法解析的外部命令

KOJQ warning LNK4098: 默认库“LIBC”与其他库的使用冲突;使用 /NODEFAULTLIB:library

能帮我解决一下是什么问题吗!
回复 支持 反对

使用道具 举报

好人卡的 该用户已被删除
 楼主| 发表于 2007-7-3 21:52:23 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-4-27 07:27 , Processed in 0.021117 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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