three.js(一)写代码做个球

本文记录了作者学习three.js的过程,重点介绍了如何编写代码创建一个3D球体。通过示例代码和实际效果展示,帮助读者理解和复习three.js的基础知识。
摘要由CSDN通过智能技术生成

最近在看three.js,每一步练习的时候用到的代码都记录一下,方便复习。第一个是最简单的球体,代码和效果如下。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Three.js</title>
    <style>
        *{
            margin:0;
            padding:0;
        }
        canvas{
            width:100%;
            height: 100%;
        }
    </style>
    <script src='https://cdn.bootcss.com/three.js/91/three.min.js'></script>
</head>
<body>
<script>
    //创建场景
    var scene=new THREE.Scene();
    //创建透视投影相机,视角45度,画幅比例 宽比高,近平面距离0.1,远平面1000
    var camera=new THREE.PerspectiveCamera(60,window.innerWidth/window.innerHeight,0.1,1000);
    //创建渲染器
    var renderer=new THREE.WebGLRenderer();
    //渲染器canvas宽高设为与窗口一致
    renderer.setSize(window.innerWidth,window.innerHeight);
    //将渲染器对应的dom元素添加到body中
    documen
可以使用Three.js提供的SphereGeometryMeshPhongMaterial创建一个具有光泽感的体。以下是一个示例代码: ``` <template> <div id="container"></div> </template> <script> import * as THREE from 'three' import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls' export default { mounted() { const container = document.getElementById('container') const scene = new THREE.Scene() const camera = new THREE.PerspectiveCamera( 75, container.clientWidth / container.clientHeight, 0.1, 1000 ) camera.position.z = 5 const renderer = new THREE.WebGLRenderer() renderer.setSize(container.clientWidth, container.clientHeight) container.appendChild(renderer.domElement) const controls = new OrbitControls(camera, renderer.domElement) const sphereGeometry = new THREE.SphereGeometry(1, 32, 32) const sphereMaterial = new THREE.MeshPhongMaterial({ color: 0xffffff, specular: 0x222222, shininess: 25 }) const sphere = new THREE.Mesh(sphereGeometry, sphereMaterial) scene.add(sphere) const ambientLight = new THREE.AmbientLight(0x404040) scene.add(ambientLight) const pointLight = new THREE.PointLight(0xffffff, 1, 100) pointLight.position.set(10, 10, 10) scene.add(pointLight) const animate = function () { requestAnimationFrame(animate) sphere.rotation.x += 0.01 sphere.rotation.y += 0.01 renderer.render(scene, camera) } animate() } } </script> ``` 这个代码在Vue.js项目中使用Three.js创建了一个带有OrbitControls(鼠标交互控制)的场景。可以根据需要修改体的大小、材质等属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值