当前位置: 首页 > news >正文

WebGL着色器语言中各个变量的作用

1、attribute变量

用于接收顶点数据,只能在顶点着色器中声明和使用。

attribute vec3 a_position;

2、uniform变量

用于在JavaScript代码中设置并在着色器程序中保持不变的值,可以在顶点着色器和片元着色器中声明和使用。但是要保证变量名唯一,即顶点着色器和片元着色器的uniform变量不能相同。

uniform mat4 u_modelMatrix;

3、varying变量

用于在顶点着色器和片元着色器之间传递数据,顶点着色器中声明的 varying 变量的值会被插值后传递给片元着色器。

varying vec4 v_color;

4、const变量

在着色器中声明的常量值,在整个着色器程序中保持不变。

const float PI = 3.14159265359;

5、预定义变量

WebGL中内置了一些预定义的特殊变量,如gl_Position在顶点着色器中表示顶点位置和gl_FragColor在片元着色器中表示片元颜色。

//顶点着色器程序
var VSHADER_SOURCE = `
attribute vec4 a_Position;
attribute vec2 a_TexCoord;
varying vec2 v_TexCoord;
void main(){gl_Position = a_Position;v_TexCoord = a_TexCoord;
}
`;
//片元着色器程序
var FSHADER_SOURCE = `
precision mediump float;
uniform sampler2D u_Sampler;
varying vec2 v_TexCoord;
void main(){gl_FragColor = texture2D(u_Sampler,v_TexCoord);//设置颜色
}`

 

http://www.lryc.cn/news/461041.html

相关文章:

  • Canmv k230 C++案例1——image classify学习笔记 初版
  • vs2022 dump调试
  • OpenCV高级图形用户界面(11)检查是否有键盘事件发生而不阻塞当前线程函数pollKey()的使用
  • nvm安装,node多版本管理
  • ThingsBoard规则链节点:Assign To Customer节点详解
  • 自监督行为识别-时空线索解耦(论文复现)
  • MyBatisPlus:自定义SQL
  • 变电站谐波治理设备有哪些
  • Mybatis全局配置介绍
  • error: cannot find symbol import android.os.SystemProperties;
  • 债券市场金融基础设施 (2020版)
  • OpenCV高级图形用户界面(8)在指定的窗口中显示一幅图像函数imshow()的使用
  • for循环和while循环的区别
  • 机器学习和神经网络的研究与传统物理学的关系
  • LabVIEW提高开发效率技巧----事件触发模式
  • Kimi AI助手重大更新:语音通话功能闪亮登场!
  • Linux——进程管理
  • 【ARM 嵌入式 编译系列 2.9 -- GCC 编译如何避免赋值判断 if ( x = 0)】
  • PyTorch搭建GNN(GCN、GraphSAGE和GAT)实现多节点、单节点内多变量输入多变量输出时空预测
  • 51单片机快速入门之数码管的拓展应用2024/10/15
  • vue 音频播放控件封装
  • 秋招面试题记录
  • 金字塔流(Pyramid Flow): 用于生成人工智能长视频的新文本-视频开源模型
  • 施磊C++ | 进阶学习笔记 | 5.设计模式
  • 智绘城市地图:使用百度地图 API 实现智能定位
  • 【稳定性】稳定性建设之变更管理
  • c语言中字符串函数strlen,strcmp,strcpy,srtcat,strncpy,strncmp,strncat
  • 高级SQL技巧
  • 新大话西游图文架设教程
  • Maven 快速入门