游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2171|回复: 6

求助:关于纹理

[复制链接]

10

主题

13

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2006-5-24 17:43:00 | 显示全部楼层 |阅读模式
我用粒子系统做液体流动,为什么粒子显示出来像纸片一样一层一层的?是不是纹理映射时出问题了?

30

主题

569

帖子

569

积分

高级会员

Rank: 4

积分
569
发表于 2006-5-24 17:58:00 | 显示全部楼层

Re:求助:关于纹理

有图吗?

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-5-25 15:16:00 | 显示全部楼层

Re:求助:关于纹理

你要设置ALPHA混合和ALPHA测试,把面片中没有粒子颜色的地方裁掉,还有就是绘制粒子的时候要用Billboard,要关掉Z缓冲……

55

主题

331

帖子

337

积分

中级会员

Rank: 3Rank: 3

积分
337
发表于 2006-5-27 21:42:00 | 显示全部楼层

Re:求助:关于纹理

楼上正解。顶。

10

主题

13

帖子

13

积分

新手上路

Rank: 1

积分
13
 楼主| 发表于 2006-5-29 22:15:00 | 显示全部楼层

Re: 求助:关于纹理

不会用billboard能详细解释吗?

55

主题

331

帖子

337

积分

中级会员

Rank: 3Rank: 3

积分
337
发表于 2006-5-30 14:13:00 | 显示全部楼层

Re: 求助:关于纹理

for (int loop=0; loop<MAX_GUNFIRES; loop++)
{
.............

///////////////////////////////////////
// Billboard
float mat[16];
glGetFloatv(GL_MODELVIEW_MATRIX, mat);
CVector3 X(mat[0], mat[4], mat[8]);
CVector3 Z(mat[1], mat[5], mat[9]);

float xx=particle[loop].x;
float yy=particle[loop].y;
float zz=particle[loop].z;

CVector3 pos(xx, yy, -zz);
////////////////////////////////////////

glBegin(GL_TRIANGLE_STRIP);                       
glTexCoord2f(1,1);glVertex3f((pos+(X+Z)* 0.5).x, (pos+(X+Z)* 0.5).y, (pos+(X+Z)* 0.5).z);//右上角
glTexCoord2f(0,1);glVertex3f((pos+(Z-X)* 0.5).x, (pos+(Z-X)* 0.5).y, (pos+(Z-X)* 0.5).z);//左上角
glTexCoord2f(1,0);glVertex3f((pos+(X-Z)* 0.5).x, (pos+(X-Z)* 0.5).y, (pos+(X-Z)* 0.5).z);//右下角
glTexCoord2f(0,0);glVertex3f((pos+(X+Z)*-0.5).x, (pos+(X+Z)*-0.5).y, (pos+(X+Z)*-0.5).z);//左下角
glEnd();

.................

}

10

主题

13

帖子

13

积分

新手上路

Rank: 1

积分
13
 楼主| 发表于 2006-5-31 16:33:00 | 显示全部楼层

Re: 求助:关于纹理

是不是在MFC下不能用glut库呀?

如果不能我怎么在MFC下实现动态纹理影射呀?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-24 15:31

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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