当前位置: 首页 > article >正文

看Threejs好玩示例,学习创新与技术(GridDistortionEffect)

示例来自Grid Displacement Texture | Codrops (tympanus.net)。原以为比较容易,一上手发现技术要求挺深。可参考使用 Three.js GPGPU 和着色器的 RGB Shift 网格置换纹理 (tympanus.net)进行内容解析。

本文未完结...

1、恐怖的效果

GridDistortionEffect的意思是网格失真效果。鼠标在场景移动的时候,图片会展示出网格状,并且给网格赋予一种眩晕颜色。这个效果非常适合放在悬疑片的开头。

20240924_224651

2、学习策略

对本文涉及的技术,如果不经过调试,其实是比较难分析问题的。对glsl的调试,最佳策略就是修改gl_FragColor的输出,因为它可以反推哪些参数在影响效果。还有大家还需要注意一点,随着ChatGPT的发展及应用,了解每一行代码已经不那么重要。核心是培养观察力和逻辑组织能力。

3、什么是GPUComputationRenderer

承接第二节,我们分析如下glsl。先尝试对A讨论点的代码进行注释 。

void main()
{
    //B讨论点
    vec2 uv = gl_FragCoord.xy/resolution.xy;

    vec4 color = texture(uGrid,uv);
    float dist = distance(uv,uMouse);
    dist = 1.-(smoothstep(0.,uDistance/uGridSize,dist));
    vec2 delta = uDeltaMouse;

    //A讨论点
    color.rg+=delta*dist;
    //调试的时候对这里注释
    color.rg*=min(uRelaxation,uMouseMove);

    gl_FragColor = color;
}

 结果发现渲染得到的效果如下——每个网格色块它回不去了!而根据纹理采样的一般逻辑,如果外部不加影响参数,纹理效果应该是可以回去的。为什么呢?

原因就在该着色器采用的纹理不是一般的纹理,而是由 GPUComputationRenderer 创建的内存纹理。GPUComputationRenderer 会继续使用上一次的纹理作为新的输入,因此不重置的情况系,就等于在一块画板永远的画下去。其中min(uRelaxation,uMouseMove)的作用就是把color.rg慢慢的置为0。

GPUComputationRenderer它通过 WebGL 或 OpenGL 的 framebuffer 对象,可以将计算结果存储为纹理,并作为输入传递给后续的渲染步骤。

关于GPUComputationRenderer的使用可以直接询问ChatGPT。

GPUComputationRenderer一个典型案例是ThreeJS中鸟类飞行模拟(webgl_gpgpu_birds)。

未完待续..


http://www.kler.cn/a/319339.html

相关文章:

  • 软件测试面试大全(含答案+文档)
  • 基于海思soc的智能产品开发(两个图像处理来源)
  • 记录使用documents4j来将word文件转化为pdf文件
  • 探索Python的HTTP利器:Requests库的神秘面纱
  • 【计算机网络】【网络层】【习题】
  • python: postgreSQL using psycopg2 or psycopg
  • [Redis][List]详细讲解
  • 秋分之际,又搭建了一款微信记账本小程序
  • 大模型智能体在金融公告理解领域的应用 | OPENAIGC开发者大赛高校组AI创新之星奖
  • 宠物空气净化器和普通的空气净化器有区别吗?哪款能吸猫毛
  • Excel的基本应用__1
  • 牛客周赛 Round 60
  • 数据结构——二叉搜索树、Map和Set
  • 【Unity基础】Unity常见数据管理方案总结
  • 虚拟机屏幕分辨率自适应VMWare窗口大小
  • 继承
  • 【计算机网络 - 基础问题】每日 3 题(二十一)
  • 如何全局修改Git的邮箱、用户名?
  • Redis面试笔记
  • 教授【优青】团队亲自指导!提供专业实验设计、数据分析、SCI论文辅助等全方位服务
  • c++中修改const变量的方法和const类成员函数修改类成员变量的方法
  • Qt 状态机编程,双层状态机,实现暂停恢复
  • awk 切割字符串 shell linux
  • 深入解析 Apache Kylin
  • Python解析非参数检验
  • 节日庆典中的白酒文化,传承与创新并存