|
发表于 2023-10-2 21:37:34
|
显示全部楼层
我添加了阴影效果。
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>3D Rotating Cube with Shadows</title>
- <style>
- body { margin: 0; }
- canvas { display: block; }
- </style>
- </head>
- <body>
- <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
- <script>
- const scene = new THREE.Scene();
- const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
- camera.position.z = 5;
- const renderer = new THREE.WebGLRenderer();
- renderer.setSize(window.innerWidth, window.innerHeight);
- renderer.shadowMap.enabled = true;
- document.body.appendChild(renderer.domElement);
- const geometry = new THREE.BoxGeometry();
- const material = new THREE.MeshStandardMaterial({ color: 0x00ff00 });
- const cube = new THREE.Mesh(geometry, material);
- cube.castShadow = true;
- scene.add(cube);
- const light = new THREE.PointLight(0xffffff, 1, 100);
- light.position.set(10, 10, 10);
- light.castShadow = true;
- scene.add(light);
- const ambientLight = new THREE.AmbientLight(0x404040);
- scene.add(ambientLight);
- function animate() {
- requestAnimationFrame(animate);
- cube.rotation.x += 0.01;
- cube.rotation.y += 0.01;
- renderer.render(scene, camera);
- }
- animate();
- window.addEventListener('resize', function () {
- const width = window.innerWidth;
- const height = window.innerHeight;
- renderer.setSize(width, height);
- camera.aspect = width / height;
- camera.updateProjectionMatrix();
- });
- </script>
- </body>
- </html>
复制代码
如果还不够接近,我可以继续改... |
|