OpenGLと3dに関するwaterlのブックマーク (4)

  • (Mac・iPhone)プリミティブについて - 強火で進め

    今回はプリミティブについて解説です。OpenGLでプリミティブと言えば点やライン、三角形、四角形、多角形などのことを表します。 OpenGLで使用できるプリミティブには以下のものがあります。 GL_POINTS GL_LINES GL_LINE_STRIP GL_LINE_LOOP GL_TRIANGLES GL_TRIANGLE_STRIP GL_TRIANGLE_FAN GL_QUADS GL_QUAD_STRIP GL_POLYGON それでは順番に解説します。緑色で記述してある数字は頂点の指定の順番です。 GL_POINTS 点を描画。 最初の1つ→頂点1つを指定(頂点データの0番を使用して描画) 2つ目以降→頂点1つを追加で指定(2つ目は頂点データの1番を使用して描画) GL_LINES 2つの頂点を指定して、ラインを描画。2つ目以降のラインもそれぞれ2つの頂点を指定する。 最初

    (Mac・iPhone)プリミティブについて - 強火で進め
    waterl
    waterl 2013/04/16
    GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN の頂点の指定の順番など図で説明してくださっています。
  • 床井研究室 - GL_CLAMP_TO_EDGE, GL_CLAMP_TO_BORDER

    朝日新聞の火曜日の夕刊に連載されている「熱血!マンガ学」というマンガ評を結構楽しみにしているんですが,今週は CLAMP の「カードキャプターさくら」でした.「年齢や性別を超えたつらく切ない恋も描かれる」と評されていましたが,私が子供のを借りて読んだときは,「これを小学生相手に描くにはちょっと難しいんと違うか?」と思える部分がありました.少女漫画も進化したもんだ.そう言えばこの映画を見に行ったとき(子供連れて行ったんだよ),自分と同じような家族連れに混じって,大学生くらいの男の子のグループをちらほら見かけました.見る方も年齢や性別を超えてるんですね. GL_CLAMP の問題 CLAMP つながりというわけではないんですが(狙ってましたが),書き忘れたと思っていたことの三つ目です.ポリゴンにテクスチャをマッピングする際,テクスチャの拡大縮小に線形補間(GL_LINEAR 等)を指定したと

    床井研究室 - GL_CLAMP_TO_EDGE, GL_CLAMP_TO_BORDER
    waterl
    waterl 2013/04/16
    GL_CLAMP_TO_EDGE, GL_CLAMP_TO_BORDER に関して絵とプログラムで丁寧に解説してくださっているページです。
  • 3Dプログラミング基礎知識(1) - Tech-Sketch

    3Dプログラミングの基礎知識(1) はじめに 主にiPhone/AndroidからOpenGL ESを使って3D表現を行う場合に必要となる基礎知識についてまとめていきたいと思います。 基礎の基礎から説明して行くため、言語や3Dライブラリ(DirectX/OpenGL)に依存しない情報が多くなります。OpenGLに限らず「C++ + DirectX」などの環境で開発を行う人もどうぞ。 内容 5回ぐらいに分けて以下のような内容を書いていきたいと思います。 モデルを構成する頂点情報、面情報 画面に描画されるまでの流れ、平行移動・回転・拡縮行列(ワールド変換) カメラ、Zバッファ 法線、ライティング 頂点シェーダ、ピクセルシェーダ(フラグメントシェーダ) 座標系 3D表現を行う為には3次元の座標系をどのように定義するか決める必要があります。 2Dの場合はX軸、Y軸で座標系を表しますが、3Dの場

    waterl
    waterl 2013/04/15
    非常に丁寧な説明と、図解で解説してくださっているページです。。サンプル等のプログラムはありません。
  • OpenGLの座標系

    左下原点のテクスチャ座標を用いたサンプル テクスチャ座標やウィンドウ座標をOpenGL系に統一したため、確認も含め、次のようなテクスチャを正方形に貼り付ける簡単なプログラムを作成しました。 まず、bmpファイルの読み込みです。実はbmpファイルも左下から順に格納されています。そのため、loadbmp.cのloadBMP関数内で、次のように格納されている順に読み込みます。もちろん、futil.hでの#defineマクロでOPENGL_IMAGE_COORDINATEは(1)に定義されています。 : : 途中略 : : switch(bpp) { case 8: /* 8 bits/pixel */ /* カラーマップ読み込み */ fseek(fp,54,SEEK_SET); fread(&palette[0], sizeof(RGBQuad), 256, fp); #if OPENGL_I

    waterl
    waterl 2013/04/09
    OpenGLとDirect3Dの違いについて解説して頂いているページです。
  • 1