内容に「C」を含む
151〜160件目 / 224件
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 次へ

 WebGLを動作させるためのブラウザをインストールする方法(Win編) / マルパチ 

久しぶりの投稿になってしまいました。マルパチです。

さてmagicienからWebGLの動作環境の導入法について書いてくれと頼まれました。
ところが私のマシンではChromium(Chromeの開発版)でWebGLが起動できず、WebKit(Safariの開発版)に至ってはそもそもアプリケーションが起動しません(爆)

しかしMinefield(FireFoxの開発版)は問題なくWebGLの起動に成功したので、とりあえずMinefieldのインストール方法についてのみ書くことにします。
ChromiumとWebKitについては導入に成功し次第、追記することにします。


Minefield(Firefoxの開発版)のインストール方法


下記URLからWin用のパッケージ(firefox-3.7a4pre.en-US.win32.installer.exe)をダウンロードします。 http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/

WebGLを動作させるためにMesa software OpenGLが必要になるので以下のURLからダウンロードします。
http://people.mozilla.com/~vladimir/webgl/webgl-mesa-751.zip
ダウンロードした「webgl-mesa-751.zip」を解凍すると中に「osmesa32.dll」が入っています。
Cドライブにtempフォルダを作成し、osmesa32.dllをフォルダの中にコピーしてください。

ここでようやくMinefieldを起動します。
Minefieldのアイコンをダブルクリックして起動してください
URL入力欄に「about:config」と入力します。
すると、警告画面が表示されるので、「I'll be careful, I promise!」というボタンをクリック。
設定一覧がダーッと表示されるので、Filterにwebglと入力して「webgl.enabled_for_all_sites」を探してください。
「webgl.enabled_for_all_sites」を選び、ダブルクリックします。
webgl.enabled_for_all_sitesのValueが「true」に変更されるはずです。
次に同じ設定一覧の中から「webgl.osmesalib」を選び、ダブルクリックします。
「enter string value」というウィンドウが出てくるので、「C:\temp\osmesa32.dll」と入力して先ほどのosmesa32.dllを指定してください。

設定は以上で完了です。
これで、MinefieldでWebGLが動作するようになります。


ていうかMacの方が簡単そうですね。普及率はWindowsの方が高いのに。
以下のサンプルURLへ行き、自転する地球が表示されれば導入成功です。
http://webos-goodies.googlecode.com/svn/trunk/blog/articles/getting_started_with_webgl/webgl_sample.html

2010/03/28(Sun) 11:00:31

 WebGLを動作させるためのブラウザをインストールする方法(Mac編) / magicien 

MacでWebGLを動作させる方法。

現在、WebGLが動作する環境は、WebKit、Minefield、Chromiumの3つ。
いずれも開発版なので、バグやらセキュリティホールやらがあるかもしれません。
インストール、実行する場合は、自己責任で行うようお願いします。
3つとも既存のブラウザの開発版であり、場合によっては正規版のブラウザに影響を及ぼす場合があります。
インストールの前に、ブラウザの設定やデータをバックアップしておくことをお勧めします。
あるいは、普段使っていないブラウザの開発版を利用すると良いかもしれません。

WebKit(Safariの開発版)のインストール方法


下記URLから、Mac用のものをダウンロード。
http://nightly.webkit.org/
ダウンロード後、WebKitのアイコンを「アプリケーション」フォルダにドラッグ&ドロップ。

次に、ターミナルを起動し、
defaults write com.apple.Safari WebKitWebGLEnabled -bool YES
というコマンドを実行。
これで、WebKitでWebGLが動作するようになる。

Minefield(Firefoxの開発版)のインストール方法


下記URLからMac用のパッケージ(例:firefox-3.7a4pre.en-US.mac.dmg)をダウンロード。
http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/
ダウンロード後、Minefieldのアイコンを「アプリケーション」フォルダにドラッグ&ドロップ。

次に、Minefieldを起動、URL入力欄に「about:config」と入力。
すると、警告画面が表示されるので、「I'll be careful, I promise!」というボタンをクリック。
設定一覧が表示されるので、その中から、「webgl.enabled_for_all_sites」を選び、ダブルクリックする。
(Filterにwebglと入力すると、項目が絞り込まれるので探しやすい。)
webgl.enabled_for_all_sitesのValueが「true」になっていればOK。
これで、MinefieldでWebGLが動作するようになる。

Chromium(Chromeの開発版)のインストール方法


下記URLからMac用のパッケージ(chrome-mac.zip)をダウンロード。
http://build.chromium.org/buildbot/continuous/mac/LATEST/
ダウンロード後、Chromiumのアイコンを「アプリケーション」フォルダにドラッグ&ドロップ。

次に、以下のコマンドでChromiumを起動(コマンドによる起動は毎回必要)。
/Applications/Chromium.app/Contents/MacOS/Chromium --enable-webgl
すると、ChromiumでWebGLが動作する。
もしローカルファイルにアクセスする場合は、--allow-file-access-from-filesのオプションも付けて起動する。

実際に使ってみたところ、動作スピードは、
Safari > Chromium > Firefox
といったところ。Firefoxはちょっとカクカクだったり、動作が変だったりしましたが、
SafariとChromiumは割とサクサク動作しました。

2010/08/10 追記:
Chromiumの起動オプションを修正。
なんだかChromiumでのWebGLの表示が変だ...

2010/03/27(Sat) 23:47:00

 スキンメッシュアニメーション / magicien 

案の定詰まった。

影響を与えるボーンとマテリアルが共通している頂点をグループにして、
グループ毎に描画すればいいやと思ったけど、
ポリゴンって頂点3つだから、組み合わせによっては面倒なことになりそう。
都合の良いデータしかないと信じて実装してみるか...

ただ、今までマテリアルだけでグループ分けしていたものを、
もっと細かく分割するとなると、データ転送と描画の回数が増えてしまう。
JavaScriptでの演算回数は減るけど、速度向上するかどうかは不明。

せめて30fpsは出したいところ。

2010/03/17(Wed) 21:17:44

 WebGL一段落 / magicien 

IKもなんとか動いた...かなりぎこちないけど。

IKがうまく動作しなかった原因は、単純なtypoと、僕が人体の構造を理解していなかったことです。
膝って回転軸固定なんだなってことを今更ながら知った。

そろそろ公開に向けて動き出そうか、もう少しチューニングしようか...
Safariで確認すると、目算だけど、20fpsぐらい。Firefoxだと4fps...
計算量が多すぎるのか、クラスを作りすぎたのか、とにかく遅い。
スキニング(が出来てない気がする、関節を見ると。でも実装は一応した。)をJavaScriptで計算してるんですが、
これをシェーダに移行すれば、もう少しマシになるかも。
明日あたり実装してみて、簡単にできそうなら、それが終わってから公開ということにしようと思います。

2010/03/17(Wed) 01:54:13

 今のところは大きな問題なし / ノリオ 

昨日magicienがブログパーツのひな型を作ってくれたので、早速いじってみた。
何分ドシロートなもので、思わぬところでつまづくことが多々あり。
まず、特定のキーワードを検索するところから作ってみたけど、日本語だと文字コードの問題があるんですな・・・編集してるファイルの文字コードをUTF8にしたら解消された。
デザインの問題を抜きにすると、次はキーワードの検索範囲からユーザー名を除外するところとか加えてみるかな。
2010/03/14(Sun) 11:04:14

 ベジェ再び / magicien 

ベジェ曲線難しい...

WebGLで3Dモーションデータを読み込んで、表示させるっていうのをやっているんですが、
キーフレームの間を3次のBezier曲線で補間する仕様になっていて、
4つの制御点からx座標に対応するBezier曲線のy座標を求めなくちゃいけない...

最初は方程式を解けば簡単だろうと思って、3次方程式の解の公式を調べてみたところ、
...やめよう、と思いました。
となると、2分法やらBezier Clippingとやらで近似値を求めることになるんだろうけど、
計算量が多くなりそうなのと、単純にプログラムを書くのが面倒。
行列計算に比べれば、ずっと計算量は少ない気もするけど...どうするかなぁ。
両端の制御点が固定であることと、xが単純増加っていう縛りがあるから、簡単な計算式があるのかも。
そこら辺のことは疎いのでよくわかりません。
誰か教えてください!

いっそのこと、tとxはだいたい同じ、と考えてパラメータtをx座標の代わりに使ってしまおうか...

2010/03/07(Sun) 01:46:50

 WebKit Nightly Builds / magicien 

WebGLアプリの開発には、Webkit Nightly Buildsを使ってます。

Nightly Buildsというわけで、毎晩最新版がリリースされるわけですが、
厄介なことに、更新する度にWebGLの仕様が変わったり、動かなくなったりするわけです。

今、動作確認しているのは、2/20のr55043というバージョン。
3/5時点での最新バージョンであるr55516だと動かない...
各バージョンのダウンロードは下記↓URLから。
http://nightly.webkit.org/builds/trunk/mac/1

というわけで、自分用メモでした。

2010/03/06(Sat) 03:43:45

 JavaScript始めました / ノリオ 

JavaScriptの勉強を最近始めました。
まだサンプルプログラムを作りつつ覚えている段階なので、そのうち簡単なことができるプログラムを作れるといいなぁ。
2010/03/05(Fri) 01:32:54

 更新再開 / magicien 

2ヶ月ぶりの更新。
論文やら旅行やらで、しばらく放置してましたが、今日から更新再開します。

現状は、WebGLで3Dのウェブアプリを実装中。
去年はObjective-CとOpenGLで3Dアプリを実装してましたが、気が変わってWebGLへ。
WebGLの方が一段落したら、またObjective-Cに戻りたいと思ってます。


2010/03/04(Thu) 16:17:08

 GPL解説vol.8―定義集― / マルパチ 

前回の記事プロパゲート(propagate)という謎の言葉が飛び出してきました。またGPLv3第11条3パラグラフを読んでみた人はコントリビューター(contributor)や必須特許クレーム(essential patent claims)といったわけのわからない用語に悩まされたかも知れません。
今回はそういった用語の「定義」に関する記事です。

法典(会社法など)や法律文書(ライセンスなど)には一定のフレーズが繰り返し記述されることがあります。しかし同じ文書の中にいちいち同じフレーズを繰り返して書くのはかったるいです。
そこで法律家は定義規定を設けて記述の繰り返しを避けるのです。使い方としてはプログラマーが関数の定義をするようなものだとイメージしていただければ結構です。
法律文書を読んでいて訳のわからない用語が出てきたときは、まず定義規定の存在を疑ってください。定義規定は文書・条項の最初の方に記述するのが暗黙の了解になっています。

上記の「プロパゲート(propagate)」や「必須特許クレーム(essential patent claims)」もGPL(General Public License)の中に定義規定があります。これらの用語はGPLのあちらこちらに顔を見せます。特に「プロパゲート(propagate)」や「コンベイ(conbey)」は頻出です。
どうせいずれ解説することになるでしょうから、この機会に翻訳して簡単な説明もしてしまうことにしました。その都度リンクを貼るので今は無理に読まなくてもかまいません。

「改変(modify)」→GPLv3第0条4パラグラフ
著作物を「改変する」とは、著作物の全体又は一部の複製又は翻案を著作権許諾を必要とする方法ですることを意味する。但し正確な複製を作成することを除く。結果として生じた著作物は先行著作物の「改変されたバージョン(modified version)」、又は、先行著作物に「基づく(based on)」著作物と呼ばれる。
※わかりづらい書き方ですが要は、一部の複製、全体の翻案、一部の翻案の3つが「改変(modify)」である、と言っているのです。全体の複製は「改変」ではなく「プロパゲート」になります。そして「改変されたバージョン(modified version)」と「基づく(based on)」という言葉にも「改変」と同様の意味があると言っています。

「プロパゲート(propagate)」→GPLv3第0条6パラグラフ
著作物を「プロパゲートする」とは、許可を得ずにすることによって、準拠する著作権法に基づく侵害行為による法的責任を直接的又は間接的に発生させる行為を意味する。但し、コンピュータ上での実行、又は、私的複製の改変をのぞく。プロパゲートは複製、配布(改変の有無を問わない)、そして一般公開を含む。さらにある国では他の行為もプロパゲートに含まれる。
※「準拠する著作権法」というのがわからないかと思われます。これはどういう訳かというとつまり、著作権法というのは国や州の数だけあるわけであります。ですからその時その時で適用される著作権法を参照してください、という意味です。GPLはどこの国の人に使われるかわかりませんからね。ちなみにどの著作権法が適用されるのかというのは国際私法の問題であり、本稿では解説しません。

「コンベイ(convey)」→GPLv3第0条7パラグラフ
著作物を「コンベイする」とは、プロパゲートの内、相手方に複製の作成又は受領を可能にさせるものを意味する。コンピューターネットワークを介したほんの意思疎通に過ぎず、複製の受け渡しを伴わない場合は、コンベイではない。

「コントリビューター(contributor)」→GPLv3第11条1パラグラフ
「コントリビューター」は著作権保持者でありこのライセンス(GPL)に基づきプログラム又はプログラムに「基づく(based on)」著作物の使用を許可する者である。このように使用を許可された著作物をコントリビューターの「コントリビューターバージョン(contributor version)」という。

「必須特許クレーム(essential patent claims)」→GPLv3第11条2パラグラフ
コントリビューターの「必須特許クレーム」とは、コントリビューターによって保有又は支配(control)される全ての特許クレームであり、このライセンス(GPL)で許諾されている行為(コントリビューターバージョンの作成・使用・販売)により侵害されうるものである。既に取得されているか以後取得されるかを問わない。但し、コントリビューターバージョンのさらなる改変の結果としてのみ侵害されうるクレームは含まない。この定義において、「支配(control)」にはこのライセンスの要件に合致した方法で特許再実施権を付与する権利を含む。
※いきなり「特許クレーム」とかいわれても困るでしょうが、とりあえず今は特許権のことなんだと思って読んでください。真面目に説明しようとすると特許法の話をだらだらとしなければならなくなるので。

予想以上のボリュームになってしまいました。今回の記事は、いま無理に理解しようとしなくても、今後の記事で用語が出てきたときに読み返せばオッケーです。

次回の記事はちょっと間があいて2月11日になりそうです。
それでは!
2010/02/02(Tue) 18:52:28