位置: 编程技术 - 正文

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

  • 期末应交税费有余额吗
  • 计提坏账后又收回怎么做
  • 印花税自查补缴要先申报吗
  • 小规模企业有了增值税吗
  • 财政拨款的事业单位有哪些
  • 往来核算在会计哪个科目
  • 营业范围之外的产品可以出售吗
  • 股票投资及收益计算公式
  • 收到原未计入应收项目的交易性金融资产的利息
  • 零售汽油费发票需要交印花税吗?
  • 实收资本印花税怎么申报税目
  • 开票信息里面的电话号码怎么来的?
  • 代开的专票怎么做账?
  • 广告机计入什么费用
  • 再生资源会计科目
  • 计算机系统结构第三版课后答案
  • 公司个人股份转让需要缴税吗
  • 代扣代缴的城建税和教育费附加按委托方所在地的税率
  • 华硕win10笔记本如何恢复出厂设置
  • 无形资产摊销是什么科目
  • 其他综合收益的来源
  • 外贸出口退税进项发票勾选
  • 前端控制台
  • php 解析
  • ajax向php传值
  • 在建工程完成后转入什么科目
  • 不想预缴所得税能不能提前暂估费用,会计分录
  • js数组方法大全
  • 提取企业所得税怎么做会计科目
  • 小规模纳税人增值税超过30万怎么纳税
  • 将10万元存款投入企业的会计分录
  • 工程增值税怎么算,知道9%的税率
  • 收到个人所得税汇算清缴短信
  • 怎样从对公账号查询账单
  • 为什么我们要用英语交流翻译
  • 营改增后建筑企业财务核算
  • 工会经费与残保金属于什么
  • 新会计准则其他收益核算内容
  • 公司个税如何申报流程
  • 股东打给公司的投资款
  • 长期的待摊费用包括哪些
  • 销售返现如何做账务处理
  • 出口退税的会计处理
  • 金蝶财务软件固定资产
  • 债权投资有哪些科目
  • 给股东分利润怎么做账
  • 土地使用权如何计入房产原值交房产税时间
  • 预付账款用途
  • 公司注销帐务怎么处理
  • 现金日记账金额怎么填写
  • sql连接查询实验报告
  • winadserv.exe - winadserv是什么进程
  • macbook新手
  • win8如何切换用户登录
  • 升级win10后东西还在吗
  • WIN7系统还原
  • windows7 远程连接
  • windows8截屏
  • div+css网页布局实例
  • django项目中遇到的难点
  • Building Unity3D Plugins for Android
  • Node.js中的事件循环是什么
  • android开发最全教程
  • ios shell脚本
  • Node.js中的construct
  • js上滑翻页
  • Eclipse运行快捷键
  • jquery图片自动滚动
  • unity data
  • java模拟浏览器点击
  • 基于python的系统
  • python开发环境有
  • javascript学习指南
  • javascript绘制图形
  • jquery 获取屏幕高度
  • jq form提交
  • 企业所得税年度申报表A类
  • 车辆购置税已缴款未入库可以上牌吗
  • 成都市地方税务局官网
  • 成都租房备案凭证怎么办理
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设