IT系のニュースで取り上げられていたので現状の「Marketplace」を少しのぞいてみました。

$Cocoaを飲む-Marketplace

日本語のアプリはまだ40本ほどです。。
本場USだと結構登録されてますが、まだまだ少ないみたいですね。
現在審査中のアプリが多数ありそうな予感。。
明らかにMicrosoft系の開発者は多いですからねぇ。。。
すごい勢いで一気に増えそうな気がします。。

その前に「Windows Phone」の普及が進めばいいんですけどね

いいアイデアが浮かんだら、アプリを作ってみようかな。。
ルービックキューブをAndroidで遊ぶことを考えると、自由自在にルービックキューブを回転させたい。
しかし、回転処理は自分が思っていた以上に厄介なものだということを思い知らされた。

OpenGLでは、回転関数が用意されていてx軸、y軸、z軸それぞれを回転させて360度の回転を実現している。
意図した回転を得られない 軸を順番に回転させることをオイラー角というのだけど、このオイラー角というのはジンバルロックという欠陥だの姿勢制御が難しいとか完全なものじゃない。

回転を自由に行うために、まかさ数式だのオイラー角だのクォータニオンだの理解しないと先に進めないとは・・・理解というかサンプル引っ張ってくるだけでしょうけど。
とりあえず、あまり回転の問題に時間を掛けてられないので、他のやること(2次元文字表示、ゲームロジック、Android自体の勉強等・・)に移りたいと思う・・
参考書読みながらツギハギで少しずつプログラミングして、ようやく、OpenGLで物体に光を当てて表示できるようになりました。

Androidでルービックキューブを作るにしても、せっかくOpenGLを使うんだからライティング位は将来必要だろうと思っているので。
ライティングがないとのっぺりした単色で見た目にもつまらないです。

しかし、なんでもないポリゴンに光を反映させるのに二日掛かってしまいました。
参考書、ネットであちこち参考にしながら作っていたのですがなかなかうまく表示されません。
OpenGLというのは単に光源を設定しても物体に反映されないのですね
そこで、必要になるのが「法線ベクトル※」という値なんですが、これをポリゴンに設定しないと表示がおかしかったり、表示すらしないという状況に陥ってしまいます。
※OpenGLでは「Normal(ノーマル)」と呼ぶ

法線ベクトルを簡単にいうと、「面に対して垂直なベクトル」のことです。
OpenGLでは、これをいちいち計算してポリゴンを形成する各頂点毎に設定するみたいです。

この辺の理解とOpenGL特有の関数の多さで、表示までに時間が掛かってしまいました

ちなみに、OpenGLにはフォグ(霧)という機能もあります。これも、より見た目をリアルにするには必要なのかな!?まあ処理速度と見た目の効果次第では却下になるかもしれませんが。

写真は、光を当てた立方体です。静止画ではちょっとしょぼいですが、くるくる回すと面が光に反射してきらきらしていい感じです。
$Cocoaを飲む-ライティング
以外と知られていないMacの画面共有(リモートデスクトップ)の方法。

Macにはデフォルトで画面共有ができるソフトが入っている。その名はVNC。
Unix/Linuxではおなじみのソフトで、OS XもUnix系OSなので問題なく使える。
ちなみに、VNCを使っていれば接続先のOSは何でも良い。MacからLinux/Windowsを制御するのも可能だし、その逆も可能。
今回は相手がMacという設定で解説する。

使い方はすごーく簡単。

まず、接続したいMacのシステム環境設定で画面共有を許可する。接続先の設定はこれだけ。
$Cocoaを飲む-share_setting

接続元からは、Finderからサーバに接続を選択し、
Cocoaを飲む-toServer01

vnc:// でアクセスする。
Cocoaを飲む-toServer02

認証を求められるので接続先のユーザ名とパスワードを入力する。
$Cocoaを飲む-ユーザ名とパスワード入力画面


これだけで画面共有を開始できる。
Mac OS X には昔から沢山の隠し機能がある。

主に開発者向けの機能が多いんだけども、中にはとても便利な機能も隠されている。

このSecretsをインストールするとシステム環境設定で Mac の隠し機能の設定をすることができる。

$Cocoaを飲む-secrets

例えば Top Secrets > File type for screen captures の設定はグラブで撮影したスクリーンショットのデフォルトファイルタイプを設定できる。私はこれをpngに設定しているので、撮影したデータを変換すること無くブログにアップすることができる。