threeJs学习随笔(一),附百度网盘下载地址

threeJS简介

为了真正能够使用three.js显示任何内容,我们需要三件事:场景相机渲染器,以便我们可以使用相机渲染场景。github地址:https://github.com/mrdoob/three.js,直接下载,会非常慢,出现下载不成功。奉上资源的百度网盘地址:https://pan.baidu.com/s/1d5miM_0qmntxVt8QdvZ8UQ ,密码:mu1r

threeJs的几个核心对象:

  • Scene(场景)
  • Camera(相机)
  • Light(光源)
  • Mesh(模型)
  • Renderer(渲染器)
  • Loader(加载器,用来导入模型)

three.js中常用的语法:

语法描述
new THREE.Scene()创建场景
new THREE.PerspectiveCamera(num,width/height)创建相机,第一个参数是视野。表示看到的场景范围,以度为单位。第二个是长宽比。接下来的两个参数表示近和远裁剪平面,指对象从相机比的值越远远或近于附近将不会被渲染。
new THREE.WebGLRenderer()创建渲染器
renderer.setSize()设置渲染器尺寸
query.appendChild(renderer.domElement)将<canvas>元素添加到dom元素中
new THREE.Mesh(geometry, material)创建一个模型,第一个参数表示几何形状,第二个参数表示材质
scene.add()将参数(模型、光源等对象)添加到场景中
renderer.render(scene, camera)将场景和相机渲染到页面中

一个完整的简单的three.js案例:
在这里插入图片描述
案例代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>My first three.js app</title>
</head>
<body>
    <script src="../js/three.js"></script>
    <script>
    
        init();
        box();
        animate();

        var scene,camera,renderer,cube

        function init(){
            //创建场景
            scene = new THREE.Scene();
            
            //创建相机
            camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
            
            //创建渲染器
            renderer = new THREE.WebGLRenderer();
            //渲染器的尺寸
            renderer.setSize(window.innerWidth, window.innerHeight);
            //将renderer(渲染器)的dom元素(renderer.domElement)添加到我们的HTML文档中。
            //这就是渲染器用来显示场景给我们看的<canvas>元素
            document.body.appendChild(renderer.domElement);
             //默认情况下,当我们调用scene.add()的时候,物体将会被添加到(0,0,0)坐标。但将使得摄像机和立方体彼此在一起。
            //为了防止这种情况的发生,我们只需要将摄像机稍微向外移动一些即可。
            camera.position.z = 5;
        }
        
        function box(){
             //创建一个立方体,我们需要一个BoxGeometry(立方体)对象
             var geometry = new THREE.BoxGeometry(1, 1, 1);
            //材质,来让它有颜色
            var material = new THREE.MeshBasicMaterial({
                color: 0x00ff00
            });
            //Mesh(网格)。 网格包含一个几何体以及作用在此几何体上的材质
            cube = new THREE.Mesh(geometry, material);
            scene.add(cube);
        }

        //“渲染循环”(render loop)或者“动画循环”(animate loop)
        function animate() {
            requestAnimationFrame(animate);
            cube.rotation.x += 0.01;
            cube.rotation.y += 0.01;
            renderer.render(scene, camera);
        }
    </script>
</body>
</html>

下一篇文章来实现 加载3D皮卡丘.obj模型,实现缩放、旋转等功能

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录(共14章) 前言 本书内容 阅读之前的准备 读者对象 致谢 第1章 用Three.js创建你的第一个三维场景 1.1 使用Three.js的前提条件 1.2 获取源代码 1.3 创建HTML页面框架 1.4 渲染并展示三维对象 1.5 添加材质、灯光和阴影 1.6 用动画扩展你的首个场景 1.7 使用dat.GUI库简化试验 1.8 使用ASCII效果 1.9 总结 第2章 使用构建Three.js场景的基本组件 2.1 创建场景 2.2 使用几何和网格对象 2.3 选择合适的相机 2.4 总结 第3章 使用Three.js里的各种光源 3.1 探索Three.js库提供的光源 3.2 学习基础光源 3.3 总结 第4章 使用Three.js的材质 4.1 理解共有属性 4.2 从简单的网格材质(基础、深度和面)开始 4.3 学习高级材质 4.4 线段几何体的材质 4.5 总结 第5章 学习使用几何体 5.1 Three.js提供的基础几何体 5.2 总结 第6章 使用高级几何体和二元操作 6.1 ConvexGeometry 6.2 LatheGeometry 6.3 通过拉伸创建几何体 6.4 创建三维文本 6.5 使用二元操作组合网格 6.6 总结 第7章 粒子和粒子系统 7.1 理解粒子 7.2 粒子、粒子系统和BasicParticleMaterial 7.3 使用HTML5画布格式化粒子 7.4 使用纹理格式化粒子 7.5 从高级几何体中创建粒子系统 7.6 总结 第8章 创建、加载高级网格和几何体 8.1 几何体组合和合并 8.2 从外部资源中加载几何体 8.3 以Three.js的JSON格式保存和加载 8.4 使用Blender 8.5 导入三维格式文件 8.6 总结 第9章 创建动画和移动相机 9.1 基础动画 9.2 使用相机 9.3 变形动画和骨骼动画 9.4 使用外部模型创建动画 9.5 总结 第10章 加载和使用纹理 10.1 在材质中使用纹理 10.2 纹理的高级用途 10.3 总结 第11章 定制着色器和渲染后期处理 11.1 设置后期处理 11.2 后期处理通道 11.3 创建自定义的后期处理着色器 11.4 总结 第12章 用Physijs在场景中添加物理效果 12.1 创建可用Physijs的基本Three.js场景 12.2 材质属性 12.3 基础图形 12.4 使用约束限制对象移动 12.5 总结
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值