241133

塩肉亭掲示板


[トップに戻る] [スレッド表示] [トピック表示] [アルバム] [留意事項] [ワード検索] [管理用]
おなまえ
Eメール
タイトル
コメント
参照URL
添付File
暗証キー (英数字で8文字以内)
画像認証 (右画像の数字を入力) 投稿キー
文字色
「WebGLによるMQOビュワー」のチューニング 投稿者:たけし 投稿日:2010/06/28(Mon) 00:17 No.7084

もし「WebGLによるMQOビュワー」のmqoファイルを1マテリアル1テクスチャに限定した仕様にチューニングしたら、パフォーマンスを劇的に向上させることはできるでしょうか?

Re: 「WebGLによるMQOビュワー」のチューニング - sio29   2010/06/28(Mon) 00:51 No.7085
1マテリアル1テクスチャにすれば速くはなると思いますが、
現時点でオブジェクト内の同一マテリアルのポリゴンはまとめて描画発行していますので
劇的に速くなるほどのスピードアップは望めないと思います。

それよりもまだ頂点リストのIndex化やStrip化などをしてないので、それをしたほうが高速化につながると思います。
無駄な頂点ストリームもバインドしてしまっているのでそれも理由の一つです。
何分WebGLもOpenGL ES2.0も初めて(OpenGL1.xはいじったことありますが)触ったので、WebGLのMQOビュワーの最適化レベルはかなり低いです。
Re: 「WebGLによるMQOビュワー」のチューニング - たけし   2010/06/28(Mon) 01:01 No.7086
ご回答ありがとうございます。

今後も最適化など、バージョンアップお願いします。

それと、FlashではPapervision3Dでベクトルや行列クラスが独自のコードだったところ、Flash10
Re: 「WebGLによるMQOビュワー」のチューニング - たけし   2010/06/28(Mon) 01:04 No.7087
途中で操作を間違えました(汗)

それと、FlashではPapervision3Dでベクトルや行列クラスが独自のコードだったところ、Flash10で標準で3D機能が搭載されたように、HTML5でもベクトルや行列クラスが標準で用意される可能性はあるでしょうか?
Re: 「WebGLによるMQOビュワー」のチューニング - sio29   2010/06/28(Mon) 01:20 No.7088
将来的には知りませんが現状ではベクトルや行列のクラスは存在しません。
自分で作るか誰かが作ったライブラリを使うしかないようです。
また現状のhtml5の勧告候補にもベクトルやマトリクスのライブラリはないようです。

WebGLは基本的にOpenGL ES2.0をJavaScriptにバインドしただけなのでOpenGL ES2.0にない機能は存在しません。
詳しく知りたければ
https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/WebGL-spec.html
WebGLスペック表と
http://www.khronos.org/opengles/sdk/docs/man/
OpenGL ES2.0リファレンスマニュアルを見ればわかると思います。
シェーダーに関してはGLSL1.0そのままです。

http://learningwebgl.com/blog/?page_id=1217
最初から順にWebGLを学びたければこちらの「Learning WebGL」のページが参考になります。
Re: 「WebGLによるMQOビュワー」のチューニング - たけし   2010/06/28(Mon) 01:37 No.7089
詳しい説明、ありがとうございます。

参考にさせていただきます。
XBOX360 投稿者:sio29 投稿日:2010/06/30(Wed) 02:42 No.7091

http://pc.watch.impress.co.jp/docs/column/kaigai/20100630_377488.html
本当にCPUとGPUがワンチップなんだな。凄いな。

WebGLのMQOビュワー - sio29   2010/06/30(Wed) 03:40 No.7092
まだ途中なのでアップしてないけど、CelsViewのMCSファイルに対応しました。
これでマテリアルごとにセルシェーダの質感を変えることができます。
ただし現状問題があってマテリアル名に全角が使われているとうまく認識できません。
JavaScriptが勝手にSJISからEUCJPに変換してしまうのが原因なんだけどどうやって回避したものか…

あと現状ではどうやってもWebGLではアンチエイリアス掛からないだよね。
どうやるんだろ?
いざとなったら大きなフレームバッファ取ってPixelShaderで加工という手もあるけど、なるべくならドライバー側で処理してほしい。

WebGLのMQOビュワー - sio29   2010/06/30(Wed) 17:27 No.7094
ファイル読み込むときにXMLHttpRequestというクラス使っているんだけどこれが読み込むときに
MQOファイル内のテキストの漢字コードを変換してしまっているらしい。
現状では回避のしようがない。

一応、サーバー側でファイルタイプの文字コードを設定してやれば問題は解決できるけど、
それだとファイルタイプを指定できないレンタルサーバーでは問題解決できない。
Re: XBOX360 - sio29   2010/07/01(Thu) 00:45 No.7097
http://pc.watch.impress.co.jp/docs/column/kaigai/20100701_377756.html
微細化の障害はeDRAMみたいだったようです。
高速なフレームバッファがあるのはプログラマとしてありがたいけど、
障害になるのなら将来的にはこういうアーキテクチャはなくなるのかな。
WebGLのMQOビュワー - sio29   2010/07/01(Thu) 03:25 No.7098
シェーダーを頂点単位のライティングからピクセル単位のライティングへ変更。
スペキュラが綺麗に出るようになりました。

あっ、まだアップはしてません。

WebGLのMQOビュワー - sio29   2010/07/01(Thu) 21:42 No.7099
ノーマル(法線)マップとリフレクション(反射)マップに対応してみました。
設定方法はノーマルマップはマテリアルの凸凹にノーマルマップのテクスチャを指定するだけ。
リフレクションはMCS(CelsView用設定ファイル)の設定で「リフレクションマップ」にテクスチャファイルを指定するだけ。
「リフレクションマップ→アルファ」でリフレクションマップの透明度を変えられます。

ちなみにまだアップはしてません。

Re: XBOX360 - ringpull   2010/07/04(Sun) 02:22 No.7101
こんにちは
ビューアーばりばりバージョンアップしてますねw
当分はあまりいじられないかと思ってましたが
公開を気長にお待ちしておりますw
WebGLのMQOビュワー - sio29   2010/07/04(Sun) 21:39 No.7102
>ringpullさん
どうも
あとシャドウマップだけ実装したら公開しようと思っています。
画像はシャドウマップのテストです。(髪の毛と尻尾の影)
一応そうしたら一区切りでコミケのほうをなんとかしたい思ってますが、
さすがにもう間に合いそうにもありません_| ̄|○

WebGLのMQOビュワー - sio29   2010/07/05(Mon) 22:25 No.7103
アップしました。修正点は次のもの

・シェーダーを頂点単位のライティングからピクセル単位のライティングへ変更。
・MCSファイル(CelsViewの設定ファイル)に対応
※MCSファイル(CelsViewの設定ファイル)を使用する場合、マテリアル名に全角文字を使用しないでください。
マテリアル名には半角英数のみを使用してください。
・マテリアルごとのセルシェーダの質感の設定に対応
・リフレクションマップに対応
※リフレクションマップを使用する場合、MCSファイルが必要です。CelsViewのマテリアルの設定で「リフレクションマップ」にテクスチャファイルを指定してください。
※リフレクションマップの透明度を変える場合は「リフレクションマップ→アルファ」を指定します。
・ノーマルマップに対応
※ノーマルマップを使用する場合、マテリアルの凸凹にノーマルマップのファイル名を指定してください。
・シャドウマップに対応

・起動オプションの追加(g_use_shadowmap、g_use_vsm)
・メニューの追加(VSM/SSM、ShadowMap)

※シェーダーを外部ファイルにしたため開発版Firefoxでもローカルで動作しなくなりました。
ローカルでテストする場合はhttpdなどのHTTPサーバソフトを使ってローカルにサーバーを立てる必要があります。
WebGLのMQOビュワー - sio29   2010/07/05(Mon) 22:36 No.7104
シャドウマップにVariance ShadowMap(VSM)というのに対応しました。
画像の左がSSM(通常のシャドウマップ)、右がVSMです。
VSMのほうが影にぼかしが掛かっていてスムーズに見えます。

ただしVSMは通常、浮動小数点テクスチャを使うものですが無理やりRGBA8bitテクスチャで代用しているため制度が低いです。
(WebGLはOpenGL ES2.0相当なので浮動小数点テクスチャが使えません)

またセルシェーダにはほとんど効果がないのに注意してください。


これで一通り入れたい効果は入れたのでビュワーのほうはとりあえず一休みです。

WebGLのMQOビュワー - sio29   2010/07/05(Mon) 23:06 No.7105
そうそう、最新版のChromium(開発版Chrome)では動作しません。
他のWebGLプログラム(Learning WebGLとか)も動作しないのでChromiumのバグだと思います。
WebGLのMQOビュワー 投稿者:sio29 投稿日:2010/06/13(Sun) 17:20 No.7062

http://sio29.sakura.ne.jp/tmp/webgl/webgl_mqoview.html
修正しました。修正点は以下のものです。

----------------------------------------------------
追加、修正

・MQOファイルのカメラを反映するように対応
・MQOファイルのアンビエントを反映するように対応
・カメラのPers/Orthoの切り替えに対応
・アルファマップに対応
・アルファテスト(透明部分(Alpha=0)のピクセル処理をスキップする処理)に対応
・マテリアルのシェーダの「constant」(ライティング無効)に対応
・ライティング計算をメタセコに近いものに修正
・ライト色、ライト方向の変更に対応
・メニュー表示の追加
・起動オプションの追加(g_drawgrid,g_backcol,g_lightcol,g_lightdir,g_drawdebug,g_drawmenu)

バグフィックス
・MQOファイルのvertexattrチャンクの読み込みに失敗していたのを修正
----------------------------------------------------

Re: WebGLのMQOビュワー - sio29   2010/06/16(Wed) 17:22 No.7067
http://sio29.sakura.ne.jp/tmp/webgl/webgl_mqoview.html
修正しました。修正点は以下のものです。

----------------------------------------------------
・セルシェーダに対応しました。
・今までhtml内に書いていたシェーダの別ファイルを分離しました。
VertexShaderはmqoshader.vert、PixelShaderはmqoshader.flagになります。
・起動オプションの追加(g_use_celshade、g_def_celshade、g_use_edge、g_edge_col、g_edge_scale、g_poslist)
・メニューの追加(Menu、Cels、Edge)
・複数モデルの表示に対応
・メニューを左下に移動しました。
Re: WebGLのMQOビュワー - kig   2010/06/22(Tue) 09:11 No.7071
Cool MQO viewer! One fix: adding .xyz to the end of mqoshader.flag line 26 (fragmentColor.xyz *= texture2D(...)) makes it work on Radeon (the Radeon GLSL compiler doesn't do implicit typecasting).
Re: WebGLのMQOビュワー - sio29   2010/06/22(Tue) 17:03 No.7072
Thank you, kig. Fixed a bug MQO Viewer
Re: WebGLのMQOビュワー - sio29   2010/06/23(Wed) 01:41 No.7073
開発版firefoxでRadeonの人で新しいビュワーでまだエラーが出る人はキャッシュをクリアしてください。
リロードだけだとうまく読み込まれないようです。
キャッシュをクリアするには
メニュー→Tools→Options→Advanced→Network→Offline Storage→Clear Nowのボタンをクリックしてください。
WebGLのMQOビュワー 投稿者:sio29 投稿日:2010/06/06(Sun) 22:04 No.7038

http://sio29.sakura.ne.jp/tmp/webgl/index_nako.html
http://sio29.sakura.ne.jp/tmp/webgl/index_eruru.html
http://sio29.sakura.ne.jp/tmp/webgl/index_hotaru.html
http://sio29.sakura.ne.jp/tmp/webgl/index_95tan.html
html5のWebGLを使ったMQOビュワーのサンプルです。

http://sio29.sakura.ne.jp/tmp/webgl/webgl_mqoview.lzh
ソースはこちら参考にしたい人はどうぞ。
また同梱したソースのindex.htmlの中の73行目のmqo_filenameという変数の
ファイル名を書き換えれば他のMQOファイルも読めるはずです。

Re: WebGLのMQOビュワー - sio29   2010/06/06(Sun) 22:06 No.7039
このサンプルを見るためには開発版のFirefoxかChromeが必要になります。

http://learningwebgl.com/blog/?p=11
くわしくはこちらのリンクからそれぞれの開発版をダウンロードしてください。
Re: WebGLのMQOビュワー - sio29   2010/06/06(Sun) 22:28 No.7040
あとIntelのオンボードでは動作しません。
radeonかgeforceが必要です。
Re: WebGLのMQOビュワー - sio29   2010/06/07(Mon) 00:45 No.7041
一応分からない人のために
・Firefoxの開発版を使う場合
http://nightly.mozilla.org/
↑のページから指定のOSのFirefoxを落としてください。

ファイルを落としたらzipファイルを解凍して適当なフォルダにコピーしたください。

もし既存のfirefoxを起動している場合は終了してください

フォルダの中のfirefox.exeを起動してください。
(始めて起動したと時にデフォルトブラウザにするかと聞かれてくるのでキャンセルしてください)

URLを入力するところに「about:config」と入力してください。

filter:の項目で「WebGL」として検索します。
「webgl.enabled_for_all_sites」という項目を「false」から「true」にしてください。

これで、開発版FirefoxでWebGLが使えるようになります。
Re: WebGLのMQOビュワー - sio29   2010/06/07(Mon) 00:52 No.7042
・Chromeの開発版を使う場合
http://build.chromium.org/buildbot/continuous/win/LATEST/
↑のページから「chrome-win32.zip」をダウンロードし適当なフォルダにコピーしてください。

コマンドプロンプトを開き、chromeをコピーしたフォルダまで移動して
>chrome.exe --enable-webgl
と入力して起動してください。

もしくはchrome.exeへのショートカットを作り、そのショートカットのプロパティの
「リンク先」の項目のchrome.exeの後ろに「--enable-webgl」というオプションを追加し
そのショートカットでChromeを起動してください。

これで開発版ChromeでWebGLが使えます。

ただしChromeはローカルにあるmqoファイルを読み込めませんので一度サーバーにあげるか、
httpdなどのHTTPサーバソフトを使ってローカルにサーバーを立てる必要があります。
Re: WebGLのMQOビュワー - ringpull   2010/06/10(Thu) 01:47 No.7055
こんにちは
ビューア手持ちのデータで試してみました
http://www.ceres.dti.ne.jp/xb1080/webgl_mqoview/
軽くていいですねー
リリース版のブラウザで見れるようになるのが楽しみです
Re: WebGLのMQOビュワー - sio29   2010/06/10(Thu) 04:22 No.7056
こんにちはringpullさん。ご利用ありがとうごさいます。
かわいいガンナー娘ですね。

>リリース版のブラウザ
早くそうなるといいのですが、Firefoxは秋ごろという話です。
Chromeのほうは知らないですが早く出てくるとうれしいです。
あとはIntelのオンボで動かないのが致命的ですかね。
vdrdlgMQ大変そうです。完成楽しみです! 投稿者:ビト 投稿日:2010/04/20(Tue) 18:42 No.6971

他の話だが、しつもんしてもいいですか。
失礼でなければ、頼みがあります。
CelsViewで Metasequoia用プラグインは製作不可能ですか?

自分できないので、こういうの憧れます。

Re: vdrdlgMQ大変そうです。完成楽しみです! - sio29   2010/04/20(Tue) 19:49 No.6972
はじめましてビトさん。
>CelsViewで Metasequoia用プラグインは製作不可能ですか?
質問の意味が良く分からないのですが、メタセコ用のセル画調レンダラのプラグインが欲しいということでしょうか?
Re: vdrdlgMQ大変そうです。完成楽しみです! - ビト   2010/04/20(Tue) 21:02 No.6973
はい, その通りです
Re: vdrdlgMQ大変そうです。完成楽しみです! - sio29   2010/04/20(Tue) 22:27 No.6974
早い話がwarabiMPの代わりが欲しいってことなのかな。
うーん、こちらも要望が多ければ考えますがどうなんでしょ?
Re: vdrdlgMQ大変そうです。完成楽しみです! - ビト   2010/04/23(Fri) 05:47 No.6977
はい、機会があれば。。。日本語は難しいですね。
今後も期待しています
処理 記事No 暗証キー

- Joyful Note -