位置: 编程技术 - 正文

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

  • 已缴纳车船税的车船在同一年度
  • 小规模纳税开专票享受季度30万纳税
  • 房产税与土地使用税如何申报
  • 城市维护建设税优惠政策
  • 劳务派遣差额发票0税率情况
  • 个体工商户怎么变更法人
  • 管理人员工作服计入什么科目
  • 小规模纳税人进项
  • 新会计准则施行
  • 转租不动产需要预缴增值税吗
  • 合作建房如何纳税
  • 委托加工应税消费品名词解释
  • 劳务公司购买设备怎么做账
  • 已付款未收到发票怎么做分录
  • 吊装费用税率
  • 关于工商年检社保的通知
  • 怎么做销售二手车
  • 事业单位自用的房产
  • 个人购买办公楼出租要交税吗
  • 这个月发票领完了,还可以领吗?
  • 外币应收账款汇兑损失计入
  • 普票红冲对方已入账发票拿不回来
  • 销售库存商品的记账凭证
  • 当月已认证的可抵扣增值税
  • 平销返利税率
  • 怎么让自己的电脑有网吧认证
  • 已计提月份的公式
  • 核定征收印花税计算公式
  • 设置bios 密码
  • 笔记本电脑如何恢复出厂系统
  • php防止再次刷新
  • php面向对象的三大特征
  • win11安装程序提示非管理员账号
  • php数组函数题目
  • 股票涨幅公式怎么写
  • 管理费用的会计编码
  • 如何利用路由器登陆花生壳
  • 短期借款利息的核算不可能涉及的账户是
  • 买入返售金融资产和卖出回购金融资产
  • yii2框架结构
  • redis如何实现分布式事务
  • 图像的生成原理
  • linux运行c++程序
  • head命令中表示输出文件前5行的参数是
  • 自营与代理
  • wordpress建立数据库错误
  • mysql读写分离amoeba
  • 织梦使用手册
  • 无追保理是投资还是投资
  • 外币报表折算差额可以转损益吗
  • 研究开发费用加计扣除最新政策
  • 长期待摊费用多少金额
  • 库存商品结转成本是什么意思
  • 土地增值税预缴计算方法70号公告
  • 单位垫付职工个税如何记账
  • 关联方往来款如何处理
  • 如果停产怎么计算成本
  • 买房定金转给销售有效吗
  • 已认证的发票开具红字发票账务处理?
  • 营业成本年末怎么结转
  • 哪些账户期末结账后一定无余额
  • 财付通交易手续费多少
  • 红酒礼品盒批发
  • windows xp如何进入dos
  • windows7怎
  • centos 终端
  • win 8系统怎么样
  • win10一年更新一次
  • win10系统中哪些软件可以删除
  • linux 11
  • Linux如何使用命令
  • The graphics pipeline ,Open GL 渲染管线
  • 搭建gitbook
  • python time.now
  • nodejs微信公众号开发
  • linux常用shell操作指令
  • javascript位置属性
  • javascript学习指南
  • 河南助学金申请表
  • 个体工商户银行卡是对公还是对私
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设