呜啦!日常碎碎念,偶尔掉落优质前端博文推荐、学习资源等
网页:https://tg.cosine.ren
本频道的搜索Bot 来辣 👉 @cosSearchBot
私聊直接发消息就可以搜索啦~
🔖tags
#优质博文 #资源推荐 #博客更新 #碎碎念 #项目更新 #手工 #书摘 #阮一峰的科技周刊 #新动态

图频:Cosine 🎨 Gallery @CosineGallery
猫片: @cosine_cat
联系频道主:@cosine_yu
#优质博文 #WebGL #GSAP #three #r3f #前端 #动画 #趣站
太有创意了。
网站:https://www.romanjeanelie.com/
文章:Letting the Creative Process Shape a WebGL Portfolio

AI 摘要:这篇文章详细记录了制作 WebGL 个人作品集的全过程。文章展现了一个从最初构想到最终实现的探索旅程。文中涉及诸多技术,包括 Next.js、Three.js、React Three Fiber 以及 GSAP(含 MorphSVG 插件),并分享了多个实现细节,如 Fold 效果、MeshPortal 场景嵌入系统、基于滚动速度的 Shader 动效,以及 SVG 到 Canvas 的性能优化。最终,作品以戏剧化的视觉语言融合作者在戏剧、电影与编程三重背景下的美学追求。

[以下是方便搜索索引的大纲(AI 生成),请读原文]
1. 起点:Fold 效果与创意萌芽
• 以 Vector Projection 实现自由方向的折叠效果
• Shader 中的假阴影计算增加立体感
• 从最初“主特效”到成为创意起点的自我修正

2. 构建中:角色与 MeshPortal 系统
• 创建带角色的屏幕,利用 Mixamo 动作资源
• 引入 MeshPortal 技术,将独立 3D 场景限制在屏幕范围内
• 建立系统实现 WebGL 与 DOM 布局同步(mask 区域)
• 采用 hash-based 导航配合 GSAP 动画实现平滑过渡

3. 节奏延伸:让角色起舞与滚动动效
• 通过基于速度的 Stretch Shader 让文字响应滚动加速度
• 利用 depth-aware 动线制造空间层次
• 前端 JS 调控 Shader uniform 实现自然的运动衰减与模糊

4. 创意突破:不再拘泥于“屏幕”
• 从平面屏幕过渡到文字形态(Morphing Plane to Text)
• 借助 GSAP MorphSVG 插件实现路径平滑过渡
• 优化性能:通过 Canvas 渲染替代 SVG DOM 调用,保持 60fps
• 将“WHO” 文字转化为剧场式的舞台: Cinema、Theater、Code 三部分,用视频投影营造剪影效果

5. 闭环:Contact 页与「MEET ME」交互收尾
• 通过算得精确的 DOM 与 WebGL 匹配 mask 完成动态过渡
• 使用 GSAP 的 back.out 缓动创造富表现力的弹性动画
• 利用镜头视角(FOV)和空间深度营造收尾的视觉叙事
• 以贴纸元素作为呼应起点的个人符号,为项目画上圆满句号

6. 总结与思考
• 作品的发展不是强行设计,而是对“创意呼吸”的倾听
• 通过“让过程塑形”,实现技术与自我表达的统一
• 最终成果是一种情感与视觉共鸣的体验,而非单纯代码演示


author Roman Jean-Elie
#优质博文 #webgl #r3f #性能优化 #react
Three.js Instances: Rendering Multiple Objects Simultaneously

AI 摘要:本文详细介绍了在 Three.js 中使用实例化(Instancing)技术来优化性能,同时渲染多个对象。通过实例化,可以将多个共享相同几何形状和材质的对象合并为一个绘制调用(Draw Call),显著减少 CPU 到 GPU 的通信开销,从而提升渲染效率。文章结合 React Three Fiber 和 drei 库,提供了从基础实例化到复杂场景(如森林渲染)的完整教程,涵盖了自定义着色器、实例属性调整以及多种实例集的实现方法。

1. 引言:介绍了实例化的基本概念及其性能优势。实例化允许在一次绘制调用中渲染多个共享几何形状和材质的对象,例如渲染森林中的树木、岩石和草地时,可以大幅减少绘制调用次数,提升性能。
2. 基础实例化:以渲染一千个盒子为例,展示了传统方法与使用 drei/instances 的实例化方法的对比。传统方法需要一千次绘制调用,而实例化方法仅需一次,显著优化了性能。
3. 多组实例化:讨论了如何使用 drei 的 createInstances() 函数创建多个实例集,例如同时渲染盒子和球体(一千个盒子与一千个球体),最终仅需两次绘制调用。
4. 自定义着色器的实例化:讲解了如何为实例化对象创建自定义着色器材料,包括顶点动画(如 blob 效果)。通过 instanceMatrix 属性解决位置重叠问题,确保每个实例有独立的变换。
5. 调整实例属性:介绍了如何通过 InstancedAttribute 为每个实例设置自定义属性,例如为 blob 动画添加时间偏移(timeShift),实现独立动画效果。
6. 创建森林场景:以渲染一千棵树为例,展示了如何加载 3D 模型并应用实例化技术,最终仅用三次绘制调用完成整个森林场景(包括天空盒和地面)。还通过随机位置、高度和旋转增加场景多样性。
7. 进一步阅读:提及了未深入探讨但值得关注的主题,如批量网格(Batched Meshes)、骨骼动画(Skeletons)以及变形(Morphing)与批量网格的结合。


author Matias Gonzalez Fernandez
#demo #前端 #webgl #r3f
Animations with React-Three-Fiber
Demo | GitHub
Bring static visuals to life with rotating textures, 3D geometry, and smooth motion powered by React Three Fiber.
使用旋转纹理、3D 几何图形和由 React Three Fiber 驱动的平滑运动,将静态视觉效果赋予生命力。
Media is too big
VIEW IN TELEGRAM
 
 
Back to Top