
前回同様、適当に壁を設置。配置はランダム。
下の画像のように、素で壁を置くとやたらと浮いて見えるので、
適当に加算合成で壁にエフェクトをかけた。

CAVEがよくやる手法で、
虫姫さまふたりの1面岩や島なんかも同じようなエフェクトがかかっている。
見てのとおり、加算合成のエフェクトを設置するだけで、やたらなじむ。
なぜ発光しているのかは俺にもわからん。不思議パワーでうおっまぶしっ。
壁画像は32*32を2倍に拡大して表示している。
64*64の画像を等倍でレンダリングすると、
参照するピクセルが増えるからか処理が重くなる。
それに、ドットが荒いほうが岩っぽくみえる不思議。
この画像は背景同様に雲画像生成ツールで作成。
いろんなところに使い回しがきくのでたいへん重宝する。
エフェクト部分は、ライトセーバーのエフェクトと同じ方法で作成している。
ガウスぼかしで10pxほどぼかしたものを加算合成すると、こんな感じに。
Youtubeにライトセーバーの描き方なる動画があり、参考になった。
ほかにもMacのアイコンの描き方とか、
いろいろ参考になる動画が結構あるので要チェックだと思う。
レンダリングにDrawPrimitiveUPを使用しているんだけど、
これをVertexBufferを使用することで、
呼び出し回数を200回ぐらいからDrawPrimitive1回になるよう修正してみたが、
特に速度は変わらなかった。
根本的な実装方法が悪いのか200回ぐらいじゃ差が出ないものなのかは不明。
後からいろいろ既存のゲームを調べてみると、
壁とかが背景から浮いてても、敵や自機なんかも背景から浮くので
結果として問題ないようだ。
0 件のコメント:
コメントを投稿