ページ 11

OpenGL ESについて Mac

Posted: 2010年7月26日(月) 16:33
by
このサイトはDirectX関連メインな気がするのですが
どうしてもわからないので質問させて頂きました。
スレ違いだったらすみません。

iPhoneアプリを作る為にMacを使いプログラムをしております。
購入した本についていた素材は透過するのですが
自分で作った素材はなぜか透過しません。
素材はWindowsで作っております。

mato_1 自分で作ったもの(Windows フォトショにて)
mato_2 本についてたもの

クリーニングしてもmato_1の方は背景にゴミみたいなものがついてしまってます。
何故なのかおわかりになる方いらっしゃらないでしょうか?

Re:OpenGL ESについて Mac

Posted: 2010年7月26日(月) 18:10
by ookami
> mato_1 自分で作ったもの(Windows フォトショにて)
> mato_2 本についてたもの

それぞれのファイル形式は何ですか?

# 「ゴミみたいなもの」といえばjpgのフライノイズが思いうかびますが…

Re:OpenGL ESについて Mac

Posted: 2010年7月26日(月) 18:27
by
一応添付してはあるのですが両方ともpngです。
何故なのか本当にわかりません・・・。

Re:OpenGL ESについて Mac

Posted: 2010年7月26日(月) 18:40
by ISLe
画像の透過情報は問題ないように見えますけど。

透過しないというのはまったく透過しないということですか?
ゴミが付くということは透過自体は行われているが余分なものが描画されているということですか?
そのゴミについてもっと詳しく教えていただけませんか?

テクスチャはマルチサンプルされるとき上下左右が繋がっていているように処理されるので端っこギリギリまで描かれていると画像の反対側がはみ出てくると思います。

Re:OpenGL ESについて Mac

Posted: 2010年7月26日(月) 18:45
by シエル
そのゴミをこの目で見てみたいです。

Re:OpenGL ESについて Mac

Posted: 2010年7月26日(月) 19:25
by
皆さん回答ありがとうございます。
サイズが変わってるのは気にしないで下さい。

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
drawTexture( 0.0f, 0.0f, 1.0f, 1.0f, texTarget, 255, 255, 255, 255 );
glDisable(GL_BLEND);

Re:OpenGL ESについて Mac

Posted: 2010年7月26日(月) 19:25
by
すみません。
間違えて投稿してしまいました。

サイズが変わってるのは気にしないで下さい。

ソースはこんな感じです。
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
drawTexture( 0.0f, 0.0f, 1.0f, 1.0f, texTarget, 255, 255, 255, 255 );
glDisable(GL_BLEND);

画像のような感じになってしまいます。

Re:OpenGL ESについて Mac

Posted: 2010年7月26日(月) 22:37
by Justy
 読み込み部分がどうなっているのかわからないのですが、多分使っているサンプルの問題な気がします。

 試しに

Downloads for sazameki's opengl-texture-loader - GitHub
http://github.com/sazameki/opengl-textu ... /downloads

こちらのライブラリをDLして、SZGLTextureLoader.h/mファイルをプロジェクトに
登録して下さい。

 使い方は読み込みたいソースで SZGLTextureLoader.hを importして SZGLLoadTexture関数に
リソースパスと2つのCGSizeを SZGLLoadTextureに指定します。
[color=#d0d0ff" face="monospace]
CGSize imageSize, textureSize;
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"mato_1" ofType:@"png"];
GLuint texName = SZGLLoadTexture(imagePath, &imageSize, &textureSize);
if(texName == GL_INVALID_VALUE)
// エラー
[/color]
こんな感じで読み込み完了です。

 これで表示してみてください。
 多分うまく表示されるはずです。

Re:OpenGL ESについて Mac

Posted: 2010年7月27日(火) 00:15
by
Justy様

ビンゴです!!
本に書いてある関数を使っていたので疑っておりませんでした。
頂いたソースを使ってみましたら問題なく読み込め解決しました。

Justyさんのお名前を度々見ますが
このようなことまで知っているのですね・・・
もう知らないことがないのでは・・・と思ってしまいました><

今回は本当に助かりました。
ありがとうございました。

Re:OpenGL ESについて Mac

Posted: 2010年7月27日(火) 11:11
by シエル
JustyさんはOpenGLまで詳しいのか。。。さすがです。
解決してるようなので代わりに解決しときます。

Re:OpenGL ESについて Mac

Posted: 2010年7月27日(火) 23:51
by Justy
 解決して何よりです。


>Justyさんのお名前を度々見ますが
 最近は忙しくてあまり書き込めてないんですよね。


>JustyさんはOpenGLまで詳しいのか
 嗜む程度ですよ。
 それに今回のは OpenGLというより iPhone特有の問題ですし。

Re:OpenGL ESについて Mac

Posted: 2010年7月28日(水) 01:00
by
>>シエル様
解決マークをつけ忘れておりました。
申し訳ないです。
代わりにつけて頂いてありがとうございます。

>>Justy様
特有な問題でも理解できるのがすごいですね><
色々なサイトをみたり本を見ているのですが未だにあまり理解できないです・・・