HTML5 画布上的 Three.js 环境灯光(HTML5 Canvas Three.js Ambient Lighting)

HTML5 画布上的 Three.js 环境灯光(HTML5 Canvas Three.js Ambient Lighting)

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)

本文遵循“署名-非商业用途-保持一致”创作公用协议

转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。

HTML5 画布上的 Three.js 环境灯光
HTML5 Canvas Three.js Ambient Lighting

<!DOCTYPE HTML>
<html>
  <head>
    <style>
      body {
        margin: 0px;
        padding: 0px;
      }
    </style>
  </head>
  <body>
    <div id="container"></div>
    <script src="http://www.html5canvastutorials.com/libraries/three.min.js"></script>
    <script defer="defer">
      // revolutions per second
      var angularSpeed = 0.2;
      var lastTime = 0;

      // this function is executed on each animation frame
      function animate(){
        // update
        var time = (new Date()).getTime();
        var timeDiff = time - lastTime;
        var angleChange = angularSpeed * timeDiff * 2 * Math.PI / 1000;
        cube.rotation.y += angleChange;
        lastTime = time;

        // render
        renderer.render(scene, camera);

        // request new frame
        requestAnimationFrame(function(){
            animate();
        });
      }

      // renderer
      var renderer = new THREE.WebGLRenderer();
      renderer.setSize(window.innerWidth, window.innerHeight);
      document.body.appendChild(renderer.domElement);

      // camera
      var camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 1000);
      camera.position.z = 500;

      // scene
      var scene = new THREE.Scene();

      // cube
      var cube = new THREE.Mesh(new THREE.CubeGeometry(200, 200, 200), new THREE.MeshLambertMaterial({
        color: 'blue'
      }));
      cube.overdraw = true;
      cube.rotation.x = Math.PI * 0.1;
      scene.add(cube);

      // add subtle blue ambient lighting
      var ambientLight = new THREE.AmbientLight(0x000044);
      scene.add(ambientLight);

      // directional lighting
      var directionalLight = new THREE.DirectionalLight(0xffffff);
      directionalLight.position.set(1, 1, 1).normalize();
      scene.add(directionalLight);

      // start animation
      animate();
    </script>
  </body>
</html>      

讨论
Discussion

要使用 Three.js 创建环境灯光,我们可以实例化一个 AmbientLight 对象,然后把它添加到场景中。环境灯光需要一个颜色来定义。环境灯光照亮整个场景,可用于柔化位置灯光,诸如 directional 灯光。

To create ambient lighting with Three.js, we can instantiate an AmbientLight object and then add it to the scene.  AmbientLight requires is defined with a color.  Ambient lights illuminate the entire scene and can be used to soften positional lights such as directional lights.

时间: 2024-09-10 10:30:16

HTML5 画布上的 Three.js 环境灯光(HTML5 Canvas Three.js Ambient Lighting)的相关文章

为开发者和设计者准备的 HTML5 文件上传教程

本文主要是收集了一些使用 HTML5 进行文件上传的教程: 纯 HTML5 文件上传 带进度条的 HTML5 文件上传 HTML5 拖放式文件上传的 API 教程 全新的 HTML5 多文件上传 使用 jQuery 的 HTML5 文件上传 HTML5-powered Ajax file uploads HTML5 拖放式多文件上传

通过(Node Js||.Net)基于HTML5的WebSocket实现实时视频文字传输(上)

原文 http://www.cnblogs.com/beyondblog/archive/2013/04/11/3015756.html HTML5 拥有许多引人注目的新特性,如 Canvas.本地存储.多媒体编程接口.WebSocket 等等.虽然现在大家把它捧的很火的样子,但是个人认为它还需要其他平台的支持才能真正的"火起来". 原来做web通信的时候 基于ajax的"轮询" "长轮询"等其他的方式 网上有很详细的解释 轮询: 这是最早的一种

html5画布的上一层添加图片,点击画布上任何一个位置,添加的图片消失

问题描述 html5画布的上一层添加图片,点击画布上任何一个位置,添加的图片消失 最近做一个项目,我现在是用html5添加了一个画布,然后在画布上面添加一层img来显示另外的图片.图片是通过调用文件管理来选取的.但是图片添加上去后点击画布的任何位置添加的图片消失 了.经测试图片并没有放到最底层. 解决方案 这个要具体看你的代码是怎么写的吧

HTML5 2D游戏开发:将事物绘制到画布上并让其运动起来

您还将学习利用http://www.aliyun.com/zixun/aggregation/79228.html"> HTML5 实现动画的最佳方式,如何滚动背景,以及如何实现视差,从而模拟三维效果. 图形和动画是任何视频游戏最根本的方面,所以在本文中,我将从 Canvas2D API 的简要介绍开始,对 Snail Bait 的中央动画的实现进行讨论.在本文中,您将学习如何: 将图像和图形基元绘制到画布上 创建流畅的.无闪烁的动画 实现游戏循环 以帧数每秒为单位监视动画的速度 滚动游戏

《HTML5 canvas开发详解(第2版)》——2.6 在画布上合成

2.6 在画布上合成 合成是指如何精细控制画布上对象的透明度和分层效果.有两个属性可以控制Canvas合成操作:globalAlpha和globalCompositeOperation. globalAlpha:globalAlpha Canvas属性的默认值为1.0(完全不透明),并且可以设置从0.0(完全透明)-1.0的值.这项Canvas属性必须在图形绘制之前设置. globalCompositeOperation:globalCompositeOperation的值在globalalph

《HTML5 Canvas开发详解》——2.6 在画布上合成

2.6 在画布上合成 合成是指如何精细控制画布上对象的透明度和分层效果.有两个属性可以控制Canvas合成操作:globalAlpha和globalCompositeOperation. globalAlpha.globalAlpha Canvas属性的默认值为1.0(完全不透明),并且可以设置从0.0(完全透明)到1.0的值.这项Canvas属性必须在图形绘制之前设置. globalCompositeOperation.globalCompositeOperation的值在globalalph

10个会让你惊叹不已的HTML5画布(CANVAS)技术应用演

  下面的这是10个HTML5画布(canvas)技术效果演示一定会让你惊叹不已.当然,也许你也会认为,过去在老式浏览器中用flash技术也能实现这样的效果.但是,下面的这些演示只使用了现代浏览器里自带技术,完全不需要借助 Flash 或 Silverlight 之类的插件.这种技术门槛的降低必将给这些技术的普及繁荣创造不可或缺的前提保障. (提示:用谷歌浏览器效果最佳) 01. 风好大,吹乱我的发 这是我最喜欢的一样演示,因为里面有一个很可爱的小女孩,似乎是有了人气就更能让人动心.如果你也喜欢

06. Web大前端时代之:HTML5+CSS3入门系列~HTML5 画布

Web大前端时代之:HTML5+CSS3入门系列:http://www.cnblogs.com/dunitian/p/5121725.html 我们先看看画布的魅力:     初始画布 canvas默认是宽300px,高150px; 绘制步骤 1.定义一个id <canvas id="canvasOne" width="300" height="300"></canvas> 2.获取canvas对象 var canvasO

html5 图片上传,支持图片预览、压缩、及进度显示,兼容IE6+及标准浏览器

原文:html5 图片上传,支持图片预览.压缩.及进度显示,兼容IE6+及标准浏览器 以前写过上传组件,见 打造 html5 文件上传组件,实现进度显示及拖拽上传,兼容IE6+及其它标准浏览器,对付一般的上传没有问题,不过如果是上传图片,且需要预览的话,就力有不逮了,趁着闲暇时间,给上传组件添加了单独的图片上传UI,支持图片预览和缩放(通过调整图片的大小以实现图片压缩). 上传组件特点 轻量级,不依赖任何JS库,核心代码(Q.Uploader.js)仅约700行,min版本加起来不到12KB 纯