tsurumura-seisakusho.blogspot.com
Tsurumura Seisakusho: All about OpenGL ES 2.x 2/3 -5
http://tsurumura-seisakusho.blogspot.com/2012/04/all-about-opengl-es-2x-23-5.html
All about OpenGL ES 2.x 2/3 -5. 65310; 2/3 -4. 2/3 の最後です。超特急風味。 Using the Buffer Objects. バッファーオブジェクトの使用はとっても簡単! GL ARRAY BUFFER. と GL ELEMENT ARRAY BUFFER. では、(ついに最後だ!)次はどうやって EGL API を使ってレンダリングを完成するかを見てみよう。 ここまでは基本的なデバイススクリーンへの描画について見てきた。しかしフレームバッファのようなオフスクリーンやテクスチャに描画することもできるし、それをファイルに保存したり、デバイススクリーンの中で画像を作ることもできる。 ここまででわかっていると思うが、港のクレーンのフックの一つへの指令というのは最後にバインドしたオブジェクトに対して行われる。よって、このメソッドを使うときには使いたい frame buffer をバインドしておく必要がある。引数には OR " " ででもって複数の掃除をすることができる。 65288;補足: glDrawElements. V0,v1,v2,v3,v4,v5}.
tsurumura-seisakusho.blogspot.com
Tsurumura Seisakusho: All about OpenGL ES 2.x 2/3 -4
http://tsurumura-seisakusho.blogspot.com/2012/04/all-about-opengl-es-2x-23-4.html
All about OpenGL ES 2.x 2/3 -4. 65310; 2/3 -3. Vertex and Fragment Structures. まずはこの図を見てみよう。( 元ネタサイト. へ)ここでは Attributes, Uniforms, 変数(定義済み変数)、ビルトイン関数を紹介します。 頂点シェーダー(VSH) はいつも1つ以上の Attributes を持つ。Attributes は3Dオブジェクトの頂点を生成するために使われ、頂点ごとにのみ定義される。頂点の最終的な位置を決めるためには OpenGL の変数 gl Position や gl PointSize を、フラグメントシェーダーなら gj FlagColor なんかを使うことになる。 Attributes, Uniforms, 変数は GPU と CPU の間の橋渡しをするものだ。僕らはレンダリングをする( = glDraw* メソッドを使用する)まえに、VSH などに Attributes の設定(? 次は定義済み変数 (=Built-in Variables)。僕らはシェーダーに対してそれらを設定...
tsurumura-seisakusho.blogspot.com
Tsurumura Seisakusho: 4月 2012
http://tsurumura-seisakusho.blogspot.com/2012_04_01_archive.html
OpenGL では描くのは三角形ベース(モノによっては四角形も使用できる)です。 もしある平面が全体に凸型なのであれば、以下のような組み合わせで頂点を結び、三角形を描いていけば面を埋めることができます。 12539;・・. 8251;平面の頂点の番号が0, 1, 2, 3, , , と並んでいて、平面に穴が無いことが条件。 しかし凹型の場合は一筋縄ではいきません。で、調べてみると、. Http:/ www.gamedev.net/topic/483457-dividing-concave-polygon-into-convex-ones/. の Dave さんの返答がドンピシャ。 Http:/ www.cgal.org/Manual/3.2/doc html/cgal manual/Partition 2/Chapter main.html. Http:/ www.bringyou.to/compgeom/. 1つめのリンクはソースを読めばわかると思います。が、自分は2つめでアルゴリズムに納得できたので1つめはよくは見ていません。 2) inessential である辺を除去する。 テクスチャに使用する...
tsurumura-seisakusho.blogspot.com
Tsurumura Seisakusho: OpenGL ES テクスチャ設定 @iOS
http://tsurumura-seisakusho.blogspot.com/2012/04/opengl-es-ios.html
OpenGL ES テクスチャ設定 @iOS. OpenGL ES をちまちまといじっているわけですが、少し(かなり)はまった箇所があったので書いておきます。 参考: http:/ www.cocos2d-iphone.org/forum/topic/2319. GlTexParameteri(GL TEXTURE 2D, GL TEXTURE WRAP S, GL CLAMP TO EDGE); glTexParameteri(GL TEXTURE 2D, GL TEXTURE WRAP T, GL CLAMP TO EDGE);. これでも解決しましたが、第3引数に GL REPEAT を指定したいときもあるよね、ということで米国の掲示板を探してみました。 テクスチャに使用する元画像(自分の場合はPNG)のサイズを power of two にする。 Power of two は日本語にすると「2のべき乗」。つまり、1, 2, 4, 8, 16, 32, 64,…といった数値のことです。 OpenGL ES テクスチャ設定 @iOS.
tsurumura-seisakusho.blogspot.com
Tsurumura Seisakusho: 凹型ポリゴンの三角形分割
http://tsurumura-seisakusho.blogspot.com/2012/04/blog-post_28.html
OpenGL では描くのは三角形ベース(モノによっては四角形も使用できる)です。 もしある平面が全体に凸型なのであれば、以下のような組み合わせで頂点を結び、三角形を描いていけば面を埋めることができます。 12539;・・. 8251;平面の頂点の番号が0, 1, 2, 3, , , と並んでいて、平面に穴が無いことが条件。 しかし凹型の場合は一筋縄ではいきません。で、調べてみると、. Http:/ www.gamedev.net/topic/483457-dividing-concave-polygon-into-convex-ones/. の Dave さんの返答がドンピシャ。 Http:/ www.cgal.org/Manual/3.2/doc html/cgal manual/Partition 2/Chapter main.html. Http:/ www.bringyou.to/compgeom/. 1つめのリンクはソースを読めばわかると思います。が、自分は2つめでアルゴリズムに納得できたので1つめはよくは見ていません。 2) inessential である辺を除去する。
tsurumura-seisakusho.blogspot.com
Tsurumura Seisakusho: ビット平面
http://tsurumura-seisakusho.blogspot.com/2012/04/blog-post.html
OpenGL にかかわらず情報処理技術全般で使われる言葉。"bitaplane" で検索するよりも「ビットプレーン」で検索したほうがわかりやすい例が出ました。 ある画像ファイルを考えてみます。画像ファイルというのはピクセル(画素)と呼ばれる点が集まったものです。300個のピクセルが200列に並べば300x200のサイズの画像になります。 それぞれの情報が true か false というのは1か0という値で表現できます。例えば輝きがあって(=1)、赤くて(=1)、クリックに反応しない(=0)ピクセルが持つ情報は[110]となります。他にも例示してみると以下の様になります。 今、幅3px高さ2pxの小さな絵があったとします。その情報は以下のようになっているとしましょう。 ある1つの要素(ビット)に注目して取り出した時に、1とゼロの2次元配列(幅x高さ)で表すことができます。この2次元配列がビット平面、ということになります。 2, 10][5, 11][6, 12]. 3, 10][2, 12][2, 12]. 0010, 1010][0101, 1011][0110, 1110].
tsurumura-seisakusho.blogspot.com
Tsurumura Seisakusho: OpenGl ステンシルバッファ
http://tsurumura-seisakusho.blogspot.com/2012/04/opengl.html
ちょっと OpenGL(ES) のステンシル関連が頭の中でまとまらないので、書きながら考えてみます。最終的に目指すのは複数のマスクを置くこと。ただし1つの絵に対して複数のマスクを設定することについては考えていません。 何かのお役にたったらとっても幸いかもということで。正確性については話半分とし、公式のリファレンスなどでご確認ください。 65310; OpenGL ES API リファレンス. Void glStencilFunc(GLenum func, GLint ref, GLuint mask);. ステンシルテストが行われた時の、ref の値とステンシル値に対してビット単位のAND演算する値を指定する。初期値は2進数で表した時に11111…となる数値。 ステンシルテストは「比較値」と「ステンシルバッファの値」を比較した結果を判断し、そのピクセルへの描画を許可するかを決める。ステンシルテストを有効化するためには. GlEnable(GL STENCIL TEST);. とする。ステンシルテストの結果の扱いは glStencliOp() で指定する。 Ref vs mask の比較. ステンシルバッ...
tsurumura-seisakusho.blogspot.com
Tsurumura Seisakusho: All about OpenGL ES 2.x 2/3 -3
http://tsurumura-seisakusho.blogspot.com/2012/03/all-about-opengl-es-2x-23-3.html
All about OpenGL ES 2.x 2/3 -3. 65310; 2/3 -2. シェーダーは GLSL もしくは GLSL ES を使っている。 シェーダーはいつも頂点シェーダー(VSH) とフラグメントシェーダー(FSH) のペアではたらく。 GlDrawArrays() や glDrawElements() といった描画コマンドを送るごとにシェーダーのペアは処理を実行する。 FSH はオブジェクトの可視断片のそれぞれについて処理を実行する。FSH はグラフィックパイプラインにおいて Fragment Operations の前に処理されるので、その時点では OpenGL はどのオブジェクトが前面にあるかといった情報は知らない。つまり、隠れているようなオブジェクトも処理するということ。FSH の仕事は断片の最終的な色を定義すること。 Shader and Program Creation. シェーダーペアを作ったら、次はそれらを格納する Program Object を作ります。手順としては Program Object を生成し、何かしら...は引数を持たない。なぜ...
tsurumura-seisakusho.blogspot.com
Tsurumura Seisakusho: All about OpenGL ES 2.x 2/3 -2
http://tsurumura-seisakusho.blogspot.com/2012/03/all-about-opengl-es-2x-23-2.html
All about OpenGL ES 2.x 2/3 -2. テクスチャはいろいろ話すことがあるが、長くなりすぎないように書いてみよう。発展の内容については第3パートで書くつもり。 まずすることは画像のサイズを Power of Two (POT) に合わせること。つまり一辺の長さを2, 4, 8, 16, 32, 64, 128, 256, 512, 1024(=max)ピクセルにするということ。これは GPU が使いやすいようにするため。 65288;補足:実装系によっては POT でなくても OK な場合がある。iOSもそうだとか。). もう1つ。一般に JPG や PNG, BMP などは左上の隅の頂点を (0,0) として書かれているが、OpenGL は右下隅を (0,0) として書くので、それにあわせておくこと。縦方向に反転させておけば良い。 このピクセルの配列データ(texel ともいう)は OpenGL によって扱いやすいフォーマットとして GPU や フレームバッファの中に保管される。 ではイラストで説明してみよう。( 元ネタサイト. テクスチャユニットは複数のシェーダーペアによって...
SOCIAL ENGAGEMENT