Archive

Author Archive

OpenGL ES(1.1)への道のり・・4

11月 23rd, 2009

なんとなくOpenGLの命令群が分かってきたので、
時間もないのでいきなりSIO2のチュートリアルに
行くことに。

幸い、ビデオチュートリアルがかなり充実しているので、
それを見ていくことにし、
チュートリアル2まで見て、自作のモデル
(というかチュートリアルとほぼ同じ・・)を
表示させるところまではなんとか成功。
01
で、では窓の杜で作ったやつを読み込ませてみようと思ったのですが、
Blenderに読み込ませても、メニュー「Help」の右隣、
「SR:screen〜」と書いてある選択ボックスの所に、
「script」などの選択肢がありませんでした。

なので、
「/Applications/blender/blender.app/Contents/MacOS/.blender/scripts/」に直接、sio2のエクスポーター
(sio2_exporter.py)を入れ、メニューの「File」「Export」から直接出すことで、モデルの書き出しが行えました。

※このBlenderのパスなどに付いては、
■[iPhone]SIO2 SDK+Blenderのハマり所

http://d.hatena.ne.jp/makimoke/20091115/1258273515

を参考にさせていただきました。

(名前を付けたフォルダと「.sio2」ファイルが出来るのですが、
フォルダは特にこの場合、使わないですね。
また、Export前にモデルを「A」キーで全部選択しておかないと、0KBの「.sio2」ファイルが出来てしまうので注意。)

ですが、これを表示してみても白いモデルのまま・・。
Blenderではきちんとペンギンが表示出来ているのですが、
それを何らかの方法で、上手く持ってくるか、
Blender側で変更の必要がありそうです。
02
(※他の方が公開しているモデル
■Kator Legaz

http://www.katorlegaz.com/3d_models/index.php

などを入れてみても、そもそもモデルが表示されなかったりするので、やはりもう少しチュートリアルを見ていく必要がありそうです。)


ただ、OpenGLとESは、
glBegin〜endが無いなど違いはありますが、
同じ命令も結構あり、全くやっていることが分からない・・
と言う訳ではないと言った感じでした。
(OpenGLの説明ページ、かなり読み返しましたけどね・・。)

では、なんとかちゃんと表示できるよう、
次のチュートリアルを進めていこうと思います。

kuni プログラム

OpenGL ES(1.1)への道のり・・3

11月 19th, 2009

次に、やっとと言いますか、
OpenGL自体の勉強をと思い、
入門用のページを見ていきました。


■「GLUTによる「手抜き」OpenGL入門」

http://www.wakayama-u.ac.jp/~tokoi/opengl/libglut.html#2

見直しも含め、ページに書いてあるとおり
6時間程度で実験前部分まで完了。
macなため導入が簡単でした。
(既にOSに入っているので、
特に何かインストールする必要がない)

但し実験部分をやれる実力は・・
ちょっと付いていないですね・・。
(かなりの時間をかければ出来るのかもしれませんが、
今は時間無いので、実験前までで止めようと思います。)


中で重要と自分が思ったのは・・

・6.1 座標軸とビューポート
(開いたウィンドウの中で, 実際に描画が行われる領域のこと)

・8.3 透視投影する(gluPerspectiveを行い透視投影しないと、平面にしか見えない)

・9.1 図形を動かす
座標変換のプロセスは、

1. 図形の空間中での位置を決める「モデリング変換」
2. その空間を視点から見た空間に直す「ビューイング (視野、視界) 変換」
(1,2をまとめて「モデルビュー変換」と言うこともある。
なんでまとめられるかというと、どちらが動いても、
映し出される情報は変化するから・・と言うことらしい。)

3. その空間をコンピュータ内の空間にあるスクリーンに投影する「透視変換」(射影変換)

4. スクリーン上の図形をディスプレイ上の表示領域に切り出す「ビューポート変換」

という4つのステップで行われる。

全部を実行する必要がないとき、
1(物体が移動したり回転したり)と2(カメラの位置、方向)は
glMatrixMode(GL_MODELVIEW)
で実行、

3(カメラの画角などの変更)は
glMatrixMode(GL_PROJECTION)
で実行できる。


余談
・10.隠面消去処理

http://ameblo.jp/xcc/entry-10281908348.html

にZソート法とZバッファ法の違いが。
バーチャ2はZソート法らしいです。


・11.2 光源を設定する
座標変換のプロセスは “モデリング変換→ビューイング変換→透視変換→…” という順に行われると書きましたが,プログラムのコーディング上は,これらの設定が 逆順になる ことに注意してください.


という部分かな?と思いました。


全体的に、順を追ってソースを書いていくので、
すごくわかりやすかったです。


引き続き、

■OpenGL入門

http://wisdom.sakura.ne.jp/system/opengl/

を見ていきました。
「GLUTによる「手抜き」OpenGL入門」に書かれていないような
事も書いてあり(テクスチャ、フォグ、ディスプレイリストなど)、
続けて見ることで上手く補完できたような気がします。


ただやはりまだすごく表面的なことしか分かっていないような・・
そんな気がしてます。

kuni プログラム

OpenGL ES(1.1)への道のり・・2

11月 19th, 2009

次に行ったことは、
実際にどのように実装していくか?
ということでした。

最終的には、何らかのモデルデータをiPhoneOS上で受け取り、
それが表示できないといけなく、
その辺りは自前で行うのは恐らく無理と思ったので、
何か間に入れて行おうと思いました。


いろいろ検索してみると、

■SIO2(MITライセンス、オープンソース)

http://d.hatena.ne.jp/nakamura001/20081029/1225287233

対応読み込み形式
Blender形式のみ

■Unity($598~$2,998)

http://www.kagoota.com/2009/05/iphoneiphone-fb.html

対応読み込み形式
「.FBX, .dae, .3DS, .dxf .obj」

というのがありました。

http://www.kagoota.com/2009/01/iphoneopengl-4c.html

のページに、それぞれのポリゴン数などが載っているのですが、
Unityの方が優秀っぽいですね・・。

これはどちらにするか悩みどころですが、
ひとまず、オープンソースなSIO2の方を触っていこうと思います。


それにはBlenderのモデリングデータとはどういうものか?
が分かる必要があると思い、
そこまで本格的にやる訳ではないのですが、
ソフトを少し分かった方が良いと思い、

ゼロからはじめる3D CG道場

http://www.forest.impress.co.jp/article/dojo.html

を読んで実際にモデルデータを作っていきました。

実際に自分がモデリングをやる訳ではないので、
最後の方はかなり省きましたが、
大体これも4時間ほどで完了。
Blenderで、モデリング、アニメーションなど
全て1本で出来てしまうんですね。(当たり前か)

しかしモデルデータ作るのって、
かなり大変なんですね・・・。
全然ページのように出来ず、
かなりいびつなモデルになってしまいました。

kuni プログラム

OpenGL ES(1.1)への道のり・・1

11月 18th, 2009

ついにというか、簡単な3D仕事の打診が来てしまいました。
しかし仕様的にすごく簡単っぽい
(3Dオブジェクトと2Dの画像を合成するとだけと言ったような)
物だったので、何とかやってみることにしました。

まず第一に、本当にその合成は出来るのか?
と思い調べてみることに。

いろいろなサイトを見て回ったのですが、
初心者はまず、appleのサイト

http://developer.apple.com/jp/iphone/library/japanese.html

にある、「iPhone OpenGL ES プログラミングガイド」
を見た方が良いとの事だったので、4時間くらいかけて読む。

これを見ると、30Pの「結果の表示」の所に、

␣␣␣␣␣␣␣␣␣コンテンツをその他のレイヤとブレンドしなければならない場合は、CAEAGLLayerオブ ジェクトを不透過にするとパフォーマンスの低下を抑えることができます。ただし、パフォーマン スの低下をなくすことはできません。
CAEAGLLayerオブジェクトをその他のレイヤと合成しなければならない場合は、大幅にパフォーマ ンスが低下します。CAEAGLLayerをその他の␣␣␣␣␣レイヤの背後で再生することによって、このパ フォーマンス低下を抑えることができます。


と書いてあるので、取りあえず合成は出来そうだな・・
と言うことがわかりました。


その他には

・OpenGL1.1と2.0の具体的な違い、
(このPDFには載っていないのですが、
ハードウェア的には
iPhone3G/Touch=1.1、iPhone3GS=2.0なので、
現状では1.1を選択しておくのが良さそう)

・最適化するにはどうすればいいのか
(この辺りは取りあえず読み飛ばしましたけど)

・実際にどのような順路をたどり出力されてるのか

が何となく・・すごく何となくですが・・
わかりました。


自分の中での締め切りは、来週頭〜来週中くらいまでかと思っているのですが、果たしてそれまでで出来るのか?

また、進捗を書いていこうと思います。

kuni プログラム

PixelContact Android版

9月 9th, 2009

PixelContactをAndroidへ移植しました。



とはいえ、まだ有料配信が日本からは出来ないので、
無料のLite版として、アイコン15個入りでのリリースとなっています。


有料版を

http://market.android.com/search?q=pname:jp.zerohachi08

にて配信開始いたしました。
(上記URLは、Android端末からのみのリンクになります。
もしくは、直接端末からAndroidMarketで「PixelContact」とご入力いただければ検索に
ヒットいたします。)
同時に、無料のLite版は配信停止いたしました。

google dev dayで端末をもらっていて、
1本は作らなきゃと思っていたので、
これでgoogleとの最低限の約束は果たせたのではないか・・と思います。

kuni ソフトウェア

SNS Contactの不具合/apple側のミス?

7月 24th, 2009

ついに発売になったのですが、いきなり不具合がありました・・
動作自体に問題は無いのですが、
こちらのチェック環境(2.21、3.0β、3.0GM)では全く確認できていなかった、
テキストが一部表示されないという不具合が起きております。

※現在アップデート版を審査中です

しかし・・
・こちらで確認しているときには一度もこういった問題は起きていなかった。
・もしこちらから送ったデータが壊れていたとしたら、このように、テキストのみが抜け落ちるような壊れ方をするか?
テキストが全部抜け落ちているとかならまだ解るが、一部のみ抜けている。
(・・例えば、tableに使われているテキストがそろって全部抜け落ちている訳ではなく、抜け落ちるルールが決まっていない)
・テキストが無い状態で審査に通るのか?(一応、流れは解るので通ったのか?)

と言うことから考えて、自分の考えでは、apple側のミスのような気がします。
人為的か、機械的かは解りませんが、
例えば、認証付きアプリケーションファイル作成時のツールの不具合、とか・・。


しかし、こちらにも落ち度はあります。
米アカウントを作れば、プロモーションコードを使って、
先にappleのサーバに上がっている物をインストール出来たので、
それをチェックしておけばよかったんです。


どちらにせよ、ご迷惑をおかけして、大変、申し訳ございません。
公式HPには、各画面のスクリーンショット、動画がありますので、
こちらも合わせて見て、使っていただければありがたいです。

kuni ソフトウェア

SNS Contact発売

7月 21st, 2009

連絡先にSNS(ソーシャルネットワークサービス)で公開されている友達のプロフィール写真を登録するアプリケーション、
「SNS Contact〜連絡先にフレンドアイコン」を7/24(金)に発売します。



購入はこちらから

公式ホームページ


mixiにはまだ対応していないので、何とも惜しい感じがしますが、
mixi Connectという、mixiのデータを外部から引っ張ってこれる
サービスが開始されたら、即対応する予定です。

ただ、あまりにそのサービスの開始時期が遅い場合、
独自にhtmlを解析して、写真を取り出す・・と言ったような物を
作ろうと思っています。

kuni ソフトウェア

jsファイルがcopyItemAtPathでコピーされない

7月 14th, 2009

JSファイルやhtmlをローカルで読み込ませてUIWebViewで表示しようとして、
FileManagerのcopyItemAtPathで特定のパスにコピーしようとしたところ、
JSファイルのみコピーできなかったが、どうもアプリに内包されていないようで、
手動でターゲットの「ハンドルリソースをコピー」のフォルダに入れることで、
アプリに入るようになり、コピー出来るようになった。

kuni プログラム

Ignoring packet error, continuing…

7月 9th, 2009

Ignoring packet error, continuing…
と、実機でデバッグを行うとコンソールに出てしまって、NSLOGの値などが出てこなかったのですが、
単純に、distribution用のProvisionファイルで動かしてしまっていたので出ていたようです。
普通に制作用のProvisionファイルで動作させれば、このメッセージは出ず、正常にデバッグできました。

kuni プログラム

カバーフローのライブラリ

6月 24th, 2009

coverflowを再現するオープンソースライブラリ

http://www.chaosinmotion.com/flowcover.m

kuni プログラム