位置: 编程技术 - 正文

OpenGL ES 设置透明度不能【双面透明】的问题解决办法(opengl es2)

编辑:rootadmin

推荐整理分享OpenGL ES 设置透明度不能【双面透明】的问题解决办法(opengl es2),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:opengl透明,opengl透视,opengl透明,opengl es教程,opengl es视频教程,opengl es教程,opengl opengl es,opengl透视,内容如对您有帮助,希望把文章链接给更多的朋友!

立方体的面和圆柱体都是有颜色的,所以在内部的圆柱体就不能被看到,只能设置立方体透明。

效果图:

放大图:

之前的代码实现是半透明的,从一侧能看到另一侧,另一侧就不能看透。

在public void onSurfaceCreated(GL gl, EGLConfig config)中的代码如下:

关于透明度的设置,参考了别人的文章:OpenGL ES 设置透明度不能【双面透明】的问题解决办法(opengl es2)

原文地址: 中可以通过 blend (混色) 来简单实现,混色的基本原理就是把要绘制的物体的颜色与屏幕上已经绘制好的颜色以一定比例来混合,最后的颜色看上去就像半透明一样。

要使用混合先要通过 glEnable 函数来启用

?1glEnable(GL.GL_BLEND);

然后通过 glBlendFunc 来设置下要使用的混合方法

?1glBlendFunc(sfactor, dfactor);

sfactor 及 dfactor 分别代表源和目标颜色在混合时所占比重的枚举常量。其中 sfactor 可取&#;包括:GL_ZERO, GL_ONE, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA, GL_SRC_ALPHA_SATURATE ; 而 dfactor 可取&#;包括:GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA。

所以有这样的设置:

glBlendFunc(GL_ONE, GL_ONE); 即源与目标颜色的RGBA分别相加。

glBlendFunc(GL_ONE, GL_ZERO); 即只取源颜色,这也是默认&#;。

glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); 是比较典型的半透明效果,如果源色 alpha 为0,则取目标色,如果源色alpha为1,则取源色,否则视源色的alpha大小各取一部分。源色的alpha越大,则源色取的越多,最终结果源色的表现更强;源色的alpha越小,则目标色“透过”的越多。

此外在一般的渲染过程中,都会把有半透明效果的渲染放到后边,先把不透明的部分在深度测试启用的情况下渲染完, 再关闭深度测试写入(glDepthMask(false)),并渲染半透明的部分。这样就不会出现由于半透明且离镜头近的面被先渲染时污染深度缓冲了。

于是,我觉得找到了方式,把代码修改如下,成功是实现双面透明效果:

好吧,效果图就如大家看到的那样,大家可以自己测试!

Windows下的OpenGL编程进行简单介绍 第一步,选择一个编译环境现在Windows系统的主流编译环境有VisualStudio,BrolandCBuilder,Dev-C等,它们都是支持OpenGL的。我选择VisualStudio和VC6作为学习Open

在MSVC中使用freeglut代替glut 使用MSVC时,需要手动配置glut.h,glut.dll和glut.lib文件。这个帖子介绍说glut已经老掉牙了。点击打开链接GLUTisverydatednowandnotactivelysupported-soyoushouldcertainl

我的第二个opengl程序 今天做了第二个opengl程序,其实是照抄书上的列子,然后加深理解,代码反正是书上的,这个就不解释了,主要是理解了画曲线需要定义A*XB,A为需要显

标签: opengl es2

本文链接地址:https://www.jiuchutong.com/biancheng/369658.html 转载请保留说明!

上一篇:3D网络游戏开发学习书籍概览(3d网络游戏开发方法)

下一篇:Windows下的OpenGL编程进行简单介绍(Windows下的写字板功能是)

  • 前期费用包括哪些,占总投资的比例
  • 个人经营所得税减免税优惠政策
  • 处置使用过的车辆
  • 注销公司账面余额要全部清零吗
  • 未达起征点的增值税怎么算
  • 办公室空调维修报告
  • 房屋置换以房换房政策2019
  • 厂房推倒重建房产税
  • 企业所得税税前扣除异常是什么意思
  • 设备维修费怎么入账
  • 会计账簿的定义及其作用
  • 发票验证系统费用多少钱?
  • 五分钟了解外出经营活动税收管理证明
  • 风险纳税人怎么查原因
  • 纳税人必须关注的10个涉税风险点
  • 公司用上年多缴的社保
  • 快速查看财务费用借贷有误的方法
  • 创新券补贴可以算作高新收入吗?
  • 跨地区经营建筑企业预缴企业所得税
  • 无法查明原因的现金溢余计入什么科目?
  • 车不入库扣几分
  • 研发费用界定标准
  • 基建工程的各项工作包括
  • 其他债权投资的交易费用计入什么科目
  • php如何解决异常处理
  • 清除cmos数据按钮一直亮
  • PHP:stream_set_chunk_size()的用法_Stream函数
  • 网络延迟高不稳定怎么办
  • 旅游 服务业
  • 超过认证错误限制
  • imagestring php
  • 固定资产清查盘盈盘亏的账务处理
  • yii框架文档
  • 委托加工应税消费品以委托人为消费税的纳税义务人
  • 非居民纳税人可以做汇算清缴吗
  • php从数据库中读取数据
  • 房地产企业现金流管理问题研究
  • ChatGLM-6B:颠覆聊天AI的全新模型
  • 如何验证工具坐标系
  • java 读写锁 map
  • ps遇到了文件尾
  • sql server s
  • 一般纳税人可以给小规模开专票吗
  • 行政单位要不要税号?
  • 专项应付款和政府补助的区别
  • 工会经费计提基数包括奖金吗
  • 异地预缴怎么填写申报表
  • 软件企业确认收入
  • 持有至到期投资在资产负债表怎么填
  • 可以自行开具增值税专用发票的行业有哪些
  • 劳务派遣中谁给劳动者发工资
  • 存货与总账对账
  • explain分析sql效率的方法
  • windows vista X86 RTM/OEM 中文正式版下载地址
  • win2008r2下载
  • win 10预览版
  • firefox干啥的
  • win8点击桌面没反应
  • win8系统映像
  • centos7安全
  • 联想电脑win7系统开机修改开机密码
  • win8键盘失灵怎么办
  • Win10系统里的Smartscreen筛选器的使用以及开启方法
  • 微软宣布
  • linux curl命令使用
  • [置顶]游戏名 TentacleLocker
  • 如何除掉
  • js阻止冒泡和默认行为
  • unity3d官方教程
  • nodejs实战
  • netmon.exe
  • jquery(document).ready
  • android开源库
  • unity随机生成一个物体
  • unity游戏开发的技术
  • ecmascript新特性
  • 医院的电子收据怎么查
  • 深圳罗湖区公安局长安慧君简历
  • 安徽公务员流程各个阶段时间
  • 承租房变更承租人申请怎么写
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设