位置: 编程技术 - 正文

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

  • 个人出租非住房房产税怎么计算
  • 房产契税什么时候交的小知识
  • 仓库出入库账本图片大全
  • 往来款项包括什么
  • 文化建设税怎么填
  • 餐饮公司开分店还需要办手续吗
  • 化验室购买仪器计入什么科目
  • 印花税一个月一报吗
  • 收到应收的货款的会计分录
  • 车间停产期间设施有哪些
  • 购货方销售折让的会计处理
  • 营业执照缴纳印花税贴花怎么缴纳
  • 增资的印花税纳税义务时间
  • 房产税计税依据房产原值怎么算
  • 内销选择性征收关税政策试点
  • 民间非营利组织有哪些
  • 购进原材料直接销售应该怎样结转成本呢
  • 怎么判断分红前已提取足够法定公积金?
  • 季报的利润表是填本期金额还是本年
  • 专票小数点后两位没有显示出来可以认证吗
  • 货代发票税率是多少
  • 享受小型微利企业标准
  • 生育津贴还扣税吗
  • 高新技术企业如何节税
  • 某公司购入一台需要安装的生产设备
  • 企业研发人员数量在哪里查
  • 有现金折扣的采购业务全流程
  • 生产的废料怎么做账
  • win11右下角时间设置
  • 电脑怎么进入bios中文
  • 如何修复电脑上qq对话过期视频
  • 应付债券借贷
  • 会计分录有哪几种形式
  • 买房增值税征收标准
  • 个人住房5年后买卖如何交税?
  • post请求params
  • php运用的技术php开发有哪些实用的技术
  • 税控系统维护费抵扣申报表怎么填
  • laravel pay
  • 注销后怎么补缴社保
  • 未交社保可以要求单位赔偿吗
  • 预算超支怎么办
  • python优化工具箱
  • php如何防止sql注入攻击
  • 发现以前年度损益调整怎么记账
  • 手写发票可以报维修费吗
  • 员工餐费补助交个人所得税吗
  • 企业所得税的成本怎么填?
  • 出现什么情况企业不能持续经营
  • 有形动产租赁服务的增值税税率
  • 员工出差的餐费发票是否全部入差旅费
  • 公司注册代理费用标准
  • 收到发票税点计入什么科目
  • 目标考核奖金做什么科目
  • 深入3DSTUDIOMAX
  • win8.1配置要求
  • windows优化软件
  • windows xp的安装
  • windows登录密码设置
  • sedsvc.exe是什么
  • windows免费升级win10
  • windows 10 正式版
  • Linux系统怎么安装gz包软件
  • android openconnect
  • js 正则验证
  • 使用JQuery实现Ctrl+Enter提交表单的方法
  • 微信小程序基于spingboot
  • shell实现的实验步骤
  • jquery获取值的几种方法
  • node.js express koa
  • 安卓小项目实战软件
  • javascript学习指南
  • jquery实例
  • 工会春游费用怎么报销
  • 无锡税务app
  • 地税跟国税是在一起吗
  • 贵州企业申报系统
  • 电影失眠详细剧情
  • 国税局地点
  • 广东揭阳怎么了
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设