当前位置: 首页 > news >正文

OpenGL三维显示中纹理闪烁和颜色跳变的问题

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

问题如下;:
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

  • zh_zh_y

  • 等级:Blank

#1 得分:0回复于: 2006-07-05 10:17:06

我想第二个问题多半是参数设置的问题。不知道有没有人碰到过类似的问题,解决思路是什么?找了几天也没有找到原因,郁闷。

社区问答第5期:秦小波 设计模式之禅

对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理

  • syy64

  • 关注

  • syy64

  • syy64

  • 等级:Blank

3

#2 得分:0回复于: 2006-07-05 10:37:36

1、最好是消除重叠部分,通过改变纹理坐标;
2、因为视角的变化,造成直线和面的上下和前后的关系发生变化造成的,直线和面应该在空间上分离开来。

CSDN投诉事项说明

对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理

  • zh_zh_y

  • 关注

  • zh_zh_y

  • zh_zh_y

  • 等级:Blank

#3 得分:0回复于: 2006-07-05 15:39:02

在程序中,如果要消除重叠部分,需要进行大量的数据预处理工作。正是基于此,才寻求一种能不能不消除重叠,能够解决闪烁的方案。

对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理

  • zh_zh_y

  • 关注

  • zh_zh_y

  • zh_zh_y

  • 等级:Blank

#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

  • zh_zh_y

  • 等级:Blank

#5 得分:0回复于: 2006-07-05 15:56:42

期待syy64(太平洋)兄和各位达人能给出一点意见,帮我指出一条明路。

对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理

  • syy64

  • 关注

  • syy64

  • syy64

  • 等级:Blank

3

#6 得分:0回复于: 2006-07-05 16:06:08

glPolygonMode(GL_FRONT,GL_FILL);
去掉这句试试。

对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理

  • zh_zh_y

  • 关注

  • zh_zh_y

  • zh_zh_y

  • 等级:Blank

#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

  • zh_zh_y

  • 等级:Blank

#8 得分:0回复于: 2006-07-05 17:29:53

按我的理解,在绘制一个几何图元,例如直线或者平面,只要使用glColor3f函数设置了颜色,当前颜色应该就是glColor3f函数设置的颜色。我在绘制每个几何图元,都采用了glColor3f函数进行颜色设置,设置的颜色都不相同,但是现在颜色发现都是一样的,没有按照预期的颜色进行分配。
不知道原因?

对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理

  • ftkghost

  • 关注

  • ftkghost

  • ftkghost

  • 等级:Blank

#9 得分:0回复于: 2006-07-05 18:19:48

第一个问题,最好把纹理坐标设置成同一个点只有一个纹理覆盖,不然渲染时可能出现问题

第二个问题
你是不是开启光照了?
材质的漫反射色和环境色设置是蓝色?如果开启光照而且没有使用函数glColorMaterial,没开启GL_COLOR_MATERIAL,glColor设置的颜色将不会影响片元的颜色;
还有光源的设置是怎样的,光源是不是随视点变化的,如果是,在不同的视点光照影响可能不一样,使用平滑着色后偏远颜色也不一样?

对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理

  • zh_zh_y

  • 关注

  • zh_zh_y

  • zh_zh_y

  • 等级:Blank

#10 得分:0回复于: 2006-07-05 22:36:12

第二个问题已经解决了,是纹理的影响,在绘制没有纹理的图元,应该 glDisable(GL_TEXTURE_2D);
绘制结束时,在打开。
第一个问题,我知道最好纹理不用重复。但是重复的情况没有办法解决,能不能解决或者减轻纹理闪烁的问题了?

对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理

  • corinna

  • 关注

  • corinna

  • corinna

  • 等级:Blank

#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

  • zh_zh_y

  • 等级:Blank

#12 得分:0回复于: 2006-07-11 13:04:55

楼上corinna(天使)的方法,获得的是半透明效果.在半透明效果中,纹理重叠的地方仍然出现闪烁.



转载于:https://my.oschina.net/u/1469992/blog/281192

相关文章:

  • Tom Baeyens谈过程虚拟机
  • 【博客园发文技巧】不离开编辑页面,批量添加图片链接和设置图片大小
  • 治大国若烹小鲜
  • JSONP使用笔记
  • AJAX 中Sys.WebForms.PageRequestManager(ajax请求添加客户端事件)的事件激发顺序
  • 为 IBM Lotus Notes V8 构建复合应用程序(七)
  • Android数据的四种存储方式之SQLite数据库
  • SER+SEMS完全手册
  • C#性能测试方法
  • win2008dns服务器域名解析
  • [转]PCI的Linux实现及其驱动
  • CCNP(BSCI)读书笔记第二章EIGRP
  • RHEL6.5双网卡绑定
  • SQL开发中容易忽视的一些小地方(一)【null的用法及注意事项】
  • Dev控件 galleryControl
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 【译】理解JavaScript:new 关键字
  • extjs4学习之配置
  • Linux链接文件
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • session共享问题解决方案
  • 计算机在识别图像时“看到”了什么?
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 如何解决微信端直接跳WAP端
  • 使用权重正则化较少模型过拟合
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 由插件封装引出的一丢丢思考
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • Java总结 - String - 这篇请使劲喷我
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #{}和${}的区别是什么 -- java面试
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • (02)vite环境变量配置
  • (2022 CVPR) Unbiased Teacher v2
  • (分类)KNN算法- 参数调优
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (四)JPA - JQPL 实现增删改查
  • (转)大道至简,职场上做人做事做管理
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • ./configure、make、make install 命令
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .NET 中 GetProcess 相关方法的性能
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .netcore如何运行环境安装到Linux服务器
  • .Net小白的大学四年,内含面经
  • [04]Web前端进阶—JS伪数组
  • [2016.7 Day.4] T1 游戏 [正解:二分图 偏解:奇葩贪心+模拟?(不知如何称呼不过居然比std还快)]
  • [8-23]知识梳理:文件系统、Bash基础特性、目录管理、文件管理、文本查看编辑处理...
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [Android Pro] android 混淆文件project.properties和proguard-project.txt
  • [BZOJ2208][Jsoi2010]连通数
  • [C#]winform部署yolov9的onnx模型
  • [CCIE历程]CCIE # 20604
  • [C语言][PTA基础C基础题目集] strtok 函数的理解与应用