Xcode(7回目) [Xcode]

OpenGLのライブラリ群に押され、圧倒ぎみです。しかし、Xcodeは難なくコンパイルします。このコードの中には、、見慣れないファイルが有ります。多分他のOSではないはずなのですが、私も今迄知りませんでした。このファイルです。refrect.vshと言うようなファイルです。
調べると、種類がGLSLFragmentShaderと言うファイルです。なのでこのグラフィックツールを起動させてみました。これにはヘルプがあって、それぞれの説明が付いています。当然英語ですが。それには、Program View,
Render View, Textures View, Bymbols Viewの説明が有ります。最後にSample code that's available on http://www.opengl.org/.と有りましたので、クリックしてみたのですが、not foundでしたが、せっかく訪問したので、リファレンスを見てみたのですが、これも圧巻です。なのでこのサンプルの中での使われ方を述べると、
vsh, fshで1セットのようです。二つをインポートするとLink Succeededが出て来ます。で、reflectの二つをインポートすると自動でコンパイルしシンボルとリンクするみたいです。それでSymbolsのセグメントをクリックすると、File Name とType が表示され、クリックしてみるとこんな感じです。
Symbols.png
 
こういうのが四つもあるので、かなりの事をしているのが分かります。このアニメートを選択すれば、どんな動きになるか分かると言う優れものです。レンダー、テクスチャーは、色々やってみた方が分かり易いので省きました。このアプリはOpenGL, CL, C++,Objective-C, Cと多彩な言語と、インターフェースビルダーを使って作成した形跡が有ります。まあ、Developerはこういったツールを作るのが主たる目的と言えるかも知れませんが、簡単そうで多分これも圧巻です。
そこで、OpenGLでC++を駆使したサンプルコードを見たいのですが、サンプル名が、OpenCL_OceanWaveです。
ビルド実行すると、こんな感じになるのですが、
OcaenOcean.png
キー操作できて、'o', 'p', '-', '+', '0', '9', '[', ']', で太陽の上下の位置、波の多少、風の吹く方向、太陽の大きさが操作できます。次がその変化させたところです。
Ocean1Ocean1.png

かなり現実的であり、実際これが波打っているので、これだけでも優れものです。GPUの変化も見て取れます。操作時には上部に、今の変化も表示されます。このC++ファイルは、ほとんどが、このshaderファイルを生かすためのクラスなはずです。なので一度参照から外してみましょう。
外しました。ところがどっこい、普通に動作します。なくても動作するのに、何故包含するのでしょうか。今度はまたプロジェクトに追加しました。逆に今度は、このために4つの警告が出ました。ということは、開発者はこの4つのファイルを参照に作り削除しなかったということでしょうか。なるほどこの4つのファイルにはそれぞれmain関数が有ります。コンパイラーはメイン関数を2つ以上見つけると、エラーをはじき出すはずです。と言う事は初めから計算してなかったと言う事でしょうか。ではプリプロセスを見てみましょう。あれ、やはりそんな物は出て来ません。アセンブラコードも有りません。言わば、単なる書類として添付しているみたいです。
もう一つ見慣れないファイルが有ります。compute_kernels.clです。これはどうなんでしょうか。また外してみます。やはりコンパイルできますし、再度追加すると、no rule to prosess file '$(PROJECT_DIR)/compute_kernels.clと言う警告が出ます。これは、作った本人しか意図する事が分からないようです。まあ参考にはなりますが。ここはcongalagachulationなので、一旦保留にしておきます。

Dev Centerのサンプルを見るとやっとLionでしか動作しないサンプルが出て来たみたいです。これには、AVFoundation.frameworkとCoreMedia.frameworkと言うライオンにしかないフレームワークがあるので、Xcode3.2では明らかに無理なので、コードだけ見ると、大した事はないようです。最もサンプルなので当たり前かも知れませんが、これを見ると映像の強化も有るようです。そうするとQuickTimeはどうなるんでしょうねえ。私は、まだ過去の遺産も消化できていないので、取り敢えずは、今のままで十分です。続く。
タグ:XCode
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:学問

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

Xcode(6回目)Xcode(8回目) ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。