three.js学习点滴(1) — 创建场景
来源:互联网 发布:网络系统工程师考试 编辑:程序博客网 时间:2024/06/07 23:55
创建场景直接上代码 :
<!DOCTYPE html><html lang="en"><head><title>CreateScene.html</title></head><body><div id = "container3d"></div><script src="js/three.js"></script><script src="js/OrbitControls.js"></script><script src="js/Detector.js"></script><script src="js/stats.min.js"></script><script>var controls;var container,stats;var camera, scene;var renderer;var mesh, zmesh, geometry;var mouseX = 0, mouseY = 0;var isShowFPS = true;initScene();animate();//初始化场景function initScene(){//场景 scene = new THREE.Scene();//摄像机camera = new THREE.PerspectiveCamera(45,window.innerWidth / window.innerHeight , 1,20000);camera.position.set(0, 180,200);//控制器controls = new THREE.OrbitControls( camera );controls.addEventListener( 'change', render );//灯光var ambientLight = new THREE.AmbientLight(0xffffff); scene.add(ambientLight);// directional lightingvar directionalLight = new THREE.DirectionalLight(0xffffff); //美术场景渲染后,可以不用打这么多灯光了directionalLight.position.set(0, 0, 10);scene.add(directionalLight);//three.js自带的几何体(以平面为例)plane = new THREE.Mesh(new THREE.PlaneGeometry(500 ,500, 8 , 8 ) , new THREE.MeshBasicMaterial({color : 0x000000 , opacity : 0.25 , transparent : false , wireframe : true}));plane.visible = true;plane.position.set(-2 , 1,0);plane.rotation.set(-Math.PI/2,0,0 );scene.add(plane);// 容器 container = document.getElementById("container3d");//渲染器renderer = new THREE.WebGLRenderer({antialias:true});renderer.setSize(window.innerWidth,window.innerHeight);//renderer.setScissor( 200, 200, window.innerWidth, window.innerHeight );//renderer.setViewport( 300, 0, window.innerWidth, window.innerHeight );container.appendChild(renderer.domElement);// 显示帧率if(isShowFPS){stats = new Stats();stats.domElement.style.position = 'absolute';stats.domElement.style.bottom = '0px';stats.domElement.style.zIndex = 100;container.appendChild( stats.domElement );}// SKYBOX/FOG 天空盒子//scene.fog = new THREE.FogExp2( 0x9999ff, 0.00025 ); //是否有雾效果var materialArray = [];materialArray.push(new THREE.MeshBasicMaterial( { map: THREE.ImageUtils.loadTexture( "textures/skybox/px.jpg" ) }));materialArray.push(new THREE.MeshBasicMaterial( { map: THREE.ImageUtils.loadTexture( "textures/skybox/nx.jpg" ) }));materialArray.push(new THREE.MeshBasicMaterial( { map: THREE.ImageUtils.loadTexture( "textures/skybox/py.jpg" ) }));materialArray.push(new THREE.MeshBasicMaterial( { map: THREE.ImageUtils.loadTexture( "textures/skybox/ny.jpg" ) }));materialArray.push(new THREE.MeshBasicMaterial( { map: THREE.ImageUtils.loadTexture( "textures/skybox/pz.jpg" ) }));materialArray.push(new THREE.MeshBasicMaterial( { map: THREE.ImageUtils.loadTexture( "textures/skybox/nz.jpg" ) }));for (var i = 0; i < 6; i++){ materialArray[i].side = THREE.BackSide;}var skyboxMaterial = new THREE.MeshFaceMaterial( materialArray );var skyboxGeom = new THREE.CubeGeometry( 2000, 2000,2000, 1, 3, 1 );var skybox = new THREE.Mesh( skyboxGeom, skyboxMaterial );scene.add( skybox );//红小球精灵var ballTexture = THREE.ImageUtils.loadTexture("textures/ball.png");var ballMaterial = new THREE.SpriteMaterial({map : ballTexture , useScreenCoordinates : true , alignment : THREE.SpriteAlignment.center});ballSprite = new THREE.Sprite(ballMaterial);ballSprite.scale.set(32,32,1.0);ballSprite.position.set(500,500,0);scene.add(ballSprite);//绑定事件window.addEventListener( 'resize', onWindowResize, false );};function onWindowResize() {windowHalfX = window.innerWidth / 2;windowHalfY = window.innerHeight / 2;camera.aspect = window.innerWidth / window.innerHeight;camera.updateProjectionMatrix();renderer.setSize( window.innerWidth, window.innerHeight );}function animate() {requestAnimationFrame( animate );render();controls.update();stats.update();}function render() {renderer.render( scene, camera );}</script></body></html>
运行结果 :
0 0
- three.js学习点滴(1) — 创建场景
- three.js学习点滴0
- 【three.js】创建一个场景
- Three.JS提升学习1:创建场景并渲染三维对象
- three.js学习点滴(2)— 模型导入
- Three.js 中文手册-创建场景
- three.js第二篇【场景创建】
- Three.js学习创建物体
- Three.js创建一个场景(Creating a scene)
- JS学习点滴1
- three.js--如何给一个场景贴图
- Three.JS第一个三维场景建立
- THREE.JS场景基本组件(一)
- 18 Three.js的场景对象
- three.js 01-02 之首个场景
- three.js 02-01 之场景基本功能
- three.js给场景加上阴影
- three.js学习笔记 基础1_1
- 【json】json_encode() 函数介绍
- 在VC++程序中调用DOS命令例子
- LLVM(一):简单介绍
- USACO 1.3 Barn Repair (barn1)
- 编程珠玑--位图在排序中的使用
- three.js学习点滴(1) — 创建场景
- VS2008反汇编小解(转)
- Android之drawable state各个属性详解
- USACO 1.3 Calf Flac (calfflac)
- 判断一个单链表是否有环及环的链接点(转)
- c#中属性和字段的区别?
- map
- VS :对象被多次指定;已忽略多余的指定
- java加密算法