位置: 编程技术 - 正文

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下的写字板功能是)

  • 固定资产处置营业外收入和发票金额不一致
  • 幼儿园营业税税率是多少
  • 运输途中合理的消耗损耗
  • 增值税专用发票抵扣期限
  • 给中间人回扣犯罪吗
  • 三供一业移交内容
  • 电子承兑汇票怎么做账
  • 个人支付宝开票的后果
  • 其他收益会计分录
  • 会计凭证在设计中应遵循的设计原则
  • 增值税期末留抵退税政策实施力度
  • 签订合同未履行属于什么行为
  • 进口货物付款计入哪个科目?
  • 企业购买固定资产的价款超过正常信用条件
  • 一般纳税人可以开普票吗
  • 逾期增值税扣税凭证抵扣问题
  • 租金发票会计分录
  • 建筑业增值税普通发票可以抵扣吗
  • 地税印花税税率是多少
  • 经济补偿金如何计税
  • 应对税务检查工作总结
  • 企业债务追诉期几年
  • 5000元可以买什么东西
  • 损失与费用的区别
  • 返利发票税率
  • 老板私车转让给老板
  • 应付职工薪酬在借方是什么意思
  • 联想Lenovo ThinkPad X13 Gen1
  • 为什么预付账款是流动资产
  • 母公司是否应替子公司承担违约责任
  • php实现文件上传
  • 关于汇算清缴的问题
  • 个人所得税计提缴纳会计分录
  • 认缴出资什么时候补齐
  • 存货短缺的账务处理
  • Win11 Build22000.346 Beta/Release预览版发布 KB5007262更新汇总
  • 如何安装wordpress图文教程
  • 售后回租融资租赁案例
  • 制造费用的归集
  • cvg模型
  • 若依和pig
  • php 输出
  • 2022年windows11windows10最强VMware Workstation 16 Pro for Windows虚拟机软件最新授权版16.2.3-19376536版本
  • 政府会计公共基础设施分类
  • 非成品油发票为什么不能抵扣
  • 织梦如何使用不侵权
  • 财务报表如何看
  • 哪些发票可以抵扣?
  • 发票勾选后什么时候开票
  • 没有发票的房租怎么入账
  • 企业信用公示的时候医疗和生育怎么分开计算
  • 固定资产是怎么管理的
  • 预付工程款会计分录
  • 补缴税款需要交滞纳金吗
  • 资金账簿印花税减半政策
  • 工资补偿款是什么意思
  • 施工图审查费属于什么费
  • 资产负债表基本公式
  • 管家婆销售赠品是不是自动结转成本?
  • 汽车费用包括哪些会计科目呢
  • 编制记账凭证的依据
  • Ubuntu15下mysql5.6.25不支持中文的解决办法
  • mysql教程入门
  • openstack 创建云主机,计算节点磁盘不足
  • 苹果电脑定制键盘
  • windows照片查看器在哪打开
  • 原版windowsxp安装
  • pqhelper.exe是什么进程 pqhelper进程查询
  • 红石怎么启动
  • WIN10怎么彻底删除works2
  • win10预览版好吗
  • dosbox批处理
  • unity判断点击ui
  • shell脚本介绍
  • 超级链接是什么意思
  • vscode 远程调试jni
  • js中不同的height, top的区别对比
  • javascript定律
  • javascript !
  • 出口退税申报时间规定
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设