Swizzling--OpenGL的向量的灵活组合

Task

Using swizzle reorder pixel's color components from rgba to bgra.
用 swizzle 重新排序像素的颜色组件从 rgba 到 bgra。

Theory

在 GLSL 中,Swizzling 指的是选择和重新排列向量的组件以创建新向量的技术。它允许您以简洁和灵活的方式访问和操作向量的各个组件。Swizzling 是通过使用组件名 x、 y、 z、 w 的组合来实现的,分别引用第一个、第二个、第三个和第四个组件。还可以使用 r,g,b 和 swizzle 掩码来代替 x,y,z,w 来访问向量的分量。Rgba 掩码通常用于处理颜色或纹理数据,因为它对应于通常与颜色信息相关联的红、绿、蓝和 alpha 组件。

示例

ini 复制代码
vec4 position = vec3(1.0, 0.5, 0.2);
float x = position.x; // accesses the x component
float y = position.y; // accesses the y component
float z = position.z; // accesses the z component

vec4 color = vec4(1.0, 0.5, 0.2, 1.0);
// creates a vec3 with the red, green, and blue components
vec3 rgb = color.rgb;
// reorders the components using rgba swizzle
vec4 rgba = color.bgra;
vec3 baseColor = vec3(0.5, 0.3, 0.8);
float alpha = 0.7;
// creates a new color with specified RGB components and alpha
vec4 finalColor = vec4(baseColor.rgb, alpha);

Answer

glsl 复制代码
varying vec4 color;

void main() {
  gl_FragColor = color.bgra;
}

练习

Swizzling

相关推荐
用户92108026286几秒前
3. 给 Bubble 新增一个 Agent Variant
前端
抓不住时间的沙4 分钟前
butterfly主题美化,打造属于自己的个性博客
java·开发语言·前端·javascript·node.js·github
kyriewen14 分钟前
前端切图仔被 AI 新闻淹死的第 N 天,我用 TRAE Work 定时任务救了自己
前端·人工智能·trae
京东云开发者15 分钟前
【全栈实践】第一个 AI Agent 项目:从零搭建 AI 音频创作助手(高级篇)
前端·agent·音视频开发
AbrahamCS33 分钟前
从角色协同到可运行图:Graph Engineer 与多智能体编排
前端·人工智能·智能体
BigTopOne43 分钟前
VS Code IntelliSense 配置(解决 #include 找不到的报红)
前端
愚公搬代码1 小时前
【愚公系列】《Web应用安全》005-Visual Studio Code编辑器的使用
前端·安全·编辑器
用户921080262861 小时前
2. 以 Bubble 为例,看 Ant Design X Vue 组件是怎么设计的
前端
Liora_Yvonne1 小时前
Monorepo 里的 shared、services 和 ui 到底怎么划分?
前端
PedroQue991 小时前
uni-router v2.1.0 升级:导航守卫全面支持返回值模式
前端·uni-app