<!DOCTYPE html>
<html lang="en">
<head>
<title>three.js - ASCII Effect</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<style>
body {
font-family: Monospace;
background-color: #f0f0f0;
margin: 0px;
overflow: hidden;
}
</style>
</head>
<body> <script src="../build/three.js"></script> <script src="js/controls/TrackballControls.js"></script>
<script src="js/effects/AsciiEffect.js"></script> <script src="js/renderers/Projector.js"></script>
<script src="js/renderers/CanvasRenderer.js"></script> <script src="js/libs/stats.min.js"></script> <script> var container, stats; var camera, controls, scene, renderer; var sphere, plane; var start = Date.now(); init();
animate(); function init() { var width = window.innerWidth || 2;
var height = window.innerHeight || 2; container = document.createElement( 'div' );
document.body.appendChild( container ); var info = document.createElement( 'div' );
info.style.position = 'absolute';
info.style.top = '10px';
info.style.width = '100%';
info.style.textAlign = 'center';
info.innerHTML = 'Drag to change the view';
container.appendChild( info ); camera = new THREE.PerspectiveCamera( 70, width / height, 1, 1000 );
camera.position.y = 150;
camera.position.z = 500; controls = new THREE.TrackballControls( camera ); scene = new THREE.Scene(); var light = new THREE.PointLight( 0xffffff );
light.position.set( 500, 500, 500 );
scene.add( light ); var light = new THREE.PointLight( 0xffffff, 0.25 );
light.position.set( - 500, - 500, - 500 );
scene.add( light ); sphere = new THREE.Mesh( new THREE.SphereGeometry( 200, 20, 10 ), new THREE.MeshPhongMaterial({ color:0xffcc00 }) );
scene.add( sphere ); // Plane plane = new THREE.Mesh( new THREE.PlaneBufferGeometry( 400, 400 ), new THREE.MeshBasicMaterial( { color: 0xffcc00 } ) );
plane.position.y = - 200;
plane.rotation.x = - Math.PI / 2;
scene.add( plane ); renderer = new THREE.CanvasRenderer();
renderer.setClearColor( 0xf0f0f0 );
renderer.setSize( width, height );
// container.appendChild( renderer.domElement ); //注意是effect
effect = new THREE.AsciiEffect( renderer );
effect.setSize( width, height );
container.appendChild( effect.domElement ); stats = new Stats();
container.appendChild( stats.dom ); // window.addEventListener( 'resize', onWindowResize, false ); } function onWindowResize() { camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix(); renderer.setSize( window.innerWidth, window.innerHeight );
effect.setSize( window.innerWidth, window.innerHeight ); } // function animate() { requestAnimationFrame( animate ); stats.begin();
render();
stats.end(); } function render() { var timer = Date.now() - start; sphere.position.y = Math.abs( Math.sin( timer * 0.002 ) ) * 150;
sphere.rotation.x = timer * 0.0003;
sphere.rotation.z = timer * 0.0002; controls.update(); effect.render( scene, camera ); //注意与render区分
//renderer.render(scene,camera); } </script>
</body>
</html>

最新文章

  1. 关于Unity3D手机网游开发一些小看法
  2. java设计优化--代理模式
  3. android webview 底层实现的逻辑
  4. Html5实践之EventSource
  5. (Struts)ActionForm类及表单数据验证
  6. 使用Jvisualvm监控JVM的内存、CPU、线程
  7. Yii表单验证
  8. Android:仿微信开场切换界面
  9. 通过修改ajaxFileUpload.js实现多图片动态上传并实现预览
  10. Oauth1.0认证过程
  11. Java File类应用:递归遍历文件夹和递归删除文件
  12. Running Spark on YARN
  13. Linux创建普通用户以及权限的分配
  14. Redis 主从复制原理及雪崩 穿透问题
  15. 【Python66--checkbutton&amp;】
  16. 18 Zabbix 新增map中的icon图标
  17. SLT 优先队列 哈弗曼树最小带权路径
  18. linux 中的./configuration --prefix=安装路径 的用法(指定源码安装方式的安装路基)
  19. iOS - UITableView加载网络图片 cell适应图片高度
  20. Microsoft DirectX SDK 2010 版本下载

热门文章

  1. 一个电商项目的Web服务化改造4:方案和架构,通用接口的定义和实现
  2. Vue 安装教程
  3. &lt;embed&gt; 标签
  4. 允许MS SqlServer远程连接
  5. sprintf_s函数用法
  6. N天学习一个Linux命令之dmesg
  7. 计算两个日期之间相差的年数月数天数(JS实现)
  8. 通过urllib2抓取网页内容(1)
  9. JEval使用实例
  10. Eclipse ADT 导入别的电脑开发的项目