关键看一下里面的注释
代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<script src="three.js"></script>
<script type="text/javascript">
//基础知识恶补
//场景(THREE.Scene):
// 是所有不同对象的容器,也就是说该对象保存所有物体、光源、摄像机以及渲染所需的其他对象
//材质: 原文:https://www.cnblogs.com/amy2011/p/6148736.html
// 材质就像物体的皮肤,决定了几何体的外表,例如是否像草地/金属,是否透明,是否显示线框等
// Three.js提供了一个材质基类THREE.Material,该基类拥有three.js所有材质的公有属性
// 材质的公共属性分类:
// 基础属性:ID,name,透明度,是否可见,是否需要刷新等
// 融合属性:决定了物体如何与背景融合
// 高级属性:可以控制WEBGL上下文渲染物体的方法,大多数情况下,是不会用这些属性,我们这里不再讨论
var camera, scene, renderer;
var geometry, material, mesh;
init();
animate();
function init() {
//创建相机
camera = new THREE.PerspectiveCamera(70, window.innerWidth / window.innerHeight, 0.01, 10);
camera.position.z = 1;
//创建场景
scene = new THREE.Scene();
//创建几何体 - 立方体
geometry = new THREE.BoxGeometry(0.2, 0.2, 0.2);//参数:长宽高
//创建材质
material = new THREE.MeshNormalMaterial();
//material.visible = false;//是否可见
material.transparent = true;//是否透明
material.opacity = 0.9;//透明度
//创建网格,几何体是不能被渲染的,只有几何体和材质 结合成网格 才能被渲染到屏幕上
mesh = new THREE.Mesh(geometry, material);
//添加到场景
scene.add(mesh);
renderer = new THREE.WebGLRenderer({ antialias: true });
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
}
function animate() {
requestAnimationFrame(animate);
mesh.rotation.x += 0.01;
mesh.rotation.y += 0.02;
renderer.render(scene, camera);
}
</script>
</body>
</html>
效果:
