2019独角兽企业重金招聘Python工程师标准>>>
问题如下;: 1、现在有两块区域纹理贴图,这两块区域有部分是重叠在一起的,这个重叠在一起的纹理会闪烁,各位高手有没有解决的办法?
2、程序中采用glColor3f函数设置了直线和平面的颜色。但是发现进行视角变换时,这些设置的颜色会发生跳变,比如正确的颜色是蓝色,但是进行视角变换后,这些直线和平面的颜色发生了变化。暂时没有找出原因,不知道是不是跟纹理的设置有关系? 以前有个帖子“在opengl中用纹理贴图时,是否对场景中其他部分的颜色会有影响” http://community.csdn.net/Expert/TopicView3.asp?id=4565550 对这个问题也有所阐述。 更多0分享到: 相关主题推荐: opengl 三维 相关帖子推荐:
求助OpenGL帮忙解决以下问题 C#中的三维图显示,就像这种图形该怎么做 用什么控件弄 求OpenGL大牛 java 3d 内存泄露问题 谁数学牛逼,进来看看,这段代码看了好久都没有明白,不知道为何这样设计 关于directx复制像素的问题 vc下用Opengl重复绘图,在ontimer里面,造成画面一卡一卡的 OpenGL三维模型显示问题
|
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 回复次数:12 |
关注 zh_zh_y zh_zh_y 等级:
| #1 得分:0回复于: 2006-07-05 10:17:06 我想第二个问题多半是参数设置的问题。不知道有没有人碰到过类似的问题,解决思路是什么?找了几天也没有找到原因,郁闷。 |
社区问答第5期:秦小波 设计模式之禅 对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 syy64 syy64 等级:
3 | #2 得分:0回复于: 2006-07-05 10:37:36 1、最好是消除重叠部分,通过改变纹理坐标; 2、因为视角的变化,造成直线和面的上下和前后的关系发生变化造成的,直线和面应该在空间上分离开来。 |
CSDN投诉事项说明 对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 zh_zh_y zh_zh_y 等级:
| #3 得分:0回复于: 2006-07-05 15:39:02 在程序中,如果要消除重叠部分,需要进行大量的数据预处理工作。正是基于此,才寻求一种能不能不消除重叠,能够解决闪烁的方案。
|
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 zh_zh_y zh_zh_y 等级:
| #4 得分:0回复于: 2006-07-05 15:54:34 第二个问题我描述上存在问题,举例说明如下: glPushMatrix();
glDisable(GL_BLEND ); glColor3f(0.3f,0.3f,0.5f);
glPolygonMode(GL_FRONT,GL_FILL);
glBegin(GL_QUADS); glVertex3f(v1.m_x,v1.m_y,v1.m_z); glVertex3f(v2.m_x,v2.m_y,v2.m_z); glVertex3f(v3.m_x,v3.m_y,v3.m_z); glVertex3f(v4.m_x,v4.m_y,v4.m_z);
glEnd();
glPopMatrix(); 我希望达到这种效果:通过上述代码绘制的平面永远保持一种颜色(0.3f,0.3f,0.5f),而不管矩阵如何的变换。但是现在发现的问题是,用户经过一些操作后,该平面的颜色经常没有规律的跳变,没有保持预期的颜色。 |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 zh_zh_y zh_zh_y 等级:
| #5 得分:0回复于: 2006-07-05 15:56:42 期待syy64(太平洋)兄和各位达人能给出一点意见,帮我指出一条明路。 |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 syy64 syy64 等级:
3 | #6 得分:0回复于: 2006-07-05 16:06:08 glPolygonMode(GL_FRONT,GL_FILL); 去掉这句试试。 |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 zh_zh_y zh_zh_y 等级:
| #7 得分:0回复于: 2006-07-05 17:14:33 去掉glPolygonMode(GL_FRONT,GL_FILL),颜色不发生跳变了,但是颜色不是指定的颜色。 比如 glPushMatrix();
glDisable(GL_BLEND ); glColor3f(1.0f,0f,0f); //希望是红色
glBegin(GL_QUADS); glVertex3f(v1.m_x,v1.m_y,v1.m_z); glVertex3f(v2.m_x,v2.m_y,v2.m_z); glVertex3f(v3.m_x,v3.m_y,v3.m_z); glVertex3f(v4.m_x,v4.m_y,v4.m_z);
glEnd();
但是glColor3f没有起作用,仍是蓝色,这可能是什么原因了?
|
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 zh_zh_y zh_zh_y 等级:
| #8 得分:0回复于: 2006-07-05 17:29:53 按我的理解,在绘制一个几何图元,例如直线或者平面,只要使用glColor3f函数设置了颜色,当前颜色应该就是glColor3f函数设置的颜色。我在绘制每个几何图元,都采用了glColor3f函数进行颜色设置,设置的颜色都不相同,但是现在颜色发现都是一样的,没有按照预期的颜色进行分配。 不知道原因? |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 ftkghost ftkghost 等级:
| #9 得分:0回复于: 2006-07-05 18:19:48 第一个问题,最好把纹理坐标设置成同一个点只有一个纹理覆盖,不然渲染时可能出现问题
第二个问题 你是不是开启光照了? 材质的漫反射色和环境色设置是蓝色?如果开启光照而且没有使用函数glColorMaterial,没开启GL_COLOR_MATERIAL,glColor设置的颜色将不会影响片元的颜色; 还有光源的设置是怎样的,光源是不是随视点变化的,如果是,在不同的视点光照影响可能不一样,使用平滑着色后偏远颜色也不一样? |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 zh_zh_y zh_zh_y 等级:
| #10 得分:0回复于: 2006-07-05 22:36:12 第二个问题已经解决了,是纹理的影响,在绘制没有纹理的图元,应该 glDisable(GL_TEXTURE_2D); 绘制结束时,在打开。 第一个问题,我知道最好纹理不用重复。但是重复的情况没有办法解决,能不能解决或者减轻纹理闪烁的问题了?
|
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 corinna corinna 等级:
| #11 得分:0回复于: 2006-07-06 16:04:12 glEnable(GL_BLEND); glBlendFunc(GL_SRC_COLOR,GL_ONE_MINUS_SRC_COLOR);
绘制纹理
glDisable(GL_BLEND);
你用这个试试,应该可以让你的纹理重合的部分融合
|
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 zh_zh_y zh_zh_y 等级:
| #12 得分:0回复于: 2006-07-11 13:04:55 楼上corinna(天使)的方法,获得的是半透明效果.在半透明效果中,纹理重叠的地方仍然出现闪烁. |
|
转载于:https://my.oschina.net/u/1469992/blog/281192