位置: 编程技术 - 正文

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

  • 向税务局申请发票增量增额怎么写
  • 解除劳动一次性补偿金怎么记账
  • 所得税汇算清缴时间期限
  • 增值税减免税款怎么算
  • 专用发票压线了可以拒收吗
  • 普通发票作废要交税吗
  • 每月先报税还是先清卡
  • 装水表财务是什么费用
  • 餐饮增值税发票抵扣
  • 最近的火车票代售点
  • 小企业固定资产折旧的账务处理
  • 印花税什么情况可以退
  • 海关免税设备清单
  • 业务招待费取得的专票可以抵扣吗
  • 银行承兑汇票到期日期怎么算
  • 投资收益的表现形式
  • 小规模纳税人是简易计税吗
  • 河道费怎么计算
  • 药企常见税务风险及措施
  • 财务负责人和办税人员哪个责任大
  • 本月应该确认收入,但是一般下月才开票该怎么处理?
  • 进项税额异常补税怎么算
  • 社保和公积金的钱可以取出来吗
  • 事业单位是否属于中小企业
  • 购材料有折让如何做会计分录?
  • mac系统如何连接北通手柄
  • 小企业会计准则会计科目表
  • linux修改分区uuid
  • 小规模纳税人的增值税怎么算
  • 公司股权转让会议决议
  • 代扣代缴的增值税可以作为进项税抵扣吗
  • 收到别人押金的会计分录
  • cpu性能天梯图2023年3月
  • 建筑业产值填哪个数据
  • 长期待摊会计分录
  • php7 数组
  • 资产减值损失结转
  • 暂估入库结转成本账务处理
  • 结存材料实际成本例题
  • element html
  • php while true
  • 进口货物没有发票怎么入账,报税时怎么填
  • 电子银行回单可以导出吗
  • 资产处置损益算营业外收入吗
  • 利息收入计入借方
  • 经营范围没有的项目可以做吗
  • 印花税购销合同计税依据
  • 投资性房地产的后续计量
  • 单位银行提取大额现金最多能取多少
  • sql server 2008 r2教程
  • 税控系统技术维护费会计处理280
  • 无形资产界定
  • 去年多摊销了怎么办
  • 以前年度损益调整在利润表中怎么填
  • 公司出售二手车要交哪些税
  • 固定资产提前报废当月计提折旧吗
  • 长期待摊费用会计分录
  • 非正常损坏的商品计入哪个会计科目
  • 固定资产折旧的会计科目
  • 母公司销售给控股子公司
  • 文件历史版本功能
  • 用Windows Server Backup搞定服务器备份
  • 苹果mac怎么下载英雄联盟
  • vpngui.exe是什么进程
  • xp系统内存不能为read的解决方法
  • win7系统设备管理器没有端口
  • Win10 Mobile Redstone预览版14291上手体验评测
  • win7如何显示文件扩展
  • docker如何部署环境到生产
  • 超出div的部分隐藏
  • jquery 点击按钮
  • wordpress开发文档
  • Javascript在网页设计中的作用有哪些
  • 仿京东商城源码
  • python运行时间的几种方法
  • python快速排序最简单写法
  • 国家税务总局现任局长
  • 公寓土地增值税30%-60%阶梯税
  • 国家税务总局大连电子税务局
  • 契税维修基金交给谁
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设