電子ガジェットいろいろ

電子系のガジェットやアプリ開発等の話題を書いてます

iPhoneSDK用OpenGL ESテクスチャクラス

いつも自分で使ってる自作のiPhoneSDK用OpenGL ESテクスチャクラスを公開します。

ダウンロード

ダウンロードはこちら
OSXでzip圧縮しています。

特徴
  • 難しい手続き無しですぐにテクスチャが使える。インスタンスを作って画像ファイル名を指定して、使いたい所でdisableTextureメソッドを実行するだけです。
  • テクスチャの大きさ、縦横比率を気にしなくて良い。内部で256x256に変換して管理している。
  • 複数のテクスチャの管理が楽

自分用に作ったので、他の人が使いやすいかわかりません。
機能は必要になった時に追加してるので、最小限しかありません。
ほとんどの場合は今のままの機能で十分で、OpenGLを使うときはこのクラスを使い回しています。

以下、使い方を簡単に説明

主な目的が自分用のメモなので、細かい説明はしません。

プロジェクトのResourcesへテクスチャファイルを追加

例としてテクスチャファイル"tex.png"を追加

プロジェクトのFrameworksへCoreGraphics.frameworkを追加

プロジェクトのClassesへuglTexture.hとuglTexture.mを追加

クラスを使うモジュールのヘッダファイルにインポート文を追加

#import "uglTexture.h"

テクスチャクラスのインスタンスを作成

uglTexture *textureA = [[uglTexture alloc] init];

テクスチャファイルの設定

インスタンスメソッドの"loadTexture:(NSString*)"を使います。

[textureA loadTexture:@"tex.png"];

テクスチャの有効化

有効にしたいテクスチャのインスタンスのメソッド"enableTexture"を使います。

[textureA enableTexture];

このメソッドは、glTexParameteri等の設定から"glEnable(GL_TEXTURE_2D);"を実行する一連の処理を行っています。

テクスチャの無効化

無効にする場合は、インスタンスメソッド"disableTexture"を使います。

[textureA disableTexture];

このメソッドは"glDisable(GL_TEXTURE_2D);"を実行するだけです。

使い終わったらメモリ解放

[textureA release];

使用条件

ライセンス形式はオリジナルです。
このクラスを使うのは個人利用、商用利用共にに自由です。
商用利用の場合は、連絡してもらえると嬉しいです。
ファイルの改変も自由ですが、ファイル名とクラス名を変更してください。” uglTexture”という名前は使用しないでください。
このクラスを使ってアプリを作った方は、ドネイト代わりに"Wavefront Object Model Viewer"を購入して頂ければ、幸いです。

OpenGLプログラミングガイド 原著第5版

OpenGLプログラミングガイド 原著第5版

OpenGL® ES 2.0 Programming Guide

OpenGL® ES 2.0 Programming Guide