夜7時なんかから仕様大変更の打ち合わせ始めんじゃねーよばーか。
と愚痴のひとつも言いたくなるわな。
全然ぬるいってことはわかってますよええ。でも下を見たらきりがない。
というかですね、帰るの遅くなったらアニメが見れないじゃないですか。日に日にたまっちゃうじゃないですか。あんまりためると消化に休日一日使うんだよ!
すっかりOpenGLの描画を忘れている俺。 glDrawArraysのオフセットにバイト単位の値渡してどうするんだと。
変なミスにはめられながらも、なんとかPrimitive周りをC++に全部移行させた。
本当はglBegin/glEnd風の描画ができるSimplePrimitiveを統合してバッファオブジェクトを渡しての描画なんてできないようにしようかと思ったが、統合が大変なのと、それはそれで困るのでやめ。
でも近いうちにインターフェースの整理はしたいね。
お、露骨にfps上がってやんの。そんなに複雑な事やってなかったんだが、やっぱりRubyではきつい部分か…。汎用性はいらないから高速で処理したいところだもんね。
あと重いのはCgのuniform変数設定辺りだが、結構大変。60fps出てるからいいじゃんといわれたので良いことにした。
いや、良くは無いんだが、もっと重くなってからでもいいかと。どうせやることは決まってるんだし。
他にやることは…うーん、描画をいろいろやって遊ぶのもいいが、それ以外にもやることあるだろうと。
やはりゲーム自体の仕様をなんとかせんとなぁ。流体とか言ってみたものの、それで面白くなると思えないところがやばすぎる。
ちゃんとゲームの面白さを考えないとな。
とりあえずいまの段階でもアイテムとか特殊ブロックを増やして、まじめにステージ作ったらそこそこは面白いかも知れん。
そこを検証するためにも使いづらいステージエディタをなんとか整備するか。え、先送りしただけ?いやいや…いや、まあそのとおりです。
関係ない話だが、MacのOpenGL Profilerで現在バインドされてるバッファオブジェクトを表示する項目が無いのはなんでなんだぜ?とても不便。
やはりNPRは楽しかったのでカテゴリに昇格。
でもあんまりすすんでないよ。
とりあえず輪郭検出。NPRの本を読んでイメージスペースで処理できる簡単そうな奴があったのでそれを実装。
深度と法線を描画してそれぞれのエッジ検出してやって合体!という簡単なもの。結構ちゃんと出た。太くするのはぼかして閾値とっただけ。
ただ暗くするのも何なので、陰の色をクールカラーとして別な色を設定してあげた。まあこれは基本っぽい。
陰影はなぜか3値にしてくれとリクエストがあったので3値化。なぜに3値?
あとはスクリーントーンっぽいテクスチャをちゃんと作ったので適用してみた。いまいち。モアレが出たのは仕方ない。
他にイメージベースで描画した色をHSLに変換して明度成分抜けないかなぁと考えたが、もちろんそんなに上手くいくわけもなく。明度成分をあとから抜くくらいならアルベドマップ描画しておけってな。
でもHSLで色相をいじるのはいろいろやってみると面白いかも。陰の部分はメイド、じゃなくて明度下げる代わりに寒色側に振ってみるとか。逆に暖色側に振るのもありか。
まあクールカラーと同じ考えなんだけどさ。もうちょっと動的に。
で、ティーポットとかBlenderのサルをレンダリングして喜んでたけど、どうもいまいち。
最終的にゲームに組み込むのが目的なんだが、ゲームに使うような細かいテクスチャと併せてレンダリングしたときにどうなるのかいまいち想像がつかない。いや、テクスチャを併せて描かなきゃ役に立たんという想像はなんとなくついているのですが。
あとキャラクターなんかが動いたときにどうなるのかがわからんね。止め絵ではそれなりに見えないこともないんだが、動いたら逆におかしく見えるんじゃないかとガクブル。
いや、スクリーントーン風なんかは非常におかしいだろう事は想像ついてるんですが。現状で止め絵でも、網点しか使ってないからなんかアメコミとかイラストっぽいしね。
いずれにせよQuartzComposerではモデル表示は不自由だし、モーション適用も難しそうなのでゲームに組み込むなりRikoでいじるなりしないとな。
QuartzComposerのカスタムパッチを作るのもそれはそれで興味深いんだが、残念ながらそこまではやってられん。