SlideShare a Scribd company logo
1 of 11
Download to read offline
プロジェクト 中間発表
取組内容
主にJavaScript(WebGL) , PHP を利用し、.objモデルをインタラクティブにプレ
ビュー表示し、配布するWebサービスの開発を行う。
同時に3DCGプログラミングの深い理解も行う。
サービス例 : http://www.turbosquid.com/3d-models/
HTML5のcanvas要素を利用して、ユーザーがアップロードしたオブジェ
クトファイルをインタラクティブに3DCG表示。
ページへジャンプ
後でPHPによるユーザー処理等を行う予定のため、それに適した配置、
HTMLクラス、ID分けを行っている。
内部処理(JavaScript)
今回の3Dオブジェクト表示の流れ
1. .objファイルから頂点位置情報(ローカル座標系)を取得
2. これらの頂点情報から、対応する数値列を生成(JSON形式)
3. それらの配列を頂点シェーダに受け渡す(座標変換処理)
4. レンダリング(再帰によるアニメーション処理)
※今回は3DCGプログラミング理解の為three.jsといったライブラリを使
用していないので、かなりめんどくさい手順を踏んでいます。
1. .objファイルから頂点位置情報を取得
.objファイルの保存形式
1. .objファイルから頂点位置情報を取得
今回使用したcube.obj(右画像)
このデータをサーバーディレクトリから取得す
る為にAjaxなるものを使用。
2. 頂点情報から、対応する数値列を生成
.objファイルから読み込んだ情報を、JavaScript上で扱いやすいよう
にJSON形式にすると同時に配列に格納。
※ ここで致命的な穴に気付く
ファイルをJavaScriptで扱う都合上、ページ閲覧者にモデルデータが
筒抜けである。
→ これによりWebGLによってモデルプレビューができる配布
サイトが存在しなかったのでは?と推測。
解決策 : PHPでファイル読み込み→ JavaScriptに変数受け渡し
3. 配列を頂点シェーダに受け渡す
WebGLには固定機能パイプラインが存在しない。
→ シェーダを自前で用意しなければならない(GLSL)
頂点シェーダと
フラグメントシェーダを
自前でHTMLの
script要素に用意
4. レンダリング
シェーダによって正常に座標変換、色変換された最終的なモデル
をCanvas上にレンダリング。
再帰処理によって逐次y軸回転させている。
また、マウス操作によって視点を変えることも可能
(これらは変更が加えられた毎に座標変換を行っている)
予定ワークフロー
1. HTML(CSS)/JavaScriptでウェブページを用意
→ ダウンロード、アップロード、オブジェクト一覧ページ
2. .objファイルをWebGLを用いてWebページに3D表示
→ マウスによるカメラ視点操作も可能にさせる予定。
3. PHPを用いて会員登録システムを導入。
4. SQLデータベースによる.objファイルの保存?及び会員とオブジェクトの結び付
け
→ 難しそう
Hard
参考サイト等
・ wgld.org ・・・ http://wgld.org/
WebGLの学習サイト
・ポンクソフト ・・・ http://ponk.jp/php/basic/ec
PHPとSQLによるショッピングサイトの作り方

More Related Content

Similar to プロジェクト2B 中間発表

scala+liftで遊ぼう
scala+liftで遊ぼうscala+liftで遊ぼう
scala+liftで遊ぼうyouku
 
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugY Watanabe
 
HTML5-20100626
HTML5-20100626HTML5-20100626
HTML5-20100626Taku AMANO
 
Concentrated HTML5 & Attractive HTML5
Concentrated HTML5 & Attractive HTML5Concentrated HTML5 & Attractive HTML5
Concentrated HTML5 & Attractive HTML5Sho Ito
 
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.jsTanUkkii
 
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話Takuya Ueda
 
HTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろうHTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろうyoshikawa_t
 
レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】Yasuhito Yabe
 
.NET の過去、現在、そして未来
.NET の過去、現在、そして未来.NET の過去、現在、そして未来
.NET の過去、現在、そして未来Akira Inoue
 
メディア芸術基礎 II jQuery入門
メディア芸術基礎 II jQuery入門メディア芸術基礎 II jQuery入門
メディア芸術基礎 II jQuery入門Atsushi Tadokoro
 
SilverlightとSharePoint2010の紹介
SilverlightとSharePoint2010の紹介SilverlightとSharePoint2010の紹介
SilverlightとSharePoint2010の紹介Tadahiro Higuchi
 
IBM Cloudant の細かすぎて伝わりにくい機能(その2) データの変更履歴が自動管理できるらしい
IBM Cloudant の細かすぎて伝わりにくい機能(その2) データの変更履歴が自動管理できるらしいIBM Cloudant の細かすぎて伝わりにくい機能(その2) データの変更履歴が自動管理できるらしい
IBM Cloudant の細かすぎて伝わりにくい機能(その2) データの変更履歴が自動管理できるらしいK Kimura
 
Spark Streaming Snippets
Spark Streaming SnippetsSpark Streaming Snippets
Spark Streaming SnippetsKoji Agawa
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略takezoe
 
Mvc conf session_3_takehara
Mvc conf session_3_takeharaMvc conf session_3_takehara
Mvc conf session_3_takeharaHiroshi Okunushi
 
Web Workers
Web WorkersWeb Workers
Web Workerskaboccha
 

Similar to プロジェクト2B 中間発表 (20)

scala+liftで遊ぼう
scala+liftで遊ぼうscala+liftで遊ぼう
scala+liftで遊ぼう
 
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
 
HTML5-20100626
HTML5-20100626HTML5-20100626
HTML5-20100626
 
Concentrated HTML5 & Attractive HTML5
Concentrated HTML5 & Attractive HTML5Concentrated HTML5 & Attractive HTML5
Concentrated HTML5 & Attractive HTML5
 
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.js
 
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
 
勉強会資料①
勉強会資料①勉強会資料①
勉強会資料①
 
HTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろうHTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろう
 
G * magazine 0
G * magazine 0G * magazine 0
G * magazine 0
 
レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】
 
.NET の過去、現在、そして未来
.NET の過去、現在、そして未来.NET の過去、現在、そして未来
.NET の過去、現在、そして未来
 
メディア芸術基礎 II jQuery入門
メディア芸術基礎 II jQuery入門メディア芸術基礎 II jQuery入門
メディア芸術基礎 II jQuery入門
 
SilverlightとSharePoint2010の紹介
SilverlightとSharePoint2010の紹介SilverlightとSharePoint2010の紹介
SilverlightとSharePoint2010の紹介
 
IBM Cloudant の細かすぎて伝わりにくい機能(その2) データの変更履歴が自動管理できるらしい
IBM Cloudant の細かすぎて伝わりにくい機能(その2) データの変更履歴が自動管理できるらしいIBM Cloudant の細かすぎて伝わりにくい機能(その2) データの変更履歴が自動管理できるらしい
IBM Cloudant の細かすぎて伝わりにくい機能(その2) データの変更履歴が自動管理できるらしい
 
Spark Streaming Snippets
Spark Streaming SnippetsSpark Streaming Snippets
Spark Streaming Snippets
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
 
HTML5&API総まくり
HTML5&API総まくりHTML5&API総まくり
HTML5&API総まくり
 
Mvc conf session_5_isami
Mvc conf session_5_isamiMvc conf session_5_isami
Mvc conf session_5_isami
 
Mvc conf session_3_takehara
Mvc conf session_3_takeharaMvc conf session_3_takehara
Mvc conf session_3_takehara
 
Web Workers
Web WorkersWeb Workers
Web Workers
 

プロジェクト2B 中間発表