位置: 编程技术 - 正文

OpenGL ES2.0 的三种变量类型(uniform,attribute和varying)(opengl es 3.2)

编辑:rootadmin
1.uniform变量

推荐整理分享OpenGL ES2.0 的三种变量类型(uniform,attribute和varying)(opengl es 3.2),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:opengl es 3.0编程指南,opengl es3.0,opengl es3,opengl es3.0metal,opengl es3.1,opengl es3.0,opengl es3.0,opengl es 3.2,内容如对您有帮助,希望把文章链接给更多的朋友!

uniform变量是外部application程序传递给(vertex和fragment)shader的变量。因此它是application通过函数glUniform**()函数赋&#;的。在(vertex和fragment)shader程序内部,uniform变量就像是C语言里面的常量(const ),它不能被shader程序修改。(shader只能用,不能改)

如果uniform变量在vertex和fragment两者之间声明方式完全一样,则它可以在vertex和fragment共享使用。(相当于一个被vertex和fragment shader共享的全局变量)

uniform变量一般用来表示:变换矩阵,材质,光照参数和颜色等信息。

以下是例子:

uniform mat4 viewProjMatrix; //投影&#;视图矩阵uniform mat4 viewMatrix; //视图矩阵uniform vec3 lightPosition; //光源位置

2.attribute变量

attribute变量是只能在vertex shader中使用的变量。(它不能在fragment shader中声明attribute变量,也不能被fragment shader中使用)

OpenGL ES2.0 的三种变量类型(uniform,attribute和varying)(opengl es 3.2)

一般用attribute变量来表示一些顶点的数据,如:顶点坐标,法线,纹理坐标,顶点颜色等。

在application中,一般用函数glBindAttribLocation()来绑定每个attribute变量的位置,然后用函数glVertexAttribPointer()为每个attribute变量赋&#;。

以下是例子:

uniform mat4 u_matViewProjection;attribute vec4 a_position;attribute vec2 a_texCoord0;varying vec2 v_texCoord;void main(void){gl_Position = u_matViewProjection * a_position;v_texCoord = a_texCoord0;}

3.varying变量

varying变量是vertex和fragment shader之间做数据传递用的。一般vertex shader修改varying变量的&#;,然后fragment shader使用该varying变量的&#;。因此varying变量在vertex和fragment shader二者之间的声明必须是一致的。application不能使用此变量。

以下是例子:

// Vertex shaderuniform mat4 u_matViewProjection;attribute vec4 a_position;attribute vec2 a_texCoord0;varying vec2 v_texCoord; // Varying in vertex shadervoid main(void){gl_Position = u_matViewProjection * a_position;v_texCoord = a_texCoord0;}

// Fragment shaderprecision mediump float;varying vec2 v_texCoord; // Varying in fragment shaderuniform sampler2D s_baseMap;uniform sampler2D s_lightMap;void main(){vec4 baseColor;vec4 lightColor;baseColor = texture2D(s_baseMap, v_texCoord);lightColor = texture2D(s_lightMap, v_texCoord);gl_FragColor = baseColor * (lightColor &#; 0.);}

【OpenGL】理解GL_TRIANGLE_STRIP等绘制三角形序列的三种方式 GL_TRIANGLE_STRIP绘制三角形方式很多时候令人疑惑,在这里对其运作机理进行解释。一般情况下有三种绘制一系列三角形的方式,分别是GL_TRIANGLES、GL_TRIANG

Qt新渲染底层Scene Graph研究(一) Qt新渲染底层SceneGraph研究(一)Qt5提出了一个新的渲染底层,以替代Qt4时期的GraphicsView,这个渲染底层就是SceneGraph。其实这个底层的作用和OpenSceneGraph

GLWallpaperService分析一 WallpaperService是用来实现动态壁纸的服务,使用WallpaperService的典型方式是实现自定义的继承自WallpaperService的动态壁纸类。并实现它的WallpaperService.Engine。

标签: opengl es 3.2

本文链接地址:https://www.jiuchutong.com/biancheng/369642.html 转载请保留说明!

上一篇:OpenGL学习09_裁剪平面ClipPlane(opengl裁剪平面)

下一篇:【OpenGL】理解GL_TRIANGLE_STRIP等绘制三角形序列的三种方式(opengl详解)

  • 转账支票的签发
  • 另收取包装物押金
  • 本期实际抵减税额合计
  • 拆除固定资产的补偿款
  • 企业所得税申报时间
  • 税种核定办理流程
  • 应交税费未交增值税是什么意思
  • 免抵退税额抵减额怎么理解
  • 财务费用明细科目怎么写
  • 带息票据贴现金额怎么算
  • 分公司需要计提利息吗
  • 保险企业准备金是什么
  • 以旧换新计税依据
  • 虚拟股份分红
  • 酒店布草间有摄像头吗
  • 公司租用员工的车租车协议
  • 收到退回多付款现金流量支付购买商品支付
  • atikdag.sys
  • 未分配收益余额在哪方
  • sci期刊投稿步骤
  • 职工取得全年一次性奖金如何计算缴纳个人所得税?
  • 如何检查路由器防火墙设置
  • 图像质量评价制度及质量评价方案
  • vue实现鼠标悬浮 显示全部内容
  • 增值税发票月度统计
  • 收到质量赔款做什么会计科目
  • 保安行业税率是多少
  • php的hashtable
  • 子公司提取盈余公积 合并抵消
  • package.json详解
  • 安卓京东抢购
  • opencv教程
  • 子公司减资母公司怎么算
  • 什么不计入税金及附加
  • 支付宝对公账户怎么转账
  • 已核销的坏账又收回会计分录
  • 个人社保进费用,还要报个税么
  • chrome网上应用商店在哪
  • 发票报销原因
  • 运输费抵扣进项税怎么算
  • concat group
  • 印花税的征收方式有哪些
  • 什么是异地企业
  • 先开票未发货要确认收入吗
  • 研发项目会计分录
  • 企业所得税征前还是征后
  • 服装公司的会计怎么做账
  • 净利润增长率计算方式
  • 企业发生亏损,可在( )年内连续弥补
  • 生产成本一般采用
  • 用友为什么引入不了账套
  • 红字发票信息表在哪里查询
  • 小规模纳税人抵扣税控盘增值税怎么申报
  • 代扣代缴完税凭证抵扣期限
  • 饭店现金账怎么记账
  • sql 清除日志
  • 购物车功能实现思路
  • winxp系统怎么投屏
  • ubuntu复制文件到当前文件夹
  • ghost出现错误
  • win7 64位系统双击桌面所有程序提示"文件没有与之关联的程序来执行"的解决方法
  • win10更新后出现windows.old
  • awk中使用sed
  • win10系统安装cad2008的注册机无法打开
  • android打包原理
  • 一个简单的小实验
  • js动态加载图片
  • Activity 的四种启动模式
  • 基于重大误解实施的民事法律行为
  • JavaScript中Object.prototype.toString方法的原理
  • jquery td
  • unity制作的2d游戏
  • python deque
  • Python字符串切片例子
  • js实现框选
  • selenium在pycharm
  • jQuery给div,Span, a ,button, radio 赋值与取值
  • python批量填表
  • 陕西地税发票怎么重新打印
  • 江西省国家税务局李德平
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设