-m_mesh1js

「-m_mesh1js」の編集履歴(バックアップ)一覧はこちら

-m_mesh1js」(2013/05/03 (金) 20:08:55) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

#javascript(){{ <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" > <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script> <script type="text/javascript" src="http://cdn56.atwikiimg.com/threejs/pub/three_r58.min.js"></script> <script type="text/javascript" src="http://cdn56.atwikiimg.com/threejs/pub/Detector.js"></script> <script type="text/javascript"><!-- $(function(){ var sinit = function(){ var width = 450, height = 120; // シーン var scene = new THREE.Scene(); var sphereGeo = new THREE.SphereGeometry(30,16,16); var sphereBasic = new THREE.Mesh( sphereGeo.clone(), new THREE.MeshBasicMaterial( { color: 0xff0000 } ) ); scene.add( sphereBasic ); sphereBasic.position.set(-100,30,0); var sphereLambert = new THREE.Mesh( sphereGeo.clone(), new THREE.MeshLambertMaterial( { color: 0xff0000, ambient:0xff0000 } ) ); scene.add( sphereLambert ); sphereLambert.position.set(0,30,0); var spherePhong = new THREE.Mesh( sphereGeo.clone(), new THREE.MeshPhongMaterial( { color: 0xff0000, ambient:0xff0000, specular: 0xffffff, shininess:10 } ) ); scene.add( spherePhong ); spherePhong.position.set(100,30,0); spherePhong.material.specular.setHSL(0, 1, 0.85); // 床 var oneWidth = 60, oneHeight = 60, wUnits = 11, hUnits = 11; var groundGeo = new THREE.PlaneGeometry(oneWidth*wUnits, oneHeight*hUnits, wUnits, hUnits); for(var i=0, len = groundGeo.faces.length, f=-1; i<len; i++){ f = -1; if((i/wUnits | 0)%2==1){ f = ~f; } if((i%wUnits)%2==1){ f = ~f; } groundGeo.faces[i].materialIndex = f+1; } var ground = new THREE.Mesh( groundGeo, new THREE.MeshFaceMaterial([ new THREE.MeshBasicMaterial({color: 0x999999, wireframe:true }), new THREE.MeshBasicMaterial({color: 0x4d4d4d, wireframe:true }) ]) ); ground.rotation.x = -Math.PI/2; scene.add(ground); // xyz軸 var axes = new THREE.AxisHelper(100); scene.add( axes ); // ライト var light = new THREE.DirectionalLight( 0xffffff, 1 ); scene.add( light ); light.position.set(80,100,60).normalize(); light.position.default = light.position.clone(); // convenience // 環境光 var light2 = new THREE.AmbientLight( 0xffffff ); light2.color.multiplyScalar(0.4); scene.add( light2 ); // カメラ var scale = 0.7; var camera = new THREE.OrthographicCamera( -width/2*scale, width/2*scale, height/2*scale, -height/2*scale, 1, 1000 ); camera.position.set(0,60,200); camera.lookAt( new THREE.Vector3(0,30,0) ); // レンダラ var renderer = new THREE.WebGLRenderer( { antialias: true } ); renderer.setSize( width, height ); renderer.setClearColor(0xffffff); var container = $('#d0'); container.append( renderer.domElement ); render(); function render(){ renderer.render(scene, camera); } var flg = false; (function(){ flg = true; setTimeout(arguments.callee, 70); })(); var lightBasePos = light.position; $('#sLitPos').append($('<div>').slider({ min: 0, max: 360, value: 0, slide: function(event, ui){ if(flg){ light.position.copy(light.position.default); light.position.applyAxisAngle( new THREE.Vector3(0,1,0), ui.value/360*2*Math.PI ); render(); flg = false; } } }) ); $('#sColorB').append($('<div>').css({'width':'100px', 'background':'#ff0000'}).slider({ min: 0, max: 100, value: 0, slide: function(event, ui){ if(flg){ var cc = sphereBasic.material.color; cc.setHSL(ui.value/100, 1, 0.5); $(this).css({'background':'#'+cc.getHexString()}); render(); flg = false; } } }) ); $('#sColorL').append($('<div>').css({'width':'100px', 'background':'#ff0000'}).slider({ min: 0, max: 100, value: 0, slide: function(event, ui){ if(flg){ var cc = sphereLambert.material.color; cc.setHSL(ui.value/100, 1, 0.5); $(this).css({'background':'#'+cc.getHexString()}); render(); flg = false; } } }) ); $('#sColorP').append($('<div>').css({'width':'100px', 'background':'#ff0000'}).slider({ min: 0, max: 100, value: 0, slide: function(event, ui){ if(flg){ var cc = spherePhong.material.color; cc.setHSL(ui.value/100, 1, 0.5); $(this).css({'background':'#'+cc.getHexString()}); render(); flg = false; } } }) ); $('#sAmbieL').append($('<div>').css({'width':'100px', 'background':'#'+sphereLambert.material.ambient.getHexString()}).slider({ min: 0, max: 100, value: 0, slide: function(event, ui){ if(flg){ var cc = sphereLambert.material.ambient; cc.setHSL(ui.value/100, 1, 0.5); $(this).css({'background':'#'+cc.getHexString()}); render(); flg = false; } } }) ); $('#sAmbieP').append($('<div>').css({'width':'100px', 'background':'#'+spherePhong.material.ambient.getHexString()}).slider({ min: 0, max: 100, value: 0, slide: function(event, ui){ if(flg){ var cc = spherePhong.material.ambient; cc.setHSL(ui.value/100, 1, 0.5); $(this).css({'background':'#'+cc.getHexString()}); render(); flg = false; } } }) ); $('#sSpecuP').append($('<div>').css({'width':'100px', 'background':'#'+spherePhong.material.specular.getHexString()}).slider({ min: 0, max: 100, value: 0, slide: function(event, ui){ if(flg){ var cc = spherePhong.material.specular; cc.setHSL(ui.value/100, 1, 0.85); $(this).css({'background':'#'+cc.getHexString()}); render(); flg = false; } } }) ); var sShiniPVal = $('#sShiniPVal'); $('#sShiniP').prepend( $('<div>').css('width','100px').slider({ min: 0, max: 100, value: 10, slide: function(event, ui){ if(flg){ spherePhong.material.shininess = ui.value; sShiniPVal.text(ui.value); render(); flg = false; } } }) ); //$('#sSpecuP').click(function(){ // if(this.checked){ // spherePhong.material.metal = true; // } else { // spherePhong.material.metal = false; // } //}); }; if ( Detector.webgl ){ init(); }else{ $('#d0').html('<span style="color:red;">あなたが使用中のブラウザはWebGL非対応もしくはWebGLが有効になっていません。</span>'); } }); //--></script> }}
#javascript(){{ <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" > <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script> <script type="text/javascript" src="http://cdn56.atwikiimg.com/threejs/pub/three_r58.min.js"></script> <script type="text/javascript" src="http://cdn56.atwikiimg.com/threejs/pub/Detector.js"></script> <script type="text/javascript"><!-- $(function(){ var sinit = function(){ var width = 450, height = 120; // シーン var scene = new THREE.Scene(); var sphereGeo = new THREE.SphereGeometry(30,16,16); var sphereBasic = new THREE.Mesh( sphereGeo.clone(), new THREE.MeshBasicMaterial( { color: 0xff0000 } ) ); scene.add( sphereBasic ); sphereBasic.position.set(-100,30,0); var sphereLambert = new THREE.Mesh( sphereGeo.clone(), new THREE.MeshLambertMaterial( { color: 0xff0000, ambient:0xff0000 } ) ); scene.add( sphereLambert ); sphereLambert.position.set(0,30,0); var spherePhong = new THREE.Mesh( sphereGeo.clone(), new THREE.MeshPhongMaterial( { color: 0xff0000, ambient:0xff0000, specular: 0xffffff, shininess:10 } ) ); scene.add( spherePhong ); spherePhong.position.set(100,30,0); spherePhong.material.specular.setHSL(0, 1, 0.85); // 床 var oneWidth = 60, oneHeight = 60, wUnits = 11, hUnits = 11; var groundGeo = new THREE.PlaneGeometry(oneWidth*wUnits, oneHeight*hUnits, wUnits, hUnits); for(var i=0, len = groundGeo.faces.length, f=-1; i<len; i++){ f = -1; if((i/wUnits | 0)%2==1){ f = ~f; } if((i%wUnits)%2==1){ f = ~f; } groundGeo.faces[i].materialIndex = f+1; } var ground = new THREE.Mesh( groundGeo, new THREE.MeshFaceMaterial([ new THREE.MeshBasicMaterial({color: 0x999999, wireframe:true }), new THREE.MeshBasicMaterial({color: 0x4d4d4d, wireframe:true }) ]) ); ground.rotation.x = -Math.PI/2; scene.add(ground); // xyz軸 var axes = new THREE.AxisHelper(100); scene.add( axes ); // ライト var light = new THREE.DirectionalLight( 0xffffff, 1 ); scene.add( light ); light.position.set(80,100,60).normalize(); light.position.default = light.position.clone(); // convenience // 環境光 var light2 = new THREE.AmbientLight( 0xffffff ); light2.color.multiplyScalar(0.4); scene.add( light2 ); // カメラ var scale = 0.7; var camera = new THREE.OrthographicCamera( -width/2*scale, width/2*scale, height/2*scale, -height/2*scale, 1, 1000 ); camera.position.set(0,60,200); camera.lookAt( new THREE.Vector3(0,30,0) ); // レンダラ var renderer = new THREE.WebGLRenderer( { antialias: true } ); renderer.setSize( width, height ); renderer.setClearColor(0xffffff); var container = $('#d0'); container.append( renderer.domElement ); render(); function render(){ renderer.render(scene, camera); } var flg = false; (function(){ flg = true; setTimeout(arguments.callee, 70); })(); var lightBasePos = light.position; $('#sLitPos').append($('<div>').slider({ min: 0, max: 360, value: 0, slide: function(event, ui){ if(flg){ light.position.copy(light.position.default); light.position.applyAxisAngle( new THREE.Vector3(0,1,0), ui.value/360*2*Math.PI ); render(); flg = false; } } }) ); $('#sColorB').append($('<div>').css({'width':'100px', 'background':'#ff0000'}).slider({ min: 0, max: 100, value: 0, slide: function(event, ui){ if(flg){ var cc = sphereBasic.material.color; cc.setHSL(ui.value/100, 1, 0.5); $(this).css({'background':'#'+cc.getHexString()}); render(); flg = false; } } }) ); $('#sColorL').append($('<div>').css({'width':'100px', 'background':'#ff0000'}).slider({ min: 0, max: 100, value: 0, slide: function(event, ui){ if(flg){ var cc = sphereLambert.material.color; cc.setHSL(ui.value/100, 1, 0.5); $(this).css({'background':'#'+cc.getHexString()}); render(); flg = false; } } }) ); $('#sColorP').append($('<div>').css({'width':'100px', 'background':'#ff0000'}).slider({ min: 0, max: 100, value: 0, slide: function(event, ui){ if(flg){ var cc = spherePhong.material.color; cc.setHSL(ui.value/100, 1, 0.5); $(this).css({'background':'#'+cc.getHexString()}); render(); flg = false; } } }) ); $('#sAmbieL').append($('<div>').css({'width':'100px', 'background':'#'+sphereLambert.material.ambient.getHexString()}).slider({ min: 0, max: 100, value: 0, slide: function(event, ui){ if(flg){ var cc = sphereLambert.material.ambient; cc.setHSL(ui.value/100, 1, 0.5); $(this).css({'background':'#'+cc.getHexString()}); render(); flg = false; } } }) ); $('#sAmbieP').append($('<div>').css({'width':'100px', 'background':'#'+spherePhong.material.ambient.getHexString()}).slider({ min: 0, max: 100, value: 0, slide: function(event, ui){ if(flg){ var cc = spherePhong.material.ambient; cc.setHSL(ui.value/100, 1, 0.5); $(this).css({'background':'#'+cc.getHexString()}); render(); flg = false; } } }) ); $('#sSpecuP').append($('<div>').css({'width':'100px', 'background':'#'+spherePhong.material.specular.getHexString()}).slider({ min: 0, max: 100, value: 0, slide: function(event, ui){ if(flg){ var cc = spherePhong.material.specular; cc.setHSL(ui.value/100, 1, 0.85); $(this).css({'background':'#'+cc.getHexString()}); render(); flg = false; } } }) ); var sShiniPVal = $('#sShiniPVal'); $('#sShiniP').prepend( $('<div>').css('width','100px').slider({ min: 0, max: 100, value: 10, slide: function(event, ui){ if(flg){ spherePhong.material.shininess = ui.value; sShiniPVal.text(ui.value); render(); flg = false; } } }) ); //$('#sSpecuP').click(function(){ // if(this.checked){ // spherePhong.material.metal = true; // } else { // spherePhong.material.metal = false; // } //}); }; if ( Detector.webgl ){ sinit(); }else{ $('#d0').html('<span style="color:red;">あなたが使用中のブラウザはWebGL非対応もしくはWebGLが有効になっていません。</span>'); } }); //--></script> }}

表示オプション

横に並べて表示:
変化行の前後のみ表示: