// three.js WebGPU 示例代码
// 首先确保你的环境支持WebGPU
if (!navigator.gpu) {
console.error('WebGPU is not supported in this environment');
throw new Error('WebGPU is not supported in this environment');
}
// 引入three.js库
import * as THREE from 'three';
import { WebGPURenderer } from 'three/examples/jsm/renderers/WebGPURenderer';
// 创建场景
const scene = new THREE.Scene();
// 创建相机
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
camera.position.z = 5;
// 创建WebGPU渲染器
const renderer = new WebGPURenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
// 创建一个简单的几何体和材质
const geometry = new THREE.BoxGeometry();
const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
const cube = new THREE.Mesh(geometry, material);
scene.add(cube);
// 渲染循环
function animate() {
requestAnimationFrame(animate);
// 旋转立方体
cube.rotation.x += 0.01;
cube.rotation.y += 0.01;
// 渲染场景
renderer.render(scene, camera);
}
animate();
// 监听窗口大小变化并调整渲染器大小
window.addEventListener('resize', () => {
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize(window.innerWidth, window.innerHeight);
});
import
语句引入Three.js库及其WebGPU渲染器。animate
函数,使用requestAnimationFrame
实现动画效果,使立方体不断旋转并渲染场景。这样你就可以在支持WebGPU的环境中运行一个简单的Three.js应用了。
下一篇:js splice 替换
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站