位置: 编程技术 - 正文

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万全交税吗2020
  • 抵扣旅客运输增值税报表怎么填
  • 退货开具红字发票销项税为负数税务局会查吗
  • 应收票据贴现的含义
  • 收到工伤赔偿款会计分录
  • 成本类科目期末借方余额表示
  • 个体户没有税务登记证能注销营业执照吗
  • 收回已确认的坏账的应收账款
  • 为取得固定资产而发生的什么支出可计入固定资产成本
  • 未确认融资租赁费用是什么类型科目
  • 房租转租怎么处理合法
  • 银行里的钱没有了怎么办
  • 汇算清缴调增税金及附加
  • 高速公路通行费怎么计算的
  • 官司赔偿费用需要发票吗
  • 国税怎么查缴税明细
  • 小企业税金及附加会计分录
  • 进口增值税未抵扣怎么办
  • 一般纳税人注销公司流程2023
  • 收入与应收款
  • 土地出让金怎么入账
  • 销售方开具的红字信息表
  • 未开票收入纳税
  • mac系统怎么设置字体大小
  • 总资产净利率与权益乘数的关系
  • 建筑公司可以开劳务吗
  • 抵偿债务会计处理
  • 非营利性组织收到政府拨款转出给其他部门怎么做账
  • php array_chunk
  • 房地产佣金手续费财务处理
  • yolov5讲解
  • Calanques de Piana岩层上的一个心形洞,法国科西嘉岛 (© joningall/Getty Images)
  • 企业利润总额为负
  • php guzzle 异步
  • 建信信托介绍
  • javascript bom dom
  • 累计折旧大白话
  • 国税纳税申报表下载
  • 本地住宿费能报销吗
  • 快递破损后赔偿还能把东西拿走吗
  • 开基本户一定要法人身份证吗
  • 不发工资可以先报警吗
  • 个税全员全额扣除怎么算
  • 建筑企业预缴
  • 信用减值损失与资产减值损失
  • 水电费计提是什么意思
  • 工程材料费发票没拿到是否能预提费用?
  • 开发成本期末有余额吗
  • 现金日记账采用哪一种账簿的形式
  • 营改增试点行业顺序
  • 以前年度社保计提出错了怎么调整
  • 建筑企业需要缴纳的税种
  • 原材料属于固定资本还是流动资本
  • 当月发生逾期押金收入12870元
  • 人力资源公司代发工资可以开专用发票吗
  • 年终奖企业应该计入哪个会计年度
  • 哪些商业保险可以抵扣个税
  • 手续费和利息费用的区别
  • 勘探费用会计分录
  • 个人购买办公用品 可以证明是单位吗
  • 关于数据库的叙述
  • jdbc连接sqlserver数据库查询数据画饼图
  • 开源操作系统年度技术会议
  • 下载windows vista
  • freebsd重置密码
  • ubuntu server initramfs
  • linuxcpu监控
  • win7电脑老是自动重启是什么原因
  • androidstudio调用so文件
  • unity游戏开发的技术
  • jquery设计模式
  • jQuery animate和CSS3相结合实现缓动追逐效果附源码下载
  • 江苏省国家税务局总局官网
  • 民办幼儿园属于民营企业吗
  • 如何代扣个人所得税
  • 税务征收社保费
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设