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

Threejs实现 区块链网络效应

大家好!我是 [数擎 AI],一位热爱探索新技术的前端开发者,在这里分享前端和 Web3D、AI 技术的干货与实战经验。如果你对技术有热情,欢迎关注我的文章,我们一起成长、进步!
开发领域:前端开发 | AI 应用 | Web3D | 元宇宙
技术栈:JavaScript、React、ThreeJs、WebGL、Go
经验经验:6 年+ 前端开发经验,专注于图形渲染和 AI 技术
经验经验:演示地址
开源项目:智简未来、晓智元宇宙、数字孪生引擎 、源码地址

演示地址: https://shader.shuqin.cc/lscczl
源码地址: https://github.com/dezhizhang/shadertoy

代码实现

import * as THREE from 'three';// Vertex Shader
const vertexShader = `
varying vec2 vUv;void main() {vUv = uv;gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
}
`;// Fragment Shader
const fragmentShader = `
#define S(a, b, t) smoothstep(a, b, t)
#define NUM_LAYERS 4.uniform vec3 iResolution;
uniform vec2 iMouse;
uniform float iTime;float N21(vec2 p) {vec3 a = fract(vec3(p.xyx) * vec3(213.897, 653.453, 253.098));a += dot(a, a.yzx + 79.76);return fract((a.x + a.y) * a.z);
}vec2 GetPos(vec2 id, vec2 offs, float t) {float n = N21(id+offs);float n1 = fract(n*10.);float n2 = fract(n*100.);float a = t+n;return offs + vec2(sin(a*n1), cos(a*n2))*.4;
}float df_line(in vec2 a, in vec2 b, in vec2 p) {vec2 pa = p - a, ba = b - a;float h = clamp(dot(pa,ba) / dot(ba,ba), 0., 1.);    return length(pa - ba * h);
}float line(vec2 a, vec2 b, vec2 uv) {float r1 = .04;float r2 = .01;float d = df_line(a, b, uv);float d2 = length(a-b);float fade = S(1.5, .5, d2);fade += S(.05, .02, abs(d2-.75));return S(r1, r2, d)*fade;
}float NetLayer(vec2 st, float n, float t) {vec2 id = floor(st)+n;st = fract(st)-.5;vec2 p[9];int i=0;for(float y=-1.; y<=1.; y++) {for(float x=-1.; x<=1.; x++) {p[i++] = GetPos(id, vec2(x,y), t);}}float m = 0.;float sparkle = 0.;for(int i=0; i<9; i++) {m += line(p[4], p[i], st);float d = length(st-p[i]);float s = (.005/(d*d));s *= S(1., .7, d);float pulse = sin((fract(p[i].x)+fract(p[i].y)+t)*5.)*.4+.6;pulse = pow(pulse, 20.);s *= pulse;sparkle += s;}m += line(p[1], p[3], st);m += line(p[1], p[5], st);m += line(p[7], p[5], st);m += line(p[7], p[3], st);float sPhase = (sin(t+n)+sin(t*.1))*.25+.5;sPhase += pow(sin(t*.1)*.5+.5, 50.)*5.;m += sparkle*sPhase;return m;
}void main() {vec2 fragCoord = gl_FragCoord.xy;vec2 uv = (fragCoord - iResolution.xy * 0.5) / iResolution.y;vec2 M = iMouse.xy / iResolution.xy - 0.5;float t = iTime * 0.1;float s = sin(t);float c = cos(t);mat2 rot = mat2(c, -s, s, c);vec2 st = uv * rot;  M *= rot * 2.0;float m = 0.0;for(float i = 0.0; i < 1.0; i += 1.0 / NUM_LAYERS) {float z = fract(t + i);float size = mix(15.0, 1.0, z);float fade = S(0.0, 0.6, z) * S(1.0, 0.8, z);m += fade * NetLayer(st * size - M * z, i, iTime);}vec3 baseCol = vec3(s, cos(t * 0.4), -sin(t * 0.24)) * 0.4 + 0.6;vec3 col = baseCol * m;gl_FragColor = vec4(col, 1.0);
}
`;// Three.js Scene
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
camera.position.z = 2;const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);const uniforms = {iTime: { value: 0 },iResolution: { value: new THREE.Vector3(window.innerWidth, window.innerHeight, 1) },iMouse: { value: new THREE.Vector2() }
};const material = new THREE.ShaderMaterial({vertexShader,fragmentShader,uniforms
});const plane = new THREE.Mesh(new THREE.PlaneGeometry(window.innerWidth, window.innerHeight), material);
scene.add(plane);// Animation Loop
function animate() {uniforms.iTime.value += 0.05;renderer.render(scene, camera);requestAnimationFrame(animate);
}// Handle Resize
window.addEventListener('resize', () => {renderer.setSize(window.innerWidth, window.innerHeight);camera.aspect = window.innerWidth / window.innerHeight;camera.updateProjectionMatrix();uniforms.iResolution.value.set(window.innerWidth, window.innerHeight, 1);
});// Handle Mouse
window.addEventListener('mousemove', (event) => {uniforms.iMouse.value.set(event.clientX, event.clientY);
});animate();

在这里插入图片描述

相关文章:

Threejs实现 区块链网络效应

大家好&#xff01;我是 [数擎 AI]&#xff0c;一位热爱探索新技术的前端开发者&#xff0c;在这里分享前端和 Web3D、AI 技术的干货与实战经验。如果你对技术有热情&#xff0c;欢迎关注我的文章&#xff0c;我们一起成长、进步&#xff01; 开发领域&#xff1a;前端开发 | A…...

宁德时代C++后端开发面试题及参考答案

请阐述面向对象的三大特性。 面向对象编程有三大特性,分别是封装、继承和多态。 封装是指将数据和操作数据的方法绑定在一起,对数据的访问和操作进行限制。这样做的好处是可以隐藏对象的内部细节,只暴露必要的接口给外部。例如,我们可以把一个汽车类的内部引擎状态、速度等…...

【三维数域】三维数据调度-负载均衡和资源优化

在处理大规模三维数据时&#xff0c;负载均衡和资源优化是确保系统高效运行、提供流畅用户体验的关键。这两者不仅影响到系统的性能和稳定性&#xff0c;还直接决定了用户交互的质量。以下是关于如何在三维数据调度中实现有效的负载均衡和资源优化的详细探讨。 一、负载均衡 负…...

Linux服务器网络丢包场景及解决办法

一、Linux网络丢包概述 在数字化浪潮席卷的当下&#xff0c;网络已然成为我们生活、工作与娱乐不可或缺的基础设施&#xff0c;如同空气般&#xff0c;无孔不入地渗透到各个角落。对于 Linux 系统的用户而言&#xff0c;网络丢包问题却宛如挥之不去的 “噩梦”&#xff0c;频繁…...

【信息系统项目管理师】高分论文:论信息系统项目的采购管理(数据中台项目)

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 1、规划采购管理。2、实施采购3、控制采购2022年3月,我以项目经理的身份参加了xx银行xx省分行的数据中台项目。该项目历时10个月,项目经费500万。通过该项目,我们搭建了数据中台,实现了实时的、灵活可配的数…...

AI语音机器人大模型是什么?

AI语音机器人的大模型通常是指具有庞大参数规模和复杂结构的深度学习模型&#xff0c;这些模型能够处理大量数据并从中学习复杂的模式和关系&#xff0c;从而在语音识别、自然语言处理、语音合成等任务上表现出色。以下是AI语音机器人中大模型的具体介绍&#xff1a; 1.大模型…...

极客说|Azure AI Agent Service 结合 AutoGen/Semantic Kernel 构建多智能体解决⽅案

作者&#xff1a;卢建晖 - 微软高级云技术布道师 「极客说」 是一档专注 AI 时代开发者分享的专栏&#xff0c;我们邀请来自微软以及技术社区专家&#xff0c;带来最前沿的技术干货与实践经验。在这里&#xff0c;您将看到深度教程、最佳实践和创新解决方案。关注「极客说」&am…...

SparrowRTOS系列:链表版本内核

前言 Sparrow RTOS是笔者之前写的一个极简性RTOS&#xff0c;初代版本只有400行&#xff0c;后面笔者又添加了消息队列、信号量、互斥锁三种IPC机制&#xff0c;使之成为一个较完整、堪用的内核&#xff0c;初代版本以简洁为主&#xff0c;使用数组和表作为任务挂载的抽象数据…...

Elasticsearch—索引库操作(增删查改)

Elasticsearch中Index就相当于MySQL中的数据库表 Mapping映射就类似表的结构。 因此我们想要向Elasticsearch中存储数据,必须先创建Index和Mapping 1. Mapping映射属性 Mapping是对索引库中文档的约束&#xff0c;常见的Mapping属性包括&#xff1a; type&#xff1a;字段数据类…...

RabbitMQ高级篇

目录 确保发送者的可靠 为什么需要确保发送者的可靠性 RabbitMQ 的发送者重连机制配置 springAMQP实现发送者确认 MQ的可靠性 为什么需要实现MQ的可靠性&#xff1f; 数据持久化 Lazy Queue 核心思想 总结RabbitMQ 如何保证消息的可靠性 持久化 Lazy Queue 消息…...

R4-LSTM学习笔记

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 LSTM-火灾温度预测 导入数据数据可视化设置X、y构建模型调用模型个人总结LSTM 的基本结构细胞状态&#xff08;Cell State&#xff09;LSTM 的优点 导入数据 i…...

Unity搭配VS Code使用

1.Unity编辑器中设置External Tools为VS Code Edit->Preferces->External Tools->Visual Studio Code 2.VS Code安装Unity插件 快捷键“CtrlShiftX”输入“Unity”点击“Install” 3.下载安装.Net 下载 .NET 8.0 (Linux、macOS 和 Windows) 下载完成后安装.Net输…...

Go Ebiten小游戏开发:井字棋

今天我将分享如何使用 Go 语言和 Ebiten 游戏库开发一个简单的井字棋游戏。Ebiten 是一个轻量级的 2D 游戏库&#xff0c;非常适合用来开发小型游戏。通过这个项目&#xff0c;我们可以学习到如何使用 Ebiten 处理输入、渲染图形以及管理游戏状态。 项目概述 井字棋是一个经典…...

嵌入式系统中的 OpenCV 与 OpenGLES 协同应用

&#x1f3ac; 秋野酱&#xff1a;《个人主页》 &#x1f525; 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 一、OpenCV 在嵌入式中的基石地位二、OpenGLES 为嵌入式图形渲染赋能三、二者协同的精妙之处四、面临的挑战与应对策略 在嵌入式开…...

秒懂虚拟化(二):服务器虚拟化、操作系统虚拟化、服务虚拟化全解析,通俗解读版

秒懂虚拟化&#xff08;一&#xff09;&#xff1a;从概念到网络、存储虚拟化全解析&#xff0c;通俗解读版-CSDN博客这篇文章学习了虚拟化的概念、网络虚拟化和存储虚拟化&#xff0c;本节将继续学习服务器虚拟化、操作系统虚拟化、服务虚拟化。 1、服务器虚拟化 服务器虚拟…...

Java定时任务

在 Java 中&#xff0c;定时任务通常用于在特定时间或间隔执行某个操作。Java 提供了多种方式来实现定时任务&#xff0c;包括使用 Timer 类、ScheduledExecutorService 和 Spring 框架中的定时任务功能。下面将介绍这些常见的方法。 1. 使用 Timer 类 Timer 类可以用来安排任…...

springCloud特色知识记录(基于黑马教程2024年)

目录 Nacos 简介 Nacos 的特点 Nacos 的使用步骤可以查看黑马教程文档&#xff1a;‍‌​‌​&#xfeff;⁠​⁠​​​​​&#xfeff;‬​​​​‍‌&#xfeff;‬⁠​&#xfeff;​‬​​​​‍​&#xfeff;⁠​&#xfeff;​​⁠​​‬​⁠&#xfeff;​​day03-微…...

Linux---shell脚本练习

要求&#xff1a; 1、shell 脚本写出检测 /tmp/size.log 文件如果存在显示它的内容&#xff0c;不存在则创建一个文件将创建时间写入。 2、写一个 shel1 脚本,实现批量添加 20个用户,用户名为user01-20,密码为user 后面跟5个随机字符。 3、编写个shel 脚本将/usr/local 日录下…...

ClickHouse-CPU、内存参数设置

常见配置 1. CPU资源 1、clickhouse服务端的配置在config.xml文件中 config.xml文件是服务端的配置&#xff0c;在config.xml文件中指向users.xml文件&#xff0c;相关的配置信息实际是在users.xml文件中的。大部分的配置信息在users.xml文件中&#xff0c;如果在users.xml文…...

浅谈云计算02 | 云计算模式的演进

云计算计算模式的演进 一、云计算计算模式的起源追溯1.2 个人计算机与桌面计算 二、云计算计算模式的发展阶段2.1 效用计算的出现2.2 客户机/服务器模式2.3 集群计算2.4 服务计算2.5 分布式计算2.6 网格计算 三、云计算计算模式的成熟与多元化3.1 主流云计算服务模式的确立3.1.…...

FMCW激光雷达深度剖析:从硅光芯片到车载落地的技术跃迁

1. FMCW激光雷达的技术本质&#xff1a;从硅光芯片到系统集成 第一次拆解FMCW激光雷达时&#xff0c;我被它的内部结构震撼到了——这哪里是传统意义上的激光雷达&#xff1f;分明是一个高度集成的光通信模块。与传统TOF激光雷达相比&#xff0c;FMCW最核心的突破在于它把测距原…...

百川2-13B-4bits量化模型+OpenClaw:低成本自动化办公方案实测

百川2-13B-4bits量化模型OpenClaw&#xff1a;低成本自动化办公方案实测 1. 为什么选择量化模型OpenClaw组合 去年我接手了一个需要处理大量邮件的项目&#xff0c;每天要花3小时在重复性回复上。当我尝试用OpenClaw自动化流程时&#xff0c;发现原版大模型的显存占用让我的R…...

快速生成eNSP自动化安装脚本原型,用快马AI告别繁琐配置

作为一名经常需要搭建网络实验环境的工程师&#xff0c;我深知华为eNSP安装过程的繁琐。每次在新设备上配置时&#xff0c;手动安装依赖、处理环境变量的过程都让人头疼。最近尝试用InsCode(快马)平台的AI辅助功能后&#xff0c;发现可以快速生成自动化安装脚本原型&#xff0c…...

CATIA中Automotive BiW Fastening模块下焊点坐标高效导出与处理技巧

1. 为什么需要导出焊点坐标&#xff1f; 在汽车白车身&#xff08;BiW&#xff09;设计过程中&#xff0c;焊点坐标的精确获取是连接设计与制造的关键环节。我见过太多工程师在CATIA里一个个手动记录焊点位置&#xff0c;不仅效率低下还容易出错。其实Automotive BiW Fastening…...

量子密钥分发系统的工程实现(四):后处理流程与FPGA硬件加速剖析

1. QKD后处理流程的核心挑战 量子密钥分发&#xff08;QKD&#xff09;系统的后处理流程就像是一场精密的"密钥提纯"手术。想象一下Alice和Bob通过量子信道传递的原始密钥&#xff0c;就像刚从矿场挖出的原石——含有大量杂质&#xff08;误码&#xff09;、存在形状…...

GitHub Copilot 深入实战:从配置到效率翻倍

第一章:GitHub Copilot 入门 1.1 什么是 GitHub Copilot GitHub Copilot 是由 GitHub 与 OpenAI 合作开发的 AI 编程助手,于 2021 年 6 月正式发布。它基于 OpenAI 的 Codex 模型(GPT-4 的专门针对编程任务优化的版本)构建,能够在开发者编写代码时实时提供智能建议和自动…...

大模型微调终极指南:从基础概念到实战技巧

前言 近年来&#xff0c;大语言模型&#xff08;LLM&#xff09;的爆发式发展正在深刻改变人工智能的格局。然而&#xff0c;如何将这些通用模型适配到特定领域和任务&#xff0c;成为了开发者面临的核心挑战。本文将系统性地梳理大模型后训练的核心方法&#xff0c;从监督微调…...

[具身智能-230]:OpenCV常见的“踩坑”有哪些?

在 OpenCV 的开发过程中&#xff0c;确实存在许多容易让人“踩坑”的地方。这些问题往往不涉及复杂的算法原理&#xff0c;而是源于一些反直觉的设计细节或环境配置问题。结合最新的开发实践和常见报错&#xff0c;我为你总结了 OpenCV 开发中最高频的“踩坑”清单&#xff0c;…...

[具身智能-228]:OpenCV的主要功能

OpenCV&#xff08;Open Source Computer Vision Library&#xff09;被誉为计算机视觉领域的“瑞士军刀”。它是一个基于 BSD 许可发行的开源库&#xff0c;提供了超过 2500 个优化算法&#xff0c;涵盖了从底层像素处理到高层视觉理解的完整技术链路。结合最新的技术资料&…...

Grok 4.1 API 完全指南:性能实测、成本测算与接入方案(2026)

上周 xAI 突然放出了 Grok 4.1&#xff0c;我当天晚上就拿到了 API 访问权限。说实话&#xff0c;Elon Musk 的团队这次搞出来的东西让我有点意外——不是那种「又一个 GPT 竞品」的感觉&#xff0c;而是在长上下文和实时信息检索这两个维度上&#xff0c;确实拉开了一些差距。…...