threejs_ES GLSL知识

简介: threejs_ES GLSL知识

ES GLSL

  1. 着色器语言用于计算机图形编程,运行在GPU中,平时所说的大多数语言编写的程序都是运行在CPU中。
  2. 与OpenGL API相配合的是着色器语言GLSL,与OpenGL ES API、WebGL API相互配合的是着色器语言
  3. GLSL ES。OpenGL标准应用的是客户端 OpenGL ES应用的是移动端,WebGL标准应用的是浏览器平台。

WebGL(全写Web Graphics Library)
GLSL(全写OpenGL Shading Language)

着色器语言ES GLSL与C语言的共同点

1.声明一个变量需要定义变量的数据类型
2.关键字const声明一个常量
3.基本数据类型(int、float、bool)
4.数据类型转换(整型数int、浮点数float、布尔值bool三种不同的数据值可以相互转化,把一个类型转化为另一个类型通过相应的内置函数int()、float()、bool()实现)

着色器语言ES GLSL的特别之处

1.向量数据类型
关键字| 数据类型
--|--
vec2 |二维向量,具有xy两个分量,分量是浮点数
vec3 |三维向量 ,具有xyz三个分量,分量是浮点数
vec4 |四维向量 ,具有xyzw四个分量,分量是浮点数
ivec2 |二维向量,分量是整型数
ivec3 |三维向量 ,分量是整型数
ivec4 |四维向量 ,分量是整型数
bvec2| 二维向量,分量是布尔值bool
bvec3| 三维向量 ,分量是布尔值bool
bvec4| 四维向量 ,分量是布尔值bool
使用时候需要构造函数赋值

vec3 direction;
// 赋值
direction = vec3(1.0,0.0,0.0);

访问获取向量分量
向量vector| 访问
--|--
第1个分量| vector.x
第2个分量| vector.y
第3个分量| vector.z
第4个分量| vector.w
2.矩阵数据类型

关键字 数据类型
mat2 2x2矩阵,4个元素
mat3 3x3矩阵,9个元素
mat4 4x4矩阵,16个元素
mat4 matrix4 = mat4(
1.1,2.1,3.1,4.1,
1.2,2.2,3.2,4.2,
1.3,2.3,3.3,4.3,
1.4,2.4,3.4,4.4
);
// 访问矩阵matrix4的第二列
vec4 v4 = matrix4[1];//返回值vec4(1.2,2.2,3.2,4.2)
// 访问矩阵matrix4的第三列第四行对应的元素
float f = matrix4[2][3];//返回4.3

3.着色器语言中的内置变量
内置变量 |含义 |值数据类型
--|--|--
gl_PointSize| 点渲染模式,方形点区域渲染像素大小 |float
gl_Position| 顶点位置坐标| vec4
gl_FragColor |片元颜色值 |vec4
gl_FragCoord |片元坐标,单位像素| vec2
gl_PointCoord |点渲染模式对应点像素坐标 |vec2

  //给内置变量gl_PointSize赋值像素大小,注意值是浮点数
  gl_PointSize=20.0;
  //顶点位置,位于坐标原点
  gl_Position = vec4(0.0,0.0,0.0,1.0);
  // 片元沿着x方向渐变
  gl_FragColor = vec4(gl_FragCoord.x/500.0*1.0,1.0,0.0,1.0);
目录
相关文章
|
传感器 Java API
Spring揭秘:Aware接口应用场景及实现原理!
Aware接口赋予了Bean更多自感知的能力,通过实现不同的Aware接口,Bean可以轻松地获取到Spring容器中的其他资源引用,像ApplicationContext、BeanFactory等。 这样不仅增强了Bean的功能,还提高了代码的可维护性和扩展性,从而让Spring的IoC容器变得更加强大和灵活。
566 0
Spring揭秘:Aware接口应用场景及实现原理!
three.js的Gui面板使用方法
three.js的Gui面板使用方法
772 0
|
算法 定位技术
Threejs中使用A*算法寻路导航,Threejs室内室外地图导航
Threejs中使用A*算法寻路导航,Threejs室内室外地图导航
1599 0
Threejs中使用A*算法寻路导航,Threejs室内室外地图导航
|
10月前
|
人工智能 城市大脑 分布式计算
课时7:阿里云ET:人工智能可以是这样的
阿里云ET是阿里巴巴集团研发的超级人工智能,具备智能语音交互、图像视频识别、交通预测、情感分析等技能。作为杭州城市大脑的核心,ET依托强大的计算能力,在城市治理、工业制造、健康医疗等领域广泛应用,成为人类可靠的助手。其卓越的感知与思考能力,使ET在复杂局面下迅速做出最优决策。
419 0
Threejs制作窗户透亮效果
这篇文章讲解了如何在Three.js中制作窗户的透亮效果,包括设置透明材质和光照以实现逼真的窗户渲染效果的技术细节。
343 1
|
Java 定位技术
Threejs路径规划案例V1
这篇文章详细介绍了使用Three.js进行三维路径规划的实现方法,包括设置三维场景、实现车辆避障以及展示规划路径等内容。
361 1
|
存储 算法 机器人
Threejs路径规划_基于A*算法案例V2
这篇文章详细介绍了如何在Three.js中使用A*算法进行高效的路径规划,并通过三维物理电路的实例演示了路径计算和优化的过程。
502 0
Threejs制作大海效果
这篇文章详细介绍了使用Three.js制作大海效果的技术细节,包括创建水面模型、应用波纹纹理以及实现动态波浪效果的方法。
436 0
|
算法
Threejs中使用astar(A*)算法寻路导航,Threejs寻路定位导航
Threejs中使用astar(A*)算法寻路导航,Threejs寻路定位导航
1018 0
Threejs中使用astar(A*)算法寻路导航,Threejs寻路定位导航
【TS】关于v-for数组对象遍历以及在页面上使用提示object类型的问题解决
【TS】关于v-for数组对象遍历以及在页面上使用提示object类型的问题解决
336 0