游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3412|回复: 8

玻璃效果的麻烦

[复制链接]

5

主题

14

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2006-4-18 20:51:00 | 显示全部楼层 |阅读模式
采用混合制作玻璃效果,设置如下,在另外一个工程文件中已经实现了的。可写入目前这个工程文件中,却没有玻璃效果了,连续苦找原因,没有整好。请问各位高手,这种情况如何解决啊?谢谢了先!

glEnable (GL_BLEND);
glBlendFunc (GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glColor4f(1.0,1.0,1.0,0.25);
JQP.paint();
glDisable (GL_BLEND);
sf_2006418205121.jpg

18

主题

579

帖子

583

积分

高级会员

Rank: 4

积分
583
发表于 2006-4-19 00:12:00 | 显示全部楼层

Re:玻璃效果的麻烦

有没有关掉深度测试?

5

主题

14

帖子

14

积分

新手上路

Rank: 1

积分
14
 楼主| 发表于 2006-4-19 11:44:00 | 显示全部楼层

Re:玻璃效果的麻烦

关掉了的

18

主题

579

帖子

583

积分

高级会员

Rank: 4

积分
583
发表于 2006-4-20 01:42:00 | 显示全部楼层

Re:玻璃效果的麻烦

那有没有先渲染不透明的场景?然后透明的排序没有

5

主题

14

帖子

14

积分

新手上路

Rank: 1

积分
14
 楼主| 发表于 2006-4-20 08:51:00 | 显示全部楼层

Re:玻璃效果的麻烦

有渲染不透明的场景,如果是先渲染不透明的场景的话,就有玻璃效果了,不过此时,就不能实现点选多个物体,进行移动的操作了(只能点选第一个物体,实现移动操作,其他的点不中)。
为了实现点选多个物体,先渲染玻璃物体,后渲染场景的,这样就出现:没有玻璃效果的结果了。
您说的透明的排序没有,是什么意思哦?

5

主题

14

帖子

14

积分

新手上路

Rank: 1

积分
14
 楼主| 发表于 2006-4-20 09:03:00 | 显示全部楼层

Re:玻璃效果的麻烦

这是渲染的部分代码

//////////////////////////////////////////////////////////
//场景绘制与渲染
//////////////////////////////////////////////////////////
BOOL CMySDOpenGL2View::RenderScene()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);        //清除颜色缓存和深度缓存
//        glClearColor(0.4,0.4,0.6,0.25);
        glLoadIdentity();
       
        //set the view port
        glMatrixMode(GL_MODELVIEW);
        glPushMatrix();

        // 初始化名字堆栈
        glInitNames();
        glPushName(0);


//////////////////////////////////////////////////////////////
//绘制仪器
//////////////////////////////////////////////////////////////  

    glPushMatrix();
        glColor3f(1.0,1.0,1.0);
        glTranslatef(0.0,-0.5,-5.0);
        glTranslatef(0.0,0.0,size);
    glRotatef(step,0.0,1.0,0.0);

        OnDrawEquip();
       
        glPopMatrix();
///////////////////////////////////////////////////////////////
//构建场景
///////////////////////////////////////////////////////////////       
    glPushMatrix();
        glTranslatef(0.0,-0.5,-5.0);
        glTranslatef(0.0,0.0,size);
    glRotatef(step,0.0,1.0,0.0);
        glColor3f(1.0,1.0,1.0);
        glLoadName(51);
        DrawDesk();
        DrawLib();
        DrawCupBoard();
        DrawCupBoard_1();
        DrawCupBoard_2();
        glPopName();
        glPopMatrix();

///////////////////////////////////////////
//        OnDrawEquip();
////////////////////////////////////////////////////////////////

    glPopMatrix();
    //glFlush();

        ::SwapBuffers(m_pDC->GetSafeHdc());                //交互缓冲区
        return TRUE;
}

8

主题

122

帖子

122

积分

注册会员

Rank: 2

积分
122
发表于 2006-4-20 16:57:00 | 显示全部楼层

Re:玻璃效果的麻烦

要保证没有被不透明物体遮挡的具有透明效果的多边形按照与视点距离进行渲染排序,我感觉是个比较难的算法。

有没有其他思路?

0

主题

7

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2006-4-30 16:42:00 | 显示全部楼层

Re: Re:玻璃效果的麻烦

raven: Re:玻璃效果的麻烦

要保证没有被不透明物体遮挡的具有透明效果的多边形按照与视点距离进行渲染排序,我感觉是个比较难的算法。

有没有其他思路?


用qsort来做很简单就可以排序了

0

主题

18

帖子

24

积分

注册会员

Rank: 2

积分
24
发表于 2006-5-10 01:28:00 | 显示全部楼层

Re:玻璃效果的麻烦

你应该改变一下你的拾取算法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 11:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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