avatar

Ycyofmine’s Blog

云鸮雨霁

  • 首页
  • 分类
  • 标签
  • 归档
  • 关于
首页 GAMES104-作业2
文章

GAMES104-作业2

发表于 2024/10/18
作者 Ycyofmine
1 分钟阅读

作业文档

GLSL

在 color_grading.frag 文件中,使用的是 GLSL (the OpenGL Shading Language) 变量类型、数学函数与 C++ 相似,但是多了很多图形学计算会用到的变量和函数,详见 Overview of GLSL, the OpenGL Shading Language

由于作业中用到了 texture(aTexture, texCoord) 函数,其实就是查询 aTexture 中坐标或颜色为 texCoord 的颜色。

texture -> vec4

aTexture -> sampler2D or image/animation

texCoord -> vec2

最终代码

void main()
{
    // 获取 LUT 纹理的尺寸
    highp ivec2 lut_tex_size = textureSize(color_grading_lut_texture_sampler, 0);
    highp float _COLORS      = float(lut_tex_size.y); // LUT的每一维的颜色数量
    highp vec4  color        = subpassLoad(in_color).rgba;
    highp float xsize        = float(lut_tex_size.x);//x总长
    
    highp float max_color = _COLORS - 1.0;
    highp float blueoffset   = max_color * color.b;
    highp float redoffset    = max_color * color.r;
    highp float greenoffset  = max_color * color.g;

    highp float u = (redoffset + floor(redoffset) * _COLORS) / xsize;
    highp float v = greenoffset / _COLORS;


    highp vec2 uv = vec2(u, v);

    highp vec4 color_sampled = texture(color_grading_lut_texture_sampler, uv);

    out_color =  color_sampled;
}

主要就是将 color 的范围 $[0, 1]$ 放大到 LUT 的 $[u, v]$ 上。

offset 算的都是 rbg 在一个块的范围下的值。

GAMES104
games104
本文由作者按照 CC BY 4.0 进行授权
分享

最近更新

  • ROS2中并发连接蓝牙手柄排错过程
  • 自行编译ros2-humble-plotjuggler
  • Ubuntu 22.04上蓝牙无法打开——(MT7922网卡为例)
  • Isaac sim遥操作控制
  • RPC:原理、组成与局限性
外部链接
  • codetime
  •  此博客的 Github 仓库

相关文章

2024/11/12

GAMES104 09.高级动画技术:动画树、IK和表情动画

动画混合 Math of Blending: LERP Calculate Blend Weight Align Blend Timeline 把两个循环动画时间归一化,要求动画师对齐两组动画中的关键点。 如果align或者插值没做好,容易出现滑步。 混合空间 1D Blend Space 混合方向,但是没有混合运动速度。 2D Blend S...

2024/11/05

GAMES104 08.游戏引擎的动画技术基础(下)

蒙皮动画的实现:关节与蒙皮 Joint Pose Affine Matrix Orientation 大部分骨骼动画是旋转。 Position Pelvis、特殊的机械结构、facial joints会发生位置的变化。 Scale 对面部进行修改。 Loca...

2024/11/01

GAMES104 08.游戏引擎的动画技术基础(上)

靠,被专周硬控一周,不过好在大概知道C++项目整个流程是什么样的了,也算是有所收获。 2D游戏动画技术 Sprite animation 多张图片顺序播放。 Live 2D 将图片拆分成多个图源,在图源上打上控制点,通过移动控制点来达到图片变换的效果。 3D游戏动画技术 DoF(Degrees of Freedom) 六方向自由度代表可以按 xyz 进行平移或旋转。 Rigid Hi...

GAMES104 06.游戏中地形大气和云的渲染(下)

GAMES104 07.游戏中渲染管线、后处理和其他的一切

© 2025 Ycyofmine. 保留部分权利。

本站采用 Jekyll 主题 Chirpy

热门标签

games104 UE c++ robot OS 装机 计网 essay

发现新版本的内容。