美文网首页
四、官方文档入门例子

四、官方文档入门例子

作者: 柳暗花明又一匪 | 来源:发表于2019-04-08 14:53 被阅读0次

看下官方文档入门例子,敲一下。熟悉代码与初步了解。
官方例子

提前准备:npm建立项目,使用node express简单启动

<html>

<head>
    <title>场景、相机、渲染器</title>
    <style>
        * {
            padding: 0;
            margin: 0;
        }

        canvas {
            width: 100%;
            height: 100%
        }

        #info {
            position: absolute;
            top: 10px;
            width: 100%;
            text-align: center;
            z-index: 100;
            display: block;
            color: #ffffff
        }
    </style>
</head>

<body>
    <div id="info">Description</div>
</body>
<script src="three/build/three.js"></script>
<script>
    //场景
    var scene = new THREE.Scene()
    //摄像机
    var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000) //视野角度、长宽比、远剪画面、近剪画面
    //渲染器
    var renderer = new THREE.WebGLRenderer();
    //渲染尺寸
    renderer.setSize(window.innerWidth, window.innerHeight)
    document.body.appendChild(renderer.domElement)

    //------------立方体绘制
    var geometry = new THREE.BoxGeometry(1, 1, 1) // 立方体对象
    var material = new THREE.MeshBasicMaterial({ //材质
        color: 0x00ff00
    })
    var cube = new THREE.Mesh(geometry, material) //网格
    scene.add(cube) //将包含立方体与材质的网格对象放入场景中

    camera.position.z = 5 //移动摄像机

    //-------------绘制线
    var meterial_line = new THREE.LineBasicMaterial({
        color: 0x0000ff
    })
    var geometry_line = new THREE.Geometry()
    geometry_line.vertices.push(new THREE.Vector3(-2, 0, 0))
    geometry_line.vertices.push(new THREE.Vector3(0, 2, 0))
    geometry_line.vertices.push(new THREE.Vector3(2, 0, 0))
    geometry_line.vertices.push(new THREE.Vector3(0, -2, 0))
    geometry_line.vertices.push(new THREE.Vector3(-2, 0, 0))

    var line = new THREE.Line(geometry_line, meterial_line)
    scene.add(line)
 
    //-------------绘制文字
    var loader = new THREE.FontLoader()
    loader.load('three/examples/fonts/helvetiker_regular.typeface.json', function (font) {
        var geometry = new THREE.TextGeometry('Hello three', {
            font: font,
            size: 1,
            height: 0,
            curveSegments: 0,
            // bevelEnabled: true,
            // bevelThickness: 1,
            // bevelSize: 1,
            // bevelSegments: 1
        });
        //创建法向量材质
        var meshMaterial = new THREE.MeshNormalMaterial({
            flatShading: THREE.FlatShading,
            transparent: true,
            opacity: 0.9
        });
        var mesh = new THREE.Mesh(geometry, meshMaterial);
        mesh.position.set(-3, 2.5, 0);
        scene.add(mesh);

    });

    function animate() {
        requestAnimationFrame(animate)
        cube.rotation.x += 0.01
        cube.rotation.y += 0.01
        line.rotation.x += 0.01
        renderer.render(scene, camera) //场景与摄像机渲染
    }
    animate();
</script>

</html>
运行结果

小结:
1.首选需要创建场景、摄像机、渲染器。
2.绘制各种物体都会建立对应的对象,还需要有对应的材质对象。
3.使用THREE.Mesh生成绘制对象,输入到渲染器中
4.字体也是对象的对象,一般都需要引入对象的字体json文件,并在文件加载完成后才能进行渲染操作。
5.暂时尝试的材质的对象方式都可以互相用,只是非对应的材质应用会效果不佳。

相关文章

  • 四、官方文档入门例子

    看下官方文档入门例子,敲一下。熟悉代码与初步了解。官方例子 提前准备:npm建立项目,使用node express...

  • React

    通过React 入门实例教程来快速有一个了解 完成官方文档里的评论的小例子有一个完整的了解 继续看文档及相关例子?...

  • React Native 入门相关文档

    React Native 入门相关文档 官方文档 中文版官方文档 FlexBox讲解 ES5\ES6语法 官方文档...

  • JSON Schema入门

    JsonSchema官方文档入门文档入门文档生成Schema工具 使用Json的好处(什么是Schema): 描述...

  • 01Gin源码解读

    简介 Gin 源码解读, 基于 v1.5.0 版本. 流程总览 官方文档上, 一个入门例子如下: 看上去非常简单...

  • Web App开发--vue.js入门与实践

    1. Vue是什么 vue.js官方文档有中文版,有例子实践,非常容易入门。vue官方对vue.js的定义是: V...

  • Web App开发--vue.js入门与实践

    1. Vue是什么 vue.js官方文档有中文版,有例子实践,非常容易入门。vue官方对vue.js的定义是: V...

  • pandas小案例

    markdown太坑!!本文参见:十分钟快速入门Pandas入门可参照:官方文档入门基础知识可参照:官方文档基础知...

  • 快应用开发资源汇总

    官方文档 入门教程 接口文档 框架文档 官方网站 官方论坛 toolkit 编译工具 调试工具 工具 Quix -...

  • protobuf Python极简入门例子

    protbuf极简入门例子 Google官方的tutorial废话有点多, 而且例子也有点不直观. 自己在官方例子...

网友评论

      本文标题:四、官方文档入门例子

      本文链接:https://www.haomeiwen.com/subject/uuguiqtx.html