Tile Pattern

Task

Using tiling, repeat the pattern as many times as necessary.
使用平铺,根据需要重复该图案多次。

Theory

通过操纵UV坐标和使用fract功能,您可以在屏幕上创建重复的图案。通过fract获取0,1之间的值,所以可以通过设置行列来获取实际需要切割的Tile模块

示例用法

ini 复制代码
float columns = 2.0;
float rows = 8.0;

// Calculate repeated cells based on UV coordinates
vec2 repeatedUV = fract(uv * vec2(columns, rows));

Answer

glsl 复制代码
uniform vec2 iResolution;

// 原有的单个的纹理
float pattern(vec2 uv) {
  uv = uv * 2.0 - 1.0;
  float t = pow(uv.x * uv.x, 0.3) + pow(uv.y * uv.y, 0.3) - 1.0;
  return step(0.0, t) * t * 10.0 + step(0.2, t);
}

void main() {
  // Normalized pixel coordinates (from 0 to 1)
  vec2 uv = gl_FragCoord.xy / iResolution.xy;
  float columns = 5.0;
  float rows = 3.0;
  vec2 re = fract(uv * vec2(columns, rows));

  // 这边可以替换re为uv查看单个的形状
  gl_FragColor = vec4(pattern(re), 0.0, 0.0, 1.0);
}

效果

练习

Tile Pattern

最后

如果你觉得这篇文章有用,记得点赞、关注、收藏,学Shader更轻松!!

相关推荐
37.2℃9955 小时前
专业的Claude Design解决方案
前端·算法
Jolyne_5 小时前
ng-zorro-table列宽resize后宽度是NaN的源码调试记录
前端
liwulin05065 小时前
【ollama】自定义结构化输出
linux·前端·数据库·ollama
前端甜糖5 小时前
记录We码开发者工具的一个bug
前端·javascript
程序员黑豆5 小时前
鸿蒙应用开发教程:以红绿灯切换为例,掌握条件渲染的核心用法
前端·harmonyos
猫3285 小时前
echarts 日常问题解决
前端·javascript·echarts
新中地GIS开发老师5 小时前
地信职业百科④:GIS开发工程师
前端·数据库·gis·webgis·三维gis开发
我是大卫5 小时前
【图】React源码解析-从数据结构、调度器、源码设计模式到状态计算引擎,深挖useReducer原理
前端·react.js·源码
willes5 小时前
列表中的倒计时组件
前端
LVZ5 小时前
用了半年 AI 写代码,最烦的不是代码,是环境
前端·后端·开源