GLSL三种修饰符区别与用途(uniform,attribute和varying)
2019独角兽企业重金招聘Python工程师标准>>>
1.uniform变量
uniform变量是application传递给shader的变量,在application外部赋值,在shader内部,不能被修改。如果uniform变量在vertex和fragment两者之间声明方式一样,则可以在vertex和fragment共享使用。
uniform一般用来表示:材质,参数,变换矩阵和公用颜色等信息。
例子:
uniform vec3 lightPosition;//光源位置
uniform mat4 viewMatrix;//视图矩阵
2.attribute变量
attribute变量只能在vertex shader中使用的变量,不能在fragment shader中声明attribute变量,也不能在fragment shader中使用。
一般用于表示一些顶点数据,如:发现,纹理坐标,顶点坐标,顶点颜色等等
3.varying变量
varying变量用于vertex和fragment shader之间做数据传递使用。一般vertex shader修改varying,fragment shader使用该varying值。因此varying在vertex和fragment声明需要一致
转载于:https://my.oschina.net/gdxz111/blog/776445
GLSL三种修饰符区别与用途(uniform,attribute和varying)相关推荐
- Vue——v-model的三种修饰符lazy、number、trim
Vue--v-model的三种修饰符lazy.number.trim v-model.lazy:值修改操作完成之后才会发生变化. v-model.number:值修改时,保持其值为Number类型. ...
- php三种修饰符,PHP中的权限修饰符 | 萧小寒
摘要 对于很多JavaScript开发者来说,权限修饰符可能一点概述都没有(现阶段的版本中暂未出现).但是,做为JavaScript的超级TypeScript中便已弥补了这个缺陷.同样的,PHP语言本 ...
- 动态IP(DHCP)、静态IP、拨号(PPPOE)三种上网设置区别
动态IP(DHCP).静态IP.拨号(PPPOE)三种上网设置区别 一.动态IP(DHCP) 动态IP上网,又叫做DHCP上网.自动获取IP上网.动态IP这种上网方式,在未使用路由器的情况下,只需要 ...
- Java03-day03【switch、循环(for、while、do...while)、三种循环的区别、跳转控制语句、Random、循环经典例题】
java零基础入门到精通(2019版)[黑马程序员] 视频+资料:[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg 提取码:zjxs] &qu ...
- 电路常识性概念(6)-VCC、VDD和VSS三种标号的区别
电路常识性概念(6)-VCC.VDD和VSS三种标号的区别 在电子电路中,常可以看到VCC.VDD和VSS三种不同的符号,它们有什么区别呢? 一.解释 VCC:C=circuit 表示电路的意思, 即 ...
- LVS三种模式的区别及负载均衡算法
转载自 LVS三种模式的区别及负载均衡算法 LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,是一个虚拟的服务器集群系统,由章文嵩博士在1998年5月成立,在li ...
- JAVA知识基础(三):修饰符
JAVA中根据修饰对象的不同可以分为类修饰符.方法修饰符.变量修饰符三类,其中每种修饰符又可以单独分成两类:访问修饰符和非访问修饰符.为了便于理解,本文以访问和非访问的角度展开. 1.访问修饰符 访问 ...
- java四种修饰符_java中的四种修饰符
在编程过程中,经常会遇到四种修饰符来控制访问权限.之前对这个知识点没有研究过,一直是一知半解,每次遇到问题都模棱两可,不能给出一个确切的答案.近几天系统的看了看,也有了自己的一点心得体会. 正文: 先 ...
- 函数参数三种传递方式的区别
函数参数三种传递方式的区别 问题提出: 1.当一个类的对象作为实参数传递时,使用值传递和引用传递有什么区别? 比如: DateType ExampleFun(CString &strFileN ...
最新文章
- HDU2544(SPFA算法)
- java http 下载网页代码_Java下http下载文件客户端和上传文件客户端实例代码
- 一段js的***程序
- TCP/IP / 网关和路由器的区别
- Linux C++、Boost、ACE ......
- 【未解决】Reporting Services报表在浏览器中的显示
- 修改 MrBayes 3.2 源码解决不能恢复断点的问题
- cocoslua与android交互,cocos2dx 获取手机屏幕分辨率 objective-c android 和 Lua 交互 向lua 传参...
- Flutter拓展 一步一步教你安装Flutter(最火的移动框架)
- jquery04-animate
- 已经学过51单片机,如何进阶?我来教你
- 常见的五种前端页面布局(table布局、float布局、absolute布局、flex布局、grid布局)
- Mac如何关闭开机启动项?
- 中国拖车洒水器市场趋势报告、技术动态创新及市场预测
- String相关知识点
- 【预测模型】人口结构可持续发展模型构建
- 利用传输矩阵法求解布拉格光栅的透射谱
- 两张图片放在一起有条白线_为什么图片上加两条白线就可以有3d效果?
- Excel无法另存为的解决办法
- 带你认识一下“京东到家-网关系统”
热门文章
- boost::empty_value的实例
- DCMTK:存储服务类提供者(C-STORE操作)
- DCMTK:dcmseg模块的辅助功能
- DelegateModel QML类型
- C语言实现boyer moore(博伊尔-摩尔搜索)算法(附完整源码)
- QT的QGraphicsItemAnimation类的使用
- C和C++数据结构算法
- json转java对象_json转java对象
- 常见RAID的各级别的特性简介(RAID0、1、5、6、10)
- Linux上创建一个用户,并给该用户指定目录的权限,修改时区