GLSL ES 提供了丰富灵活的方式来创建矢量,比如:
//将v3设为(1.0, 0.0, 0.5)vec3 v3 = vec3(1.0, 0.0, 0.5);
//使用v3的前两个元素,v2为(1.0, 0.0)
vec2 v2 = vec2(v3);
//将v4设为(1.0, 1.0, 1.0, 1.0)
vec4 v4 = vec4(1.0);
还可以将多个矢量组合成一个矢量,比如:
//将v4设为(1.0, 0.0, 1.0, 1.0)vec4 v4b = vec4(v2, v4);
这里的规则是先把第一个参数v2中的所有元素填充进来,如果还未填满,就继续用第2个参数v4中的元素填充。
需要注意矩阵中的元素是按照列主序排列的,看下面几个例子显示使用了矩阵构造函数的不同方式。
mat4 m4 = mat4(1.0, 2.0, 3.0, 4.0,
5.0, 6.0, 7.0, 8.0,
9.0, 10.0, 11.0, 12.0,
13.0, 14.0, 15.0, 16.0);
对应的矩阵:
vec2 v2_1 = vec2(1.0, 3.0);
vec2 v2_2 = vec2(2.0, 4.0);
mat2 m2_1 = mat2(v2_1, v2_2);
对应的矩阵:
// 使用两个浮点数和一个vec2
mat2 = mat2(1.0, 3.0, v2_2);
mat4 m4 = mat4(1.0);
如果传入的数值元素大于1个,又没达到矩阵元素的数量就会出错,如下:
mat4 m4 = mat4(1.0, 2.0, 3.0); // 错误,mat4需要16个元素
本文分享自 Creator星球游戏开发社区 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有