跳到主要内容
← Shader 学习

Shader 学习 · 模块

Built-In functions

GLSL 内建函数与常用写法:step / fract / mix / smoothstep / dot / clamp…

37 课 · 34 课可实时渲染

  1. 01 FragmentShader 过 2D 片段
  2. 02 Vector Math 只是加法,过 2D 片段
  3. 03 Swizzling 这个词是交换的意思,向量输出接口可以随意调换顺序,简单 2D 片段
  4. 04 UV坐标和统一变量 gl_FragCoord.xy 是某线程在像素渲染时,该像素的显示器坐标 2D 片段
  5. 05 Step 这个方法是判断step(a, b)中,b是否大于a,如果大于a,那么返回1,否则返回0 2D 片段
  6. 06 反向step float invertedStep = 1.0 - step(0.5, uv.x); 代码复盘
  7. 07 max ![[Pasted image 20250510120408.png]] 2D 片段
  8. 08 Step Union ![[Pasted image 20250510121700.png]] 2D 片段
  9. 09 Fract 差不多 2D 片段
  10. 10 Tile Pattern 处理器在实际的扫每一个像素,思考不能从uv开始,而是从“每个像素就是一个线程”开始,在某个像素,我希望它画画,希望它执行pattern代码,那么超出的uv值就缺乏意义,我现在只是希望在我定义的grid中,在对应位置的像素/线程上调用pattern代码并给出预期的输出 2D 片段
  11. 11 Fract - Grid 我的设计则是之前作业的合集:将uv按照想要的比例放大,并用fract检查相对坐标,获取repeateduv, 并写了一个方法描述图案,最后计算了marginscale, 根据需要的像素,在屏幕上的大小,乘以固定方向的比例,再丢进图案方法。 2D 片段
  12. 12 Mod 核心思路:step(mod(floor(uv.x), 3.0), 1.0); 2D 片段
  13. 13 Mix 要求是从0.25的位置开始算 2D 片段
  14. 14 Mix - Bilinear Interpolation 简单 2D 片段
  15. 15 Smoothstep 没有区别 2D 片段
  16. 16 ABS 顺序不一样,但是就是一个思路 2D 片段
  17. 17 ABS - Rhomb 函数的平移,对称,合并 2D 片段
  18. 18 Ceil 完全一致 2D 片段
  19. 19 Int/Floor 我这里在第三次迭代找到了答案,这一次我用的if先跑通然后再做的简化,不能被方法的抽象困住了 2D 片段
  20. 20 Distance/Length 忘了其实已经标准化了,中心坐标就是vec(0.5)。 2D 片段
  21. 21 Aspect Ratio 思路一致,他的更好用 2D 片段
  22. 22 Atan 23: Sin 2D 片段
  23. 23 Sin `<2025/05/18>` 2D 片段
  24. 24 向量标准化 normalize 等价 v/length(v) 2D 片段
  25. 25 Dot 简单,但是要注意,我们实际操作的空间是normalized,显示的画面是扁的,操作的画面是1:1的,所以要换算回来再算。 2D 片段
  26. 26 Clamp y=x的实现:把x当y用就好了 2D 片段
  27. 27 Texture eezz 纹理
  28. 28 材质镜像 我这结论是基本和chatgpt聊出来的 纹理
  29. 29 Discard Discard 方法用来忽略uv栅格 2D 片段
  30. 30 Time sin 的值域-1.0 到1.0,除2是0.5-0.5, 加0.5是0-1。 纹理
  31. 31 Sprite Animation 唯一区别是 float y = mod(floor(frame / 2.0), 4.0);他多做了个mod4。 纹理
  32. 32 Radial Shutter Animation 使用两个不同频率的 `cos()` 控制遮罩与切图节奏,导致不同步; 纹理
  33. 33 dFdx/dFdy dFdx/dFdy本质上是显卡线程之间的通讯。检查隔壁线程在这个值上的区别 纹理
  34. 34 CrossProduct 这个是标准答案了 网格
  35. 35 Branch Divergence 从结果来看没有区别? 纹理
  36. 36 MIP Mapping shader-learning 自学第 45 课:MIP Mapping 代码复盘
  37. 37 MIP Mapping Level Calculation shader-learning 自学第 46 课:MIP Mapping Level Calculation 代码复盘