js 3d流光爱心代码
时间: 2024-10-13 10:06:58 浏览: 51
Unity Shader - 3D流光效果
4星 · 用户满意度95%
在JavaScript中创建3D流光爱心效果通常会涉及到WebGL技术,这是一种用于渲染3D图形的JavaScript API。下面是一个简单的示例,展示了如何使用THREE.js库(一个流行的WebGL库)来创建一个动态的3D爱心流光效果:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>3D Glowing Heart</title>
<script src="https://threejs.org/build/three.min.js"></script>
<style>
body { margin: 0; }
canvas { display: block; }
</style>
</head>
<body>
<canvas id="canvas"></canvas>
<script>
// 创建一个Three.js场景
const scene = new THREE.Scene();
// 定义光照
const light = new THREE.PointLight(0xffffff, 1, 100);
light.position.set(0, 100, 50);
scene.add(light);
// 创建一个相机
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
camera.position.z = 5;
// 渲染器
const renderer = new THREE.WebGLRenderer({ antialias: true });
renderer.setSize(window.innerWidth, window.innerHeight);
document.getElementById('canvas').appendChild(renderer.domElement);
// 爱心几何体
const heartGeometry = new THREE.IcosahedronGeometry(1, 2); // 非常平滑的形状
const heartMaterial = new THREE.PointsMaterial({
color: 0xff0000,
map: new THREE.TextureLoader().load('heart_texture.jpg'), // 自定义纹理
blending: THREE.AdditiveBlending, // 流光效果
sizeAttenuation: false, // 控制点大小随距离变化
vertexColors: THREE.VertexColors // 显示每个顶点的颜色
});
// 创建流光爱心
const heartParticles = new THREE.Points(heartGeometry, heartMaterial);
scene.add(heartParticles);
// 动画函数
function animate() {
requestAnimationFrame(animate);
heartParticles.rotation.x += 0.01;
heartParticles.rotation.y += 0.01;
renderer.render(scene, camera);
}
// 开始动画
animate();
</script>
</body>
</html>
```
请注意,这个示例假设你已经有了一个名为"heart_texture.jpg"的心形纹理图片文件。你可以根据需要替换这个文件路径,并调整其他参数来定制你的流光效果。
阅读全文