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)相关推荐

  1. Vue——v-model的三种修饰符lazy、number、trim

    Vue--v-model的三种修饰符lazy.number.trim v-model.lazy:值修改操作完成之后才会发生变化. v-model.number:值修改时,保持其值为Number类型. ...

  2. php三种修饰符,PHP中的权限修饰符 | 萧小寒

    摘要 对于很多JavaScript开发者来说,权限修饰符可能一点概述都没有(现阶段的版本中暂未出现).但是,做为JavaScript的超级TypeScript中便已弥补了这个缺陷.同样的,PHP语言本 ...

  3. 动态IP(DHCP)、静态IP、拨号(PPPOE)三种上网设置区别

    动态IP(DHCP).静态IP.拨号(PPPOE)三种上网设置区别 一.动态IP(DHCP)  动态IP上网,又叫做DHCP上网.自动获取IP上网.动态IP这种上网方式,在未使用路由器的情况下,只需要 ...

  4. Java03-day03【switch、循环(for、while、do...while)、三种循环的区别、跳转控制语句、Random、循环经典例题】

    java零基础入门到精通(2019版)[黑马程序员] 视频+资料:[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] &qu ...

  5. 电路常识性概念(6)-VCC、VDD和VSS三种标号的区别

    电路常识性概念(6)-VCC.VDD和VSS三种标号的区别 在电子电路中,常可以看到VCC.VDD和VSS三种不同的符号,它们有什么区别呢? 一.解释 VCC:C=circuit 表示电路的意思, 即 ...

  6. LVS三种模式的区别及负载均衡算法

    转载自  LVS三种模式的区别及负载均衡算法 LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,是一个虚拟的服务器集群系统,由章文嵩博士在1998年5月成立,在li ...

  7. JAVA知识基础(三):修饰符

    JAVA中根据修饰对象的不同可以分为类修饰符.方法修饰符.变量修饰符三类,其中每种修饰符又可以单独分成两类:访问修饰符和非访问修饰符.为了便于理解,本文以访问和非访问的角度展开. 1.访问修饰符 访问 ...

  8. java四种修饰符_java中的四种修饰符

    在编程过程中,经常会遇到四种修饰符来控制访问权限.之前对这个知识点没有研究过,一直是一知半解,每次遇到问题都模棱两可,不能给出一个确切的答案.近几天系统的看了看,也有了自己的一点心得体会. 正文: 先 ...

  9. 函数参数三种传递方式的区别

    函数参数三种传递方式的区别 问题提出: 1.当一个类的对象作为实参数传递时,使用值传递和引用传递有什么区别? 比如: DateType ExampleFun(CString &strFileN ...

最新文章

  1. HDU2544(SPFA算法)
  2. java http 下载网页代码_Java下http下载文件客户端和上传文件客户端实例代码
  3. 一段js的***程序
  4. TCP/IP / 网关和路由器的区别
  5. Linux C++、Boost、ACE ......
  6. 【未解决】Reporting Services报表在浏览器中的显示
  7. 修改 MrBayes 3.2 源码解决不能恢复断点的问题
  8. cocoslua与android交互,cocos2dx 获取手机屏幕分辨率 objective-c android 和 Lua 交互 向lua 传参...
  9. Flutter拓展 一步一步教你安装Flutter(最火的移动框架)
  10. jquery04-animate
  11. 已经学过51单片机,如何进阶?我来教你
  12. 常见的五种前端页面布局(table布局、float布局、absolute布局、flex布局、grid布局)
  13. Mac如何关闭开机启动项?
  14. 中国拖车洒水器市场趋势报告、技术动态创新及市场预测
  15. String相关知识点
  16. 【预测模型】人口结构可持续发展模型构建
  17. 利用传输矩阵法求解布拉格光栅的透射谱
  18. 两张图片放在一起有条白线_为什么图片上加两条白线就可以有3d效果?
  19. Excel无法另存为的解决办法
  20. 带你认识一下“京东到家-网关系统”

热门文章

  1. boost::empty_value的实例
  2. DCMTK:存储服务类提供者(C-STORE操作)
  3. DCMTK:dcmseg模块的辅助功能
  4. DelegateModel QML类型
  5. C语言实现boyer moore(博伊尔-摩尔搜索)算法(附完整源码)
  6. QT的QGraphicsItemAnimation类的使用
  7. C和C++数据结构算法
  8. json转java对象_json转java对象
  9. 常见RAID的各级别的特性简介(RAID0、1、5、6、10)
  10. Linux上创建一个用户,并给该用户指定目录的权限,修改时区