トップページ > Wiki > OpenGL

OpenGL のバックアップ(No.6)


opengl_logo.jpg

Silicon Graphics社が中心となって開発された、グラフィックス処理のためのプログラミングインターフェース。 --- IT用語辞典より。

参考

チュートリアル。入門にお奨め。

より詳しい情報はこちらから。

OpenGLを利用したサンプル。

リファレンス

テクスチャ

glTexSubImage2D

void glTexSubImage2D(
  GLenum target, GLint level,
  GLint xoffset, GLint yoffset,
  GLsizei width, GLsizei height,
  GLenum format, GLenum type, const GLvoid *pixels
);

アルファ値を利用したポリゴンの切り抜き

TGA画像の読み込み

#define TEX_HEIGHT 256
#define TEX_WIDTH  512
GLubyte image[TEX_HEIGHT][TEX_WIDTH][4];
void initTexture(void)
{
 FILE *fp;
 int x, z;
 
 /* texture file open */
 if((fp=fopen("test.tga", "rb"))==NULL){
   fprintf(stderr, "texture file cannot open\n");
   return;
 }
 fseek(fp, 18, SEEK_SET);
 for(x=0;x<TEX_HEIGHT;x++){
   for(z=0;z<TEX_WIDTH;z++){
     image[x][z][2]=fgetc(fp);/* B */
     image[x][z][1]=fgetc(fp);/* G */
     image[x][z][0]=fgetc(fp);/* R */
     image[x][z][3]=fgetc(fp);/* alpha */
   }
 }
 fclose(fp);
}

RAW画像の読み込み

#define TEXWIDTH  256
#define TEXHEIGHT 256
GLubyte texture[TEXHEIGHT][TEXWIDTH][3];
void initTexture(void)
{
   if ((fp = fopen("tire.raw", "rb")) != NULL) {
     fread(texture, sizeof texture, 1, fp);
     fclose(fp);
   }
}

フォント

Bitmap Font Builder

glutBitmapCharacter

※テクスチャが有効だと表示されないようだ。

void drawString( void* font, char* str ){
   int i = 0;
   while( str[i] != '\0' ){
       glutBitmapCharacter( font, (int)('a') );
       i++;
   }
}
glDisable(GL_TEXTURE_2D);
glColor3f( 1, 1, 1 );
glRasterPos3f( 0, 0, 0 );
drawString( GLUT_BITMAP_TIMES_ROMAN_10, "hello" );
  • GLUT_BITMAP_8_BY_13
  • GLUT_BITMAP_9_BY_15
  • GLUT_BITMAP_TIMES_ROMAN_10
  • GLUT_BITMAP_TIMES_ROMAN_24
  • GLUT_BITMAP_HELVETICA_10
  • GLUT_BITMAP_HELVETICA_12
  • GLUT_BITMAP_HELVETICA_18

その他

フルスクリーン

glutFullScreen();               /* フルスクリーン表示 */

tag/technical note | tag/programing?

iPhoneDev.null-null.net

RSSフィード

このウィキの更新情報を、XML(RSS)フォーマットで提供しています。
ご利用のRSSリーダーやアプリケーションにRSSフィードを登録してください。

ページの先頭へ戻る


Copyright(c) Daisuke Nogami. All Right Reserved.