位置: 编程技术 - 正文

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

  • 利息税定义
  • 电商账务处理及收入成本如何确定?
  • 视同销售是指什么
  • 金税四期正式启动
  • 存货被盗的会计分录
  • 减免税款借贷方表示
  • 免征增值税还要交印花税么
  • 通行费 发票
  • 资产总额全年季度平均值怎么填写
  • 外贸企业的会计
  • 固定资产账实不符的审计定性
  • 公司股东投资是负债吗
  • 建筑施工企业检查的内容包括什么
  • 一般纳税人只交进项税吗
  • 建筑施工企业印花税计税依据
  • 机打发票多久可以作废
  • 发票收款人和开票人
  • 总分公司、母子公司:三流不一致情况下,如何抵扣增值税?
  • 以货换货账务怎么处理
  • 分期付款买车的人多吗
  • 残疾人保障金人数
  • 往来款借方
  • 存货发出记账成本最高
  • 工会经费缴纳是当期
  • 资产账实不符说明
  • 零申报工会经费滞纳金怎么算
  • 电脑c盘变红了怎么回事
  • SWNETSUP.EXE - SWNETSUP是什么进程 有什么用
  • 利息如何做会计分录
  • 动产抵押交付生效还是登记生效
  • 小企业会计准则下融资租入固定资产的核算
  • 融资租赁货车
  • 在win7中如何设置屏幕保护程序
  • 结转消费税的会计分录
  • 票据贴现业务如何核算
  • 微信小程序分包加载
  • 身份证php编写
  • 稽查查补销售额后补开票如何申报
  • 应收账款属于会计要素中的什么科目
  • php url函数
  • 土地出让金返还的税务处理
  • 无法将node项识别为
  • 前端手撕代码
  • 增值税发票丢失罚款多少
  • 销售费用的主要类型有哪些
  • 货款收不回来了怎么做账
  • 公司购买购物卡送客户的会计分录
  • 外贸企业出口退税申报流程
  • 什么是固定资产?其特征有哪些
  • 个人申请给公司账户转账
  • 将织梦dedecms转换到wordpress
  • 福利费属于管理费吗
  • 电梯维保费属于什么费用
  • 上年多交的增值税怎么调整
  • 委托代理出口如何缴纳增值税
  • 采购未到票如何入账
  • 4.建筑业企业资质
  • 多交的税款不退可以吗
  • 提取备用金怎么做账务处理
  • 待抵扣进项税额什么意思
  • 服装厂做的都是什么产品
  • 企业向个人借款利息如何缴纳增值税
  • 非包销的视同买断的账务处理是?
  • 进项税适用税率
  • 公司往来借款怎么做账
  • 贷款服务可以抵扣进项税额吗
  • 公司年初计划都有哪些
  • 苹果7开发者模式怎么打开
  • windows xp密码忘记怎样解锁
  • Linux中cp和scp命令的使用方法
  • win7系统怎么创建虚拟网络
  • linux内存耗尽怎么解决
  • js继承怎么实现
  • 批处理中数字可以用什么代替
  • jquery的点击事件怎么写
  • js网页背景色
  • 海南省国家税务局电子税务局
  • 买房契税发票图片别人看到了有危险吗
  • 山东地税局网上办税平台
  • 烟叶税额
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设