5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[openFrameworks] 透過画像を重ねて描画したい時の注意点

Last updated at Posted at 2015-03-01

始めに

透過pngを重ねて描画したいときに気づくまでに相当の時間かかってしまったので残しておく。

発生した問題

元画像の透過pngは円以外は透過されてある
FireParticle.png

この円を連続で出してみる。色は少し加工してある

スクリーンショット 2015-02-22 23.09.20.png

画像の円以外の透過されている部分が後ろの画像にかぶさってしまい後ろの画像が隠れてしまっていることがわかる。透過されている部分は後ろと重なり合って欲しい。

原因

原因は2つだった。

ofEnableDepthTest();
ofSetVerticalSync(bool);

の2つ。

ofEnableDepthTest()

深度テストを有効にする関数。3Dの立体の場合にありえない重なりになるのを防ぐ(つまり深度関係を明確にする関数)なのだが、これを加えた状態で透過pngを描画すると透過部分が上手く働いてくれなくなるみたいだ。僕はこれをこれを入れていたがばかりに思ったように描画してくれなかったようだ。
でちゃんとしたのがこちら。

スクリーンショット 2015-03-01 17.29.16.png

透過部分が重なっている部分に影響を与えなくなったことが確認できた。これをやりたかったんだよ。

これに気づくまでにかなりの時間を有したが、振り返ると馬鹿みたいである...

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?