Visual Studio 2013 Professional の 90 日間の無償評価版をダウンロードしてインストールし、動作確認しました。
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta charset="utf-8" /> <title>App1</title> <!-- WinJS 参照 --> <link href="//Microsoft.WinJS.2.0/css/ui-dark.css" rel="stylesheet" /> <script src="//Microsoft.WinJS.2.0/js/base.js"></script> <script src="//Microsoft.WinJS.2.0/js/ui.js"></script> <!-- App1 参照 --> <link href="/css/default.css" rel="stylesheet" /> <script src="/js/default.js"></script> <script src="/js/three.min65.js"></script> <script src="/js/OrbitControls.js"></script> <script src="/js/user_three.js"></script> <style> #three_area { margin: 20px 0px 0px 190px; width: 850px; height: 400px; border: solid #ffffff 1px; } #title_area { margin: 150px 0px 0px 190px; width: 820px; height: 60px; border: solid #ffffff 1px; font-size: 25px; padding: 15px; } </style> </head> <body> <div id="title_area">Windows 8.1 + Visual Studio 2013 + WebGL + Three.js v65</div> <div id="three_area"></div> <script> var cameraCube, sceneCube; var w = 850; var h = 400; // カメラ作成 USER.camera = new THREE.PerspectiveCamera(70, w / h, 1, 10000); USER.camera.position.set(0, 0, 1); USER.camera2 = new THREE.PerspectiveCamera(50, w / h, 1, 500); USER.camera2.position.z = 0; // シーン作成 USER.scene = new THREE.Scene(); USER.scene2 = new THREE.Scene(); // テクスチャの準備 var path = "/images/"; var format = '.jpg'; var urls = [ path + 'px' + format, path + 'nx' + format, path + 'py' + format, path + 'ny' + format, path + 'pz' + format, path + 'nz' + format ]; // テクスチャの実装 mesh = USER.meshPanorama(urls); USER.scene2.add(mesh); // レンダラー作成 USER.renderer = new THREE.WebGLRenderer(); USER.renderer.setSize(w, h); // 表示エリア設定 document.getElementById("three_area").appendChild(USER.renderer.domElement); // コントロール作成 USER.orbit(); USER.controls.autoRotate = true; USER.controls.autoRotateSpeed = 0.5; //default 2.0 // アニメーション開始 USER.animate(); // オーバーライド USER.animate = function () { requestAnimationFrame(USER.animate); USER.camera2.rotation.copy(USER.camera.rotation); USER.camera2.position.copy(USER.camera.position); USER.controls.update(); USER.renderer.render(USER.scene2, USER.camera2); } </script> </body> </html>
▼ このコードは、実際 WEB 上で動作しているものです。 Three.js : WebGL限定の Cube テクスチャによる『パノラマ背景』 この時の Three.js は v57 で、Windows8.1 で動作確認するにあたり、最新版は v65 でした。しかし、v65 のほうでは OrbitControls.js の内部処理がかなり変更された結果、Windows8.1 上では画面がちらつくので元のコードに近い状態に変更して動作させました。( 373 行目の scope.update(); をコメントにしました ) 以下は、メインコードを簡潔にする為のユーザコードです( user_three.js )
USER = {}; USER.camera = null; USER.scene = null; USER.camera2 = null; USER.scene2 = null; USER.renderer = null; USER.controls = null; USER.animate = function () { requestAnimationFrame( USER.animate ); USER.controls.update(); } USER.render = function() { USER.renderer.render( USER.scene, USER.camera ); } USER.orbit = function() { USER.controls = new THREE.OrbitControls( USER.camera ); USER.controls.addEventListener( 'change', USER.render ); } USER.meshPanorama = function(urls) { var reflectionCube = THREE.ImageUtils.loadTextureCube( urls ); reflectionCube.format = THREE.RGBFormat; // Skybox var shader = THREE.ShaderLib[ "cube" ]; shader.uniforms[ "tCube" ].value = reflectionCube; var material = new THREE.ShaderMaterial( { fragmentShader: shader.fragmentShader, vertexShader: shader.vertexShader, uniforms: shader.uniforms, depthWrite: false, side: THREE.BackSide } ); return new THREE.Mesh( new THREE.CubeGeometry( 100, 100, 100 ), material ); }
|
【Win8 ストアアプリの最新記事】
- C# : HttpClient で Post と Get する汎用 static クラス
- WinJS ストア : Three.js を組み込んで、『画像を飛ばす』テンプレート( Bird.js を利用 )
- WinJS ストア : 『背景画像をチェンジする2画面アプリ』のテンプレート
- VS2012ストア(C#) : WebView テンプレート
- VS2012(C#)ストア : ListView Twitter 検索テンプレート
- イラストを背景にして2ページの画面遷移を解りやすくした Windows Store テンプレート
- Twitter API の自分のアプリのトークンを使って投稿するだけの class VS2012_Twitter
- Win8 ストア(C#) / PDF viewer sample (Windows 8.1)
- ストアアプリの TextBox のスクロールバー
- Win8 ストアアプリの、メモリ上にページを残す画面遷移と、前画面のコントロールの参照
- Win8 ストアアプリで、『選択肢を応答するダイアログ』を簡単に使うための MessageBox クラス
- Win8 ストアから Post 投稿
- Win8ストア XAML の AppBarButtonStyle のContent に指定する 16進数 Unicode の取得
- Win8 ストア : UrlEncode と UrlDecode
- Win8 ストア : HttpClient + XDocument で RSS の取得
- Win8 ストア : リストボックス テンプレート
- Win8 ストア : ファイルアクセス テンプレート
- Win8 ストア : ストアブランク テンプレート
- AppBar テンプレート / Win8 ストアアプリ(C#)
- Windows ストアアプリの AppBar を作成してテストする