ラベル 3D の投稿を表示しています。 すべての投稿を表示
ラベル 3D の投稿を表示しています。 すべての投稿を表示

 OpenGL上でポリゴンを選択したいときは、セレクションなんとかを使いますの。
 (久しぶりの話題過ぎて細かい名前とか忘れましたの)

 ただ、これを使うためには、選択したい全オブジェクトを一度描き直す必要がありますの。そのため、テクスチャとかを除けばほぼ二度手間、つまり描画コストもほぼ二倍になりますの。。使いにくいですの。。。

 というのが、昨日までのわらわですの。

 これって、必ずしも見えてるものと同じものを描画する必要は無いのですねっ。と、さっき「全てをまじめに描き直す必要は無さそう」という話を見かけて思いましたの。

 つまり、厳密に”ポリゴン”を選択したいわけでなければ、まじめにどころか、座標を合わせてぽこぽこ立方体とか描いておけば十分だったのですね。ぽこぽこ。

 物体の形によっては判定を球体にしたいこともあると思いますが、その場合、楕円形で無くてもいいなら、さらに手を抜いてビルボード式に円を描画でもOKですね。球じゃなくて円で、さらにいうと円というかn角形的なやつ。あまりの描画コストの安さに胸キュンですね。

 背景を省略したり、ライトを消したりテクスチャや色を付けないとかしても、それでも描画コストは相当かかってしまうのですが、これならコストなんて無いも同然ですの。なんだか拍子抜けですの。。

 それにしてもそれにしても、これってやっぱりまさかもしかして普通に素でみんな知ってた方法です?
 まじはにゃにゃーんですの。

 思い出したようにボーン変形を。
 前の投稿からもう2ヶ月になるのかぁ。

 他人任せ全開ですが、まずは参考物件の紹介から。

 メタセコイヤ依存のモーション作成ソフト「mikoto」の解説など
 松井めし画術HP 様

 mikotoの雰囲気で言うと、
 データ:「モデル、ボーン、ボーンの影響範囲」の三つがあればOK。
 再生側:「回転の中心からの距離を一定に保ちつつ変形」をベースに、なにやら重みを使った調整をしているらしい。
 という感じ。

 鬼門はボーンの影響範囲の扱い。実は、立方体を扱うのは、球体のそれよりも何倍も大変なのです。

 意外かも知れませんが、そうなのです。
 円や球は中心からの距離が全部同じなので、当たり判定とかするときはとってもらくちん。算数レベルの数学で扱えちゃうので、今までずっとそれだけでお茶を濁し続けて来たわけです。

 そんなわけで、今回ばかりはさすがに…と言うか、ツケが回ってきたというか。影響範囲を全部、球体で表現するのは無茶過ぎますし。うーん。

 正直、算数+ピタゴラスの定理の駆使だけで、こういう次元まで辿り着いてしまったこと自体に無理がある気がしてなりません。

 まぁ、原理をトレースして部品さえ作ってしまえば、こっちのものなので。単にガチで数学するよりはだいぶ敷居は低いんですけど。それでも、瞬間的には理解している必要があるので、あわわはわわ。

 とりあえず、周辺部から埋めていこうと言うことで、急に出てきましたが「クォータニオン」なんかも捜査線上に浮上。どうもmikotoのファイルがそれを使っているらしいので、mikotoのファイルを直接読んじゃえば、自前のエディタ作らなくてもいいじゃん的な発想から言うと必要なのです。

 クォータニオンについては、Google先生お勧め(*)のここがたぶんイチオシ。

 まだざっとしか読んでないので、今度ちゃんと読もうっと。

 (*)"クォータニオン"で、一番上に出てきた。

 ロボットっぽい関節から、生き物っぽい関節へ。

 ボーンはそのまんま、骨のようなものと思えばおっけー。
 これを仕込むと、単純に部品を組み合わせたのと違って、関節部分がほんとに繋がっているような感じになる。

 ローポリで動作速度至上のかぼちゃ姫的には、これまで敬遠しまくりの技術だったんですけど。3D関連のサイトを回っていたら、意外とやればなんとかなりそうに思えてきたので、ちょっとキープ。

 なにより、ボーンを使うとモデルデータのファイルが一つで済むのです。たぶん。

 原始的に部品を繋いで動かす方法だと、部品の数だけモデルやらファイルやら必要になりますが、ボーンを使えば全身モデルが一つでOK。管理が圧倒的にラクです。
 (ボーンの場合、一つのモデルデータを変形させて動かすので、むしろバラけてるほうがめんどいわけですね。)

 しかも、部品ごとに中心をどこに設定するかとかも考えなくていいのです。便利便利。

 さて。そんな便利なボーンですが、どう実装したらいいのかしらー。

 てきとうなアレでコレするところによると、どうも「関節部分から見て、各点の距離が同じになるように変形すればいいらしい。」と言うソレのような。

 長くなりそうなので、変形については別に書こうー。