Movatterモバイル変換


[0]ホーム

URL:


Toshio Ehara, profile picture
Uploaded byToshio Ehara
PDF, PPTX7,050 views

Three.jsで3D気分

「HTML5+α @福岡」第18回のLTです。

Embed presentation

Download as PDF, PPTX
Three.jsで3D気分              3D素人でもちょっぴり操作できそう!               HTML5 勉強会@福岡 - 第18回                2012.10.5(金)12年10月7日日曜日
自己紹介              下請けプログラマの江原と言います。              twitter:itokami1123 です。              JavaScriptとObjective-Cが好きです。HTML5やiOSの案              件がありましたら是非仕事ください。              本日お話します3Dについては知ったかぶりですので間              違ってたらビシビシ(優しく)指摘お願いしますね。12年10月7日日曜日
HTML5で3D?          HTML5にはブラウザでスムーズに          3D表示可能なWebGLがつきました。          ちょっと見てみましょう↓          http://alteredqualia.com/three/examples/webgl_cars.html12年10月7日日曜日
すごいですね!12年10月7日日曜日
しかし残念な事にスマートフォンでは、ほぼ使えない状況で        す。http://mobilehtml5.org/        でも来年には使える状況になる可能性があります。        今覚えておけばいつか仕事に困らないかも!12年10月7日日曜日
WebGLはむずい?              ところが.....難しい...              私のようなOpenGLは使った事がない人には              とても扱いが難しいものです。              しかし、なんとか3D表示してみたいなぁと              思う訳です。12年10月7日日曜日
Three.js              そこで「Three.js」を使います。              DOMを便利に操作するjQueryのように              WebGLを扱うライブラリです!12年10月7日日曜日
手に入れよう!        https://github.com/mrdoob/three.js/        ライブラリは、githubから        buildにライブラリが入っています。12年10月7日日曜日
ざっくり仕組み              1) scene      仮想3次元空間                            camara   カメラの目線                            light    照明                            mesh     物              2) renderer   canvasに3Dを描画する機能              3) canvas     描画する場所(2次元)12年10月7日日曜日
よくわかりません。。              なので、ひとつひとつ見て行きましょう。12年10月7日日曜日
scene              Scene(シーン)は、3次元空間を生成し              照明や物、カメラを配置できます。              劇の舞台、htmlのbodyみたいな感じでしょうか。12年10月7日日曜日
renderer              rendererは2次元のcanvasに3次元を描画します。                                                    html                                                     div                     renderer                         canvas                     が描くよ              ※犬の絵は、http://e-poket.com/illust/を使用しています。12年10月7日日曜日
canvas         canvasはhtml5のcanvasです。         3D描画用としてThree.jsがdivの中に生成します。                  html                         div   canvas   Three.jsが               divの                       生成              準備が必要!12年10月7日日曜日
続いて              sceneに配置する物を説明します。12年10月7日日曜日
camera         レンダラーに描いて欲しい目線を教えます。         カメラの 画角, 縦横比, クリッピング手前,クリッピング奥、         位置などを変更すると色々な描画になります。          画角とか?用語がむずかしいですね。。12年10月7日日曜日
camera補足-画角        画角(視野角)とは                              ここ        数字が大きい程広い範囲が見えます              すばらしい参考ブログ:http://www.yomotsu.net/wp/?p=59712年10月7日日曜日
camera補足-クリッピング        クリッピングとは                                             この範囲内が                                                描画対象                  手前                                     奥       無限に手前や奥を描画する訳ではないみたいですね。              すばらしい参考ブログ:http://www.yomotsu.net/wp/?p=59712年10月7日日曜日
light              シーンの中に光を灯す照明です。              位置や明るさを変える事が出来ます。12年10月7日日曜日
mesh         sceneに配置するオブジェクトです。         構造を表す           素材を表す         geometory       material       mesh!                     +              =12年10月7日日曜日
それでは実際に              コーディングして              みましょう!12年10月7日日曜日
htmlの作成        1. ライブラリを配置します。        <script type="text/javascript" src="js/Three.min.js" >        </script>        2. divを用意します。        <div id="threeJsPane" >        <!-- ☆ Three.jsがここに描画するよ☆ -->        </div>12年10月7日日曜日
sceneの書き方              下のように描けば3D空間が生成されます。              var scene = new THREE.Scene();12年10月7日日曜日
lightの書き方        光の色と強さを指定してlightオブジェクトを作ります。        var light = new THREE.PointLight( 色, 強さ );        光源の位置を指定します。        light.position.set( x座標, y座標, z座標 );        シーンに加えます。        scene.add(this.light);12年10月7日日曜日
lightの種類        実は、4種類あるみたいですけど        今回のデモは、なんとなく点光源を選んでます。              環境光            THREE.AmbientLight              平行光源 (無限遠光源)   THREE.DirectionalLight              点光源            THREE.PointLight              スポットライト        THREE.SpotLight12年10月7日日曜日
cameraの書き方     色々指定してcameraオブジェクトを作ります。     var camera = new THREE.PerspectiveCamera( 画角,縦     横比, クリッピング手前, クリッピング奥 );     カメラの座標を指定します     camera.position.set( X座標, Y座標, Z座標 );12年10月7日日曜日
cameraの書き方        カメラの頭の向きを決めます。        どれかを1にしてその他を0にします。        camera.up.set ( up_x, up_y, up_z );        カメラが見つめる座標を指定します。        camera.lookAt( { x:0 , y:0 , z:0 });12年10月7日日曜日
rendererの書き方       レンダラーオブジェクトを生成します。       var renderer = new THREE.WebGLRenderer({antialias:true});       レンダラーが描く絵の横・縦幅を指定します。       ※div要素と同じで良いと思います。       renderer.setSize( 横幅 , 縦幅 );       レンダラーが描く絵の背景の色を指定します。       renderer.setClearColorHex( 色 , 透明度 );       描画先のdiv要素に追加して完成です!       $(div要素).append( $(renderer.domElement) );12年10月7日日曜日
rendererの描き方       レンダラーの描画は以下のようにループさせます。       var animationLoop = function(){         // ☆描画!!         renderer.render( scene, camera );         requestAnimationFrame( animationLoop );       }       animationLoop();12年10月7日日曜日
rendererの動かし方                requestAnimationFrameって何??                setIntervalでも出来るのですけど                ブラウザが裏に回っている時は、                動作しない為、こちらを使った方が                負荷が軽そうです。                ※1秒間に60回描画するみたいです。              参考URL http://d.hatena.ne.jp/calpo/20110523/p112年10月7日日曜日
ここまでを                   動かしてみましょう。              デモURL:http://www.itokami1123.com/Three/20121005/12年10月7日日曜日
なにも出ません!               なんも物を置いてないからです。12年10月7日日曜日
meshの書き方 箱      箱の構造を作成します。      var gemetry = new THREE.CubeGeometry( 幅, 高さ,      奥行き );      つづいて箱の表面の素材を作ります。      (下の例は光を反射する素材です)      var material = new      THREE.MeshLambertMaterial({ color: 色 });12年10月7日日曜日
meshの書き方 箱     合体すると箱メッシュになります。     var box = new THREE.Mesh( gemetry, material );     箱の座標を指定します。     box.position.set( x, y, z );     シーンに箱を登場させます。     this.scene.add(this.box );     どんな箱が出来るか確認してみましょう。         デモURL:http://www.itokami1123.com/Three/20121005/                       BOX_OFFボタンを押す12年10月7日日曜日
meshの書き方 板     地面が無いと寂しいので板を作って地面にしましょう。     板の構造を生成     var geometry = new THREE.PlaneGeometry(幅,高さ);     地面の表面に今回は 画像(jpeg)を使ってみます。     var material = new     THREE.MeshBasicMaterial({     map:THREE.ImageUtils.loadTexture('xxxx.jpg') });12年10月7日日曜日
meshの書き方 板     合体して地面の出来上がり     var floor = new THREE.Mesh( geometry, material );     シーンに登場させましょう     scene.add( floor );         デモURL:http://www.itokami1123.com/Three/20121005/                      FLOOR_OFFボタンを押す12年10月7日日曜日
meshの書き方 モデルデータ     blenderで描いたモデルデータを     変換してシーンに登場させることができます。     まず、blenderに設定が必要です。     ダウンロードしたライブラリの以下を     mrdoob-three.js-ef5f05d/utils/exporters/blender/     2.63/scripts/addons     Blenderの中に貼付けます。     ./Contents/MacOS/2.63/scripts/addons     ※2.63を使っています。12年10月7日日曜日
meshの書き方 モデルデータ      blenderのデータは↓を使わせてもらいました。      ありがとうございます。      http://blog.romatica.com/tag/three-js/12年10月7日日曜日
meshの書き方 モデルデータ        File->Export->Three.jsで出力出来ます。        ※ 手順が悪いのか。。何故かoctcat2.pngが無いエラーが出ますので         octcat.pngをリネームして使いました。12年10月7日日曜日
meshの書き方 モデルデータ     このデータを読み込むには     JSONLoaderオブジェクトを生成します。     var loader = new THREE.JSONLoader();     データの取得元とロード後によばれる関数を用意します。     loader.load( "modelData.js", ロード後呼ばれる関数);12年10月7日日曜日
meshの書き方 モデルデータ     ロード後に、よばれる関数を用意します。     var loadCallBack = function( geometry ){      // geometoryが引数でくるのがポイントです!       var material = new THREE.MeshFaceMaterial();       var mesh = new THREE.Mesh(geometry,material);       // モデルデータを配置すると小さい(大きい時)は      // 以下で大きさを調整できます。       mesh.scale.set( x座標 , y座標 , z座標 );12年10月7日日曜日
meshの書き方 モデルデータ     ロード後よばれる関数を用意します。     var loadCallBack = function( geometry ){      ・・つづき・・         // 箱と同様に位置を設定します         mash.position.set( 0, 0, 25 );         // シーンに登場させましょう!         scene.add( mesh );     }     それでは見てみましょう。         デモURL:http://www.itokami1123.com/Three/20121005/                      OCTCAT_OFFボタンを押す12年10月7日日曜日
今日の内容はココまでです!12年10月7日日曜日
最後まで聞いてくれて              ありがとうございました!12年10月7日日曜日

Recommended

PDF
WebGL and Three.js
PDF
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
PDF
これからのJavaScriptの話
PDF
introduction to Marionette.js (jscafe14)
PDF
メディア芸術基礎 II Canvas + Javascriptで図形を描く
KEY
Core Graphicsでつくる自作UIコンポーネント入門
PPTX
背景にCanvasを動かす
PDF
情報編集(Web) HTML5 実践1 Canvas + Javascriptで図形を描く
PDF
three.js はじめましょ
PDF
Flashup13 Basic Training of Flare3D
PDF
Android上での3D(OpenGL)描画の基礎とNDKによる実践的高速化手法
PDF
Creators'night#13 tech#2今井
PDF
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
PDF
Androidプログラミング初心者のためのゲームアプリ開発入門
PPT
20130924 Picomon CRH勉強会
PDF
Ogre3d 基礎
bykw
 
KEY
iOSプログラマへ。HTML5 Canvasがおもしろい!
PDF
【TechBuzz】第9回cocos2d-x勉強会「シェーダ書いてますか?」
PDF
React で CSS カプセル化の可能性を考える
PDF
DOMイベントの基礎から深淵まで
PDF
Vue.js でタイマーを作る
 
PDF
Flashup 12 Basic Training of Away3D
PDF
Mecha-Mozilla
PDF
Webサイト・フロントエンドの高速化とgrunt.jsについて
KEY
シェーダーしよっ☆ Let's play shaders!
KEY
Sencha study
PDF
覚醒!JavaScript
KEY
Cocos2d Shaders
PDF
スマホにおけるWebGL入門
PDF
シェーダだけで世界を創る!three.jsによるレイマーチング

More Related Content

PDF
WebGL and Three.js
PDF
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
PDF
これからのJavaScriptの話
PDF
introduction to Marionette.js (jscafe14)
PDF
メディア芸術基礎 II Canvas + Javascriptで図形を描く
KEY
Core Graphicsでつくる自作UIコンポーネント入門
PPTX
背景にCanvasを動かす
PDF
情報編集(Web) HTML5 実践1 Canvas + Javascriptで図形を描く
WebGL and Three.js
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
これからのJavaScriptの話
introduction to Marionette.js (jscafe14)
メディア芸術基礎 II Canvas + Javascriptで図形を描く
Core Graphicsでつくる自作UIコンポーネント入門
背景にCanvasを動かす
情報編集(Web) HTML5 実践1 Canvas + Javascriptで図形を描く

What's hot

PDF
three.js はじめましょ
PDF
Flashup13 Basic Training of Flare3D
PDF
Android上での3D(OpenGL)描画の基礎とNDKによる実践的高速化手法
PDF
Creators'night#13 tech#2今井
PDF
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
PDF
Androidプログラミング初心者のためのゲームアプリ開発入門
PPT
20130924 Picomon CRH勉強会
PDF
Ogre3d 基礎
bykw
 
KEY
iOSプログラマへ。HTML5 Canvasがおもしろい!
PDF
【TechBuzz】第9回cocos2d-x勉強会「シェーダ書いてますか?」
PDF
React で CSS カプセル化の可能性を考える
PDF
DOMイベントの基礎から深淵まで
PDF
Vue.js でタイマーを作る
 
PDF
Flashup 12 Basic Training of Away3D
PDF
Mecha-Mozilla
PDF
Webサイト・フロントエンドの高速化とgrunt.jsについて
KEY
シェーダーしよっ☆ Let's play shaders!
KEY
Sencha study
PDF
覚醒!JavaScript
KEY
Cocos2d Shaders
three.js はじめましょ
Flashup13 Basic Training of Flare3D
Android上での3D(OpenGL)描画の基礎とNDKによる実践的高速化手法
Creators'night#13 tech#2今井
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
Androidプログラミング初心者のためのゲームアプリ開発入門
20130924 Picomon CRH勉強会
Ogre3d 基礎
bykw
 
iOSプログラマへ。HTML5 Canvasがおもしろい!
【TechBuzz】第9回cocos2d-x勉強会「シェーダ書いてますか?」
React で CSS カプセル化の可能性を考える
DOMイベントの基礎から深淵まで
Vue.js でタイマーを作る
 
Flashup 12 Basic Training of Away3D
Mecha-Mozilla
Webサイト・フロントエンドの高速化とgrunt.jsについて
シェーダーしよっ☆ Let's play shaders!
Sencha study
覚醒!JavaScript
Cocos2d Shaders

Viewers also liked

PDF
スマホにおけるWebGL入門
PDF
シェーダだけで世界を創る!three.jsによるレイマーチング
PDF
WebGLことはじめ
PDF
GLSLによるシェーダーアートことはじめ
PDF
楽しいShaderToy
PDF
three.jsによる一歩進めたグラフィカルな表現
PDF
Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)
PPTX
パノラマ動画VR再生のあれこれ
PDF
子どもがOculusダメな理由を調べてみた
PDF
ようこそ、HTML5裏APIの世界へ - HTML5 Conference 2013
ODP
Threejs使ってみた
PDF
WebGL (Three.js) Code Lab - Intro. [ GTUG Girls 10th]
PDF
CSS3Rendererを使ってiOSでもサクサク3D
PDF
WebGLとvideoを組み合わせるおもしろい
PDF
今からハジメるHTML5プログラミング
PDF
HTML5など社内勉強会 Vol.3 - 入門JavaScript
PPTX
チョコ溶かす奴
PDF
HTML5の基礎と応用 ~Open Web Platform~ WebSocket / WebRTC / Web Audio API / WebGL 第三版
PDF
【14-D-4】デベロッパー戦国時代!ストーリーをつなぐ開発環境と3つの秘訣
PDF
Grimoire.js Community announcement June 20 2016
スマホにおけるWebGL入門
シェーダだけで世界を創る!three.jsによるレイマーチング
WebGLことはじめ
GLSLによるシェーダーアートことはじめ
楽しいShaderToy
three.jsによる一歩進めたグラフィカルな表現
Rubyで連結リスト使うためのgemを作った(tsukuba.rb版)
パノラマ動画VR再生のあれこれ
子どもがOculusダメな理由を調べてみた
ようこそ、HTML5裏APIの世界へ - HTML5 Conference 2013
Threejs使ってみた
WebGL (Three.js) Code Lab - Intro. [ GTUG Girls 10th]
CSS3Rendererを使ってiOSでもサクサク3D
WebGLとvideoを組み合わせるおもしろい
今からハジメるHTML5プログラミング
HTML5など社内勉強会 Vol.3 - 入門JavaScript
チョコ溶かす奴
HTML5の基礎と応用 ~Open Web Platform~ WebSocket / WebRTC / Web Audio API / WebGL 第三版
【14-D-4】デベロッパー戦国時代!ストーリーをつなぐ開発環境と3つの秘訣
Grimoire.js Community announcement June 20 2016

Similar to Three.jsで3D気分

PDF
Beginning gl.enchant
PDF
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
PDF
IbisPaintのOpenGLES2.0
PDF
簡単!OpenGL ES 2.0フラグメントシェーダー
PPTX
3D で遊ぼう ~C#er も TypeScript で楽々 WebGL~
PDF
Three.js使ってみた
PPTX
WebGL入門ハンズオン資料
PDF
UE4.17で入る新機能を一気に紹介・解説!
PPTX
[Glitch版] 0から始めようWebAR/VR入門ハンズオン with 織りなすラボ
PDF
ex-Workshop06『three.jsを使ってモデリングソフトを試作する』
PDF
Effekseer勉強会 機能解説など
PDF
Web GLの話
PDF
Tamabi media131118
PPTX
はじめてのぽりごん
PDF
Flashup14 Away3d basic material setting
KEY
2012.7.31 第二回 Stage3D 勉強会「モデリングを始めてみよう」
PPTX
Ember.js Tokyo event 2014/09/22 (Japanese)
PDF
Wtidev0227 tmokita
PDF
1. モデリング 3 dcg制作の流れ _ 基礎知識 _ blender入門(2
PPTX
CSSから国民を守る党
Beginning gl.enchant
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
IbisPaintのOpenGLES2.0
簡単!OpenGL ES 2.0フラグメントシェーダー
3D で遊ぼう ~C#er も TypeScript で楽々 WebGL~
Three.js使ってみた
WebGL入門ハンズオン資料
UE4.17で入る新機能を一気に紹介・解説!
[Glitch版] 0から始めようWebAR/VR入門ハンズオン with 織りなすラボ
ex-Workshop06『three.jsを使ってモデリングソフトを試作する』
Effekseer勉強会 機能解説など
Web GLの話
Tamabi media131118
はじめてのぽりごん
Flashup14 Away3d basic material setting
2012.7.31 第二回 Stage3D 勉強会「モデリングを始めてみよう」
Ember.js Tokyo event 2014/09/22 (Japanese)
Wtidev0227 tmokita
1. モデリング 3 dcg制作の流れ _ 基礎知識 _ blender入門(2
CSSから国民を守る党

More from Toshio Ehara

PDF
HTML5のCanvas入門 - Img画像を編集してみよう -
PDF
AngularJSで業務システムUI部品化
PDF
AngularJS入門の巻
PDF
Java電卓勉強会資料
PDF
AngularJS入門の巻2
PDF
iPhoneアプリを Javaで書くよ?
PDF
JavaScriptのテストコード 一緒に勉強しませんか??
PDF
AngularJS+TypeScriptを試してみた。
PDF
【未発表】Backbone.jsとJavaEE7でWebアプリを作ろう!(第1回) 〜GETで一覧編〜
PDF
traceur-compilerで ECMAScript6を体験
PDF
traceur-compilerで未来のJavaScriptを体験
PDF
JenkinsをJava開発でこんな感じで使っています
PDF
BACKBONE.JSにJasmineでテストコード書いてみた (LT資料)
PDF
AngularJSのDirectiveで俺俺タグつくっちゃお
PDF
LT Leap MotionとJavaScriptで遊ぼう!
PDF
BABELで、ES2015(ES6)を学ぼう!
PDF
Java初心者勉強会(2015/08/07)資料
PDF
BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!
PDF
BACKBONE.JSによるWebアプリケーション開発について
PDF
福岡のIT勉強会情報の集め方(LT資料)
HTML5のCanvas入門 - Img画像を編集してみよう -
AngularJSで業務システムUI部品化
AngularJS入門の巻
Java電卓勉強会資料
AngularJS入門の巻2
iPhoneアプリを Javaで書くよ?
JavaScriptのテストコード 一緒に勉強しませんか??
AngularJS+TypeScriptを試してみた。
【未発表】Backbone.jsとJavaEE7でWebアプリを作ろう!(第1回) 〜GETで一覧編〜
traceur-compilerで ECMAScript6を体験
traceur-compilerで未来のJavaScriptを体験
JenkinsをJava開発でこんな感じで使っています
BACKBONE.JSにJasmineでテストコード書いてみた (LT資料)
AngularJSのDirectiveで俺俺タグつくっちゃお
LT Leap MotionとJavaScriptで遊ぼう!
BABELで、ES2015(ES6)を学ぼう!
Java初心者勉強会(2015/08/07)資料
BACKBONEJS+SCSS+JavaEE(JAX-RS) 今風のWebアプリをNetBeansで入門!
BACKBONE.JSによるWebアプリケーション開発について
福岡のIT勉強会情報の集め方(LT資料)

Three.jsで3D気分

  • 1.
    Three.jsで3D気分 3D素人でもちょっぴり操作できそう! HTML5 勉強会@福岡 - 第18回 2012.10.5(金)12年10月7日日曜日
  • 2.
    自己紹介 下請けプログラマの江原と言います。 twitter:itokami1123 です。 JavaScriptとObjective-Cが好きです。HTML5やiOSの案 件がありましたら是非仕事ください。 本日お話します3Dについては知ったかぶりですので間 違ってたらビシビシ(優しく)指摘お願いしますね。12年10月7日日曜日
  • 3.
    HTML5で3D? HTML5にはブラウザでスムーズに 3D表示可能なWebGLがつきました。 ちょっと見てみましょう↓ http://alteredqualia.com/three/examples/webgl_cars.html12年10月7日日曜日
  • 4.
  • 5.
    しかし残念な事にスマートフォンでは、ほぼ使えない状況で す。http://mobilehtml5.org/ でも来年には使える状況になる可能性があります。 今覚えておけばいつか仕事に困らないかも!12年10月7日日曜日
  • 6.
    WebGLはむずい? ところが.....難しい... 私のようなOpenGLは使った事がない人には とても扱いが難しいものです。 しかし、なんとか3D表示してみたいなぁと 思う訳です。12年10月7日日曜日
  • 7.
    Three.js そこで「Three.js」を使います。 DOMを便利に操作するjQueryのように WebGLを扱うライブラリです!12年10月7日日曜日
  • 8.
    手に入れよう! https://github.com/mrdoob/three.js/ ライブラリは、githubから buildにライブラリが入っています。12年10月7日日曜日
  • 9.
    ざっくり仕組み 1) scene 仮想3次元空間 camara カメラの目線 light 照明 mesh 物 2) renderer canvasに3Dを描画する機能 3) canvas 描画する場所(2次元)12年10月7日日曜日
  • 10.
    よくわかりません。。 なので、ひとつひとつ見て行きましょう。12年10月7日日曜日
  • 11.
    scene Scene(シーン)は、3次元空間を生成し 照明や物、カメラを配置できます。 劇の舞台、htmlのbodyみたいな感じでしょうか。12年10月7日日曜日
  • 12.
    renderer rendererは2次元のcanvasに3次元を描画します。 html div renderer canvas が描くよ ※犬の絵は、http://e-poket.com/illust/を使用しています。12年10月7日日曜日
  • 13.
    canvas canvasはhtml5のcanvasです。 3D描画用としてThree.jsがdivの中に生成します。 html div canvas Three.jsが divの 生成 準備が必要!12年10月7日日曜日
  • 14.
    続いて sceneに配置する物を説明します。12年10月7日日曜日
  • 15.
    camera レンダラーに描いて欲しい目線を教えます。 カメラの 画角, 縦横比, クリッピング手前,クリッピング奥、 位置などを変更すると色々な描画になります。 画角とか?用語がむずかしいですね。。12年10月7日日曜日
  • 16.
    camera補足-画角 画角(視野角)とは ここ 数字が大きい程広い範囲が見えます すばらしい参考ブログ:http://www.yomotsu.net/wp/?p=59712年10月7日日曜日
  • 17.
    camera補足-クリッピング クリッピングとは この範囲内が 描画対象 手前 奥 無限に手前や奥を描画する訳ではないみたいですね。 すばらしい参考ブログ:http://www.yomotsu.net/wp/?p=59712年10月7日日曜日
  • 18.
    light シーンの中に光を灯す照明です。 位置や明るさを変える事が出来ます。12年10月7日日曜日
  • 19.
    mesh sceneに配置するオブジェクトです。 構造を表す 素材を表す geometory material mesh! + =12年10月7日日曜日
  • 20.
    それでは実際に コーディングして みましょう!12年10月7日日曜日
  • 21.
    htmlの作成 1. ライブラリを配置します。 <script type="text/javascript" src="js/Three.min.js" > </script> 2. divを用意します。 <div id="threeJsPane" > <!-- ☆ Three.jsがここに描画するよ☆ --> </div>12年10月7日日曜日
  • 22.
    sceneの書き方 下のように描けば3D空間が生成されます。 var scene = new THREE.Scene();12年10月7日日曜日
  • 23.
    lightの書き方 光の色と強さを指定してlightオブジェクトを作ります。 var light = new THREE.PointLight( 色, 強さ ); 光源の位置を指定します。 light.position.set( x座標, y座標, z座標 ); シーンに加えます。 scene.add(this.light);12年10月7日日曜日
  • 24.
    lightの種類 実は、4種類あるみたいですけど 今回のデモは、なんとなく点光源を選んでます。 環境光 THREE.AmbientLight 平行光源 (無限遠光源) THREE.DirectionalLight 点光源 THREE.PointLight スポットライト THREE.SpotLight12年10月7日日曜日
  • 25.
    cameraの書き方 色々指定してcameraオブジェクトを作ります。 var camera = new THREE.PerspectiveCamera( 画角,縦 横比, クリッピング手前, クリッピング奥 ); カメラの座標を指定します camera.position.set( X座標, Y座標, Z座標 );12年10月7日日曜日
  • 26.
    cameraの書き方 カメラの頭の向きを決めます。 どれかを1にしてその他を0にします。 camera.up.set ( up_x, up_y, up_z ); カメラが見つめる座標を指定します。 camera.lookAt( { x:0 , y:0 , z:0 });12年10月7日日曜日
  • 27.
    rendererの書き方 レンダラーオブジェクトを生成します。 var renderer = new THREE.WebGLRenderer({antialias:true}); レンダラーが描く絵の横・縦幅を指定します。 ※div要素と同じで良いと思います。 renderer.setSize( 横幅 , 縦幅 ); レンダラーが描く絵の背景の色を指定します。 renderer.setClearColorHex( 色 , 透明度 ); 描画先のdiv要素に追加して完成です! $(div要素).append( $(renderer.domElement) );12年10月7日日曜日
  • 28.
    rendererの描き方 レンダラーの描画は以下のようにループさせます。 var animationLoop = function(){ // ☆描画!! renderer.render( scene, camera ); requestAnimationFrame( animationLoop ); } animationLoop();12年10月7日日曜日
  • 29.
    rendererの動かし方 requestAnimationFrameって何?? setIntervalでも出来るのですけど ブラウザが裏に回っている時は、 動作しない為、こちらを使った方が 負荷が軽そうです。 ※1秒間に60回描画するみたいです。 参考URL http://d.hatena.ne.jp/calpo/20110523/p112年10月7日日曜日
  • 30.
    ここまでを 動かしてみましょう。 デモURL:http://www.itokami1123.com/Three/20121005/12年10月7日日曜日
  • 31.
    なにも出ません! なんも物を置いてないからです。12年10月7日日曜日
  • 32.
    meshの書き方 箱 箱の構造を作成します。 var gemetry = new THREE.CubeGeometry( 幅, 高さ, 奥行き ); つづいて箱の表面の素材を作ります。 (下の例は光を反射する素材です) var material = new THREE.MeshLambertMaterial({ color: 色 });12年10月7日日曜日
  • 33.
    meshの書き方 箱 合体すると箱メッシュになります。 var box = new THREE.Mesh( gemetry, material ); 箱の座標を指定します。 box.position.set( x, y, z ); シーンに箱を登場させます。 this.scene.add(this.box ); どんな箱が出来るか確認してみましょう。 デモURL:http://www.itokami1123.com/Three/20121005/ BOX_OFFボタンを押す12年10月7日日曜日
  • 34.
    meshの書き方 板 地面が無いと寂しいので板を作って地面にしましょう。 板の構造を生成 var geometry = new THREE.PlaneGeometry(幅,高さ); 地面の表面に今回は 画像(jpeg)を使ってみます。 var material = new THREE.MeshBasicMaterial({ map:THREE.ImageUtils.loadTexture('xxxx.jpg') });12年10月7日日曜日
  • 35.
    meshの書き方 板 合体して地面の出来上がり var floor = new THREE.Mesh( geometry, material ); シーンに登場させましょう scene.add( floor ); デモURL:http://www.itokami1123.com/Three/20121005/ FLOOR_OFFボタンを押す12年10月7日日曜日
  • 36.
    meshの書き方 モデルデータ blenderで描いたモデルデータを 変換してシーンに登場させることができます。 まず、blenderに設定が必要です。 ダウンロードしたライブラリの以下を mrdoob-three.js-ef5f05d/utils/exporters/blender/ 2.63/scripts/addons Blenderの中に貼付けます。 ./Contents/MacOS/2.63/scripts/addons ※2.63を使っています。12年10月7日日曜日
  • 37.
    meshの書き方 モデルデータ blenderのデータは↓を使わせてもらいました。 ありがとうございます。 http://blog.romatica.com/tag/three-js/12年10月7日日曜日
  • 38.
    meshの書き方 モデルデータ File->Export->Three.jsで出力出来ます。 ※ 手順が悪いのか。。何故かoctcat2.pngが無いエラーが出ますので  octcat.pngをリネームして使いました。12年10月7日日曜日
  • 39.
    meshの書き方 モデルデータ このデータを読み込むには JSONLoaderオブジェクトを生成します。 var loader = new THREE.JSONLoader(); データの取得元とロード後によばれる関数を用意します。 loader.load( "modelData.js", ロード後呼ばれる関数);12年10月7日日曜日
  • 40.
    meshの書き方 モデルデータ ロード後に、よばれる関数を用意します。 var loadCallBack = function( geometry ){ // geometoryが引数でくるのがポイントです! var material = new THREE.MeshFaceMaterial(); var mesh = new THREE.Mesh(geometry,material); // モデルデータを配置すると小さい(大きい時)は // 以下で大きさを調整できます。 mesh.scale.set( x座標 , y座標 , z座標 );12年10月7日日曜日
  • 41.
    meshの書き方 モデルデータ ロード後よばれる関数を用意します。 var loadCallBack = function( geometry ){  ・・つづき・・ // 箱と同様に位置を設定します mash.position.set( 0, 0, 25 ); // シーンに登場させましょう! scene.add( mesh ); } それでは見てみましょう。 デモURL:http://www.itokami1123.com/Three/20121005/ OCTCAT_OFFボタンを押す12年10月7日日曜日
  • 42.
  • 43.
    最後まで聞いてくれて ありがとうございました!12年10月7日日曜日

Editor's Notes


[8]ページ先頭

©2009-2025 Movatter.jp