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

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.kler.cn/news/353925.html

相关文章:

  • 前端Socket互动小游戏开发体验分享
  • Ubuntu内存扩容
  • 字典如何与选择器一起使用
  • Neo4j 构建文本类型的知识图谱
  • 大数据开发基础实训室设备
  • 学习索引时想到的问题
  • 结直肠癌数据集(不定期更新)
  • 中航资本:什么条件才能买创业板股票,创业板权限开通详解!
  • 使用python实现学生成绩管理系统
  • Java爬虫:API接口数据爬取入门详解及示例代码
  • 视频的编解码格式
  • 分享如何网上找饭搭子一起品尝美食,分享快乐,建立深厚友谊
  • Leetcode—1114. 按序打印【简单】(多线程)
  • VR线上展厅:超越时空的沉浸式展览,打造个性化、高效展览新模式
  • el-select 下拉框选项文字过长解决方案
  • Chromium html<script>对应c++接口定义
  • 洗衣店数字化转型:Spring Boot订单管理
  • Web前端高级工程师培训:异步处理专题
  • 基于机器学习与深度学习的贷款批准预测
  • Vue 3 和 Vue 2区别