Three.js的开始(附代码)_2

1 下载Three.js代码

https://github.com/mrdoob/three.js/tree/master/build

2 引用方法

在HTML中添加以下代码:

<script type="text/javascript" src="js/three.js"></script>

3 定义Canvas元素

手动定义Canvas元素(WebGL渲染的需要)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>1</title>
    <script type="text/javascript" src="js/three.js"></script>
    <script>
        function init() {

        }
    </script>
</head>
<body onload="init()">
    <canvas id="mainCanvas" width="400px" height="300px"></canvas>

</body>
</html>

4 定义三大件

三大件指创建一个典型的Three.js程序中至少应包含的三个基本元素:渲染器、场景和照相机。

4.1 渲染器(Renderer)

4.2 场景(Scene)

4.3 照相机(Camera)

他们之间的关系

  场景就像一个舞台,上面可以放各种各样的东西

  渲染器就像舞台上的灯光,它决定了观众看到的东西是是什么样的效果

  照相机就像观众的眼睛,观众站的位置不一样,看到的舞台上的东西也不会完全相同

  而舞台上的东西则需要通过  scene.add() 来放上去

本节完整代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>1</title>
    <script type="text/javascript" src="js/three.js"></script>
    <script>
        function init() {
            // 定义三大件
            var renderer = new THREE.WebGLRenderer(  // 定义渲染器
                {
                    canvas:document.getElementById(‘mainCanvas‘) // 与手动定义的Canvas的id的名字一致
                    /*  也可以通过three.js自行生成Canvas元素
                    renderer.setSize(400,300);
                    document.getElementsByTagName(‘body‘)[0].appendChild(renderer.domElement); */
                }
            );
            renderer.setClearColor(0x000000);  // 将背景色设为黑(清除图像)

            var scene = new THREE.Scene()  // 定义场景

            var camera = new THREE.PerspectiveCamera(45,4/3,1,1000);  // 定义一个透视投影照相机
            camera.position.set(0,0,5);  // 设置照相机的坐标
            scene.add(camera)  // 将照相机添加进场景中

        }
    </script>
</head>
<body onload="init()">
    <canvas id="mainCanvas" width="400px" height="300px"></canvas>

</body>
</html>

 注:本系列Three.js文章主要为《Three.js入门指南》的学习笔记以及一些个人理解,欢迎交流讨论,感谢作者张雯莉~

 OVER~

原文地址:https://www.cnblogs.com/aqin1012/p/11664838.html

时间: 2024-11-06 09:53:50

Three.js的开始(附代码)_2的相关文章

js css样式操作代码(批量操作)

js css样式操作代码(批量操作) 作者: 字体:[增加 减小] 类型:转载 时间:2009-10-09 用js控制css样式,能让网页达到良好的的用户体验甚至是动画的效果.并且考虑到效率. 我们用js书写css样式通常会用下面的两种方式: 一般情况下我们用js设置元素对象的样式会使用这样的形式: 复制代码 代码如下: var element= document.getElementById(”id”); element.style.width=”20px”; element.style.he

js格式化数字实例代码

js格式化数字实例代码:数字往往需要进行一定的格式化,一来是便于阅读,二来是实际需要,比如钱数就常常按千位逗号分隔,下面就是一个这样的函数能够是此功能,并且能够保留指定书目的小数,且自动实现四舍五入效果.代码实例如下: function fmoney(s,n) { n=n>0&&n<=20?n:2; s=parseFloat((s+"").replace(/[^\d\.-]/g,"")).toFixed(n)+"";

原生js阻止事件冒泡代码实例

原生js阻止事件冒泡代码实例:关于什么是事件冒泡这里就不多介绍了,可以参阅javascript事件冒泡简单介绍一章节,任何现象都是双刃剑,有时候利用事件冒泡能够带来便利性,但是有时候也会带来不便,下面就通过带来实例介绍一下如何阻止事件冒泡现象.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" conte

js动态生成css代码

用js动态生成css代码 有时候我们需要利用js来动态生成页面上style标签中的css代码,方法很直接,就是直接创建一个style元素,然后设置style元素里面的css代码,最后把它插入到head元素中.但有些兼容性问题我们需要解决.首先在符合w3c标准的浏览器中我们只需要把要插入的css代码作为一个文本节点插入到style元素中即可,而在IE中则需要利用style元素的styleSheet.cssText来解决.还需要注意的就是在有些版本IE中一个页面上style标签数量是有限制的,如果超

js瀑布流的代码

<!doctype html> <html> <head> <meta charset="utf-8"> <title>Jquery瀑布流布局(每行代码都有详细注释)-作者:刘晓帆</title> <style type="text/css"> body, ul, li, h3 { margin: 0; padding: 0; list-style: none; font: bold

Js弹出窗口代码,window.open方法

<html><script language=JavaScript> <!--function click() {if (event.button==2) {window.open('#','popwindows',"toolbar=no,menubar=no,width=200,height=200")}}document.onmousedown=click//--></script><head><meta http-

大数据量分页存储过程效率测试附代码

在项目中,我们经常遇到或用到分页,那么在大数据量(百万级以上)下,哪种分页算法效率最优呢?我们不妨用事实说话. 测试环境 硬件:CPU 酷睿双核T5750  内存:2G 软件:Windows server 2003    +   Sql server 2005 OK,我们首先创建一数据库:data_Test,并在此数据库中创建一表:tb_TestTable 按 Ctrl+C 复制代码1create database data_Test --创建数据库data_Test 2GO 3use data

【独家】阿里天池IJCAI17大赛第四名方案全解析(附代码)

[独家]阿里天池IJCAI17大赛第四名方案全解析(附代码) https://mp.weixin.qq.com/s?__biz=MzAxMzA2MDYxMw==&mid=2651560625&idx=1&sn=bd8ca61516ac57937e1abf52c6a2cbd6&chksm=805765dbb720eccd660cc2cd727c9761b07ec00c1359a0a12f370331e4449a3caa856f99f245&scene=0&pa

c#万能视频播放器(附代码)

原文:c#万能视频播放器(附代码) c#万能视频播放器 本人之前很多的文章中均提到了使用libvlc为播放器内核制作的播放器,也许有些朋友对此感兴趣,于是我用c#写了一个调用libvlc api实现的万能视频播放器,与大家分享一下.说它“万能”,当然是因为我们站在了vlc的肩膀上. vlc是一个强大而且开源的多媒体播放器,也可以说是一个多媒体平台.它支持非常广泛的媒体格式的本地播放,完全可以媲美mplayer,其对视频网络流的处理能力更是非常强悍.libvlc就是指的vlc的核心,它向外提供了一

PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码

PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码 看看新闻网>看引擎>开源产品 0人收藏此文章, 发表于8小时前(2013-09-06 00:39) , 已有13次阅读 ,共0个评论 依照我一惯得套路,我会先说一点废话. PhoneGap和Cordova什么关系?为什么有的地方叫Cordova而有的地方叫PhoneGap ?PhoneGap是一款HTML5平台.通过它,开发商能够使用HTML.CSS及JavaScript来开发本地移动应用程序.因此,眼下开