ドット地球儀
2009/01/22 22:35 - AS3.0
いやあ慧眼の士の前では迂闊なことはできませぬなぁ。
何がって WonderFl に私が投稿した「ドット地球儀」という作品についての話です。
こいつを favorites に登録してくださった keim_at_Si さんのコメント。
へへぇー。恐れ入りましてございます。
確かにこの部分がダメなのは承知していたんですが、スマートな解決方法が思いつかなかったので、投げ出してしまったのでした。
地球の陸地を構成する三次元座標を二次元座標に落として setPixel でドットを打つ際、Z座標がマイナスの場合青色で、プラスの場合黄色になるようにしています。
つまり、青が地球の裏側、黄色が地球の表側になるわけですが、裏ドットのスクリーン座標と表ドットのスクリーン座標がバッティングした場合に問題が露呈します。
コード処理上、後から打ったドットが、先に打たれたドットを上書きしてしまうわけですが、後から打たれるドットが表のドットなら何の問題もないんですが、後から打たれるのが裏のドットになると作品として破綻してしまうのです。
とりあえずの処置として、裏ドット用のキャンバスと表ドット用のキャンバスと二枚用意するという、実に泥臭い実装にあいなりました。
ブレンドモード調整とかすれば1枚のキャンバスでも解決できる内容なんすかねぇ。
ここ1週間ばかしインフルエンザにやられっぱなしで全然頭が働かねーんで、誰か教えてプリーズ。
なお、このコードを書くにあたって、いろいろ新しく取得した知見を投入しました。
それについてはまた別の機会に整理してエントリーすることになりますので、よろしければご覧ください。