iPhone開発 【あいほーん】
無為空間 むいむい(´ω`*) Entries ポイントスプライト(というかパーティクル)で遊ぶ タグ: iPhone OpenGL Objective-C 指を置くとパーティクルが噴き出す。 複数(5本まで)指を置くと、別の指から噴き出したパーティクル同士が引かれ合う。 そんなおもちゃ。 例によって「OpenGL ES Application」の新規プロジェクトを作成する(Xcode 3.1.2)。 iPhone OS 2.2 Libraryのサンプル「GLPaint」に含まれている「Particle.png」をプロジェクトに追加する。 「Frameworks」に「CoreGraphics.framework」を追加する。 新規ファイル「ParticleSystem.h」をプロジェクトに追加し、以下のコードを記述する。 #import <CoreGraphics/CGGeometry.h
てっきりできないものと思い込んでたけど、OES拡張使うとできるみたい。 //減算合成 glBlendEquationOES( GL_FUNC_REVERSE_SUBTRACT_OES ); glBlendFunc(GL_SRC_ALPHA, GL_ONE); //減算以外のアルファブレンド合成 //↓GL_FUNC_REVERSE_SUBTRACT_OES 使った場合これで戻す glBlendEquationOES( GL_FUNC_ADD_OES ); //通常のアルファ合成 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); //加算合成 glBlendFunc(GL_SRC_ALPHA, GL_ONE); //乗算合成 glBlendFunc(GL_ZERO, GL_SRC_COLOR); //反転合成 glBlendFunc(GL_
OpenGLではプロジェクション(射影)変換行列(GL_PROJECTION)、モデル座標変換行列(GL_MODELVIEW)など複数の行列を使います。 どの行列で検証しても良いのですがここでは主に使用する行列である、モデル座標変換行列の値を取得してみます。 プログラムの主な部分は以下の様になります。 GLfloat m[16]; glMatrixMode(GL_MODELVIEW); // 正規化したとき glLoadIdentity(); glGetFloatv(GL_MODELVIEW_MATRIX, m); printf("正規化\n"); printf("m[0]:% 7.5f m[4]:% 7.5f m[8] :% 7.5f m[12]:% 7.5f\n", m[0], m[4], m[8], m[12]); printf("m[1]:% 7.5f m[5]:% 7.5f m[
僕はInterfaceBuilderを一切使いたくないという方針なので、下記のようにするとUIViewControllerなんかも気軽に間にはさめていい感じになるんじゃないでしょうか。 「OpenGL ES Application」でプロジェクトを新規作成 EAGLView.hとEAGLView.mをどこかにコピー 「Window - Based Application」でプロジェクトを新規作成 さっきとっておいたEAGLView.hとmをClassesグループ内にコピー Frameworksグループ内に既存のフレームワークとして「OpenGLES」と「QuartzCore」を追加 EAGLView.mのinitWithCoderメソッドの中身を、initWithFrameメソッドを作成してそっちにコピー EAGLView.mのinitWithCoderメソッドを削除 AppDelegat
概要 iPhone で egl を利用する場合には、"OpenGL ES Appication" というテンプレートが用意されているのでこれを参照しながら、初期化処理を追っていけばよい. テンプレートが何をしているのか、理解するのは重要なので、テンプレートを参照しながら、初期化周りを自分で実装してみることにする layerClass の働き egl を表示するための View オブジェクトを作成する必要があるが、 egl には専用の layer クラスであるCAEAGLLayer が用意されている UIView 初期化時に、 CAEAGLLayer を利用して layer を作成するためには、ため、 UIView のクラスメソッド layerClass をオーバーライドする. + (Class) layerClass { return [CAEAGLLayer class]; } クラスメ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く