« BA_Volume普及促進委員会(その2) | トップページ | クラスタの順番を変える話の続き。 »

2008年1月31日 (木)

オーバーラップクラスタの恐怖。

クラスタで悩んでしまった。

このオブジェクトには、マテリアルを割り当てたポリゴンクラスタがいくつかある。マテリアルを割り当てた後で、例えばよく選択するポリゴンの一群をセットにしておこうと、マテリアル用途以外のポリゴンクラスタを作る。当然そのクラスタにはマテリアルは与えていない。ただの選択用だから。

しかし。

マテリアル用のクラスタと選択用のクラスタがオーバーラップしていると、選択用のクラスタの部分は、マテリアル用クラスタを無視して、もとのマテリアルをレンダリングしてしまう。ビューポートではそんなことになってないのに。

ちなみに、マテリアル用クラスタからコンポーネントを選んでクラスタを作り直し、そこに再度マテリアルを割り当てると(元のマテリアル用クラスタは削除)、ちゃんと反映されたレンダリングがされる。でも、全部のマテリアル用クラスタ作り直すのめんどくせぇぞゴルァ。っていうか、その後でまた選択用クラスタとか作ってしまった日にゃもう一回やり直しかよゴルァ

と悩んでしまって、これは XSI の不具合だきっとそうに違いないそうだそうだと意気込んでサポートに質問してみると、あっさり解決した。俺が知らなかっただけかよゴルァ。Orz



ということで恥晒しをしておきます。


↓まずは初期状態。ただのポリゴンのグリッドです。
オブジェクトレベルで赤いマテリアルが付いています。

Oc01


↓次にマテリアル用のクラスタを作ります。下半分だけ青くしました。
ビューポートでも、リジョンのレンダリングでも問題ありません。

Oc02


↓次に、選択用クラスタを作ります。選択用なのでマテリアルは与えません。つまりマテリアルには一切影響しないクラスタにしたいわけです。そして、選択用クラスタの一部はマテリアル用クラスタとオーバーラップしています。 が、マテリアルを与えていないので、当然ビューポート上で変化はありません。これでいいんです。問題ないです。

Oc03



↓だがしかし。
レンダリングしてみると、マテリアルに影響しないはずの選択用クラスタの部分は、元のマテリアルである赤にっ。ビューポートの表示とも一致しないっ。これじゃ困るんだよゴルァ。

Oc04



↓結論から言うと、クラスタのプロパティには「順番」があって、数字の小さい方から順に計算されると言う。 ええっ。そうだったのっ。そんなパラメータがあるなんて知らなかったヨっ。基本的すぎますか? だって知らなかったんだよっ。 Orz

クラスタのプロパティを開くと、確かに Sort Order というパラメータがあります。そして、最初に作った方 = この場合はマテリアル用クラスタの方 が小さい数字になっています。

Oc05


↓そこでこの数字を変えて、後から作った選択用クラスタの方が若い数字になるようにすると。
選択用クラスタはマテリアルに影響を与えなくなり、ビューポート表示とレンダリングも一致しました。これでいいんです。問題ないです。

Oc06




ってことで XSI の不具合でも何でもなく、計算させる順番を変えてあげれば良かっただけということになる。クラスタを作った順番で数字が加算されていくようだから、後から作った選択用クラスタが大きい数字になって、結果マテリアルにも影響を与えていた(マテリアルを与えてないので、オブジェクトレベルのマテリアルをレンダリングした)というのも、まあ納得できる。 でも、それがビューポートに反映されないって、どうよ? なんとかしてくれよ Softimage さん。 もしかして Softimage さんの問題じゃないのか? OpenGL の規格の問題?  なんでもいいからどうにかしてくれよ。生ビールおごってあげるから。

と、解決はしたものの、現在いじくっているオブジェクトのクラスタは↓こんな感じでだんだん多くなってきてしまった。これ全部数字入れ直さなきゃいけないの? めんどくせぇよゴルァ。

Oc07

ってことでとりあえず全部数字入れ直したけど、今後めんどくさいので、そのうちスクリプト書くことにする。いつも ゴルァ が俺に開発の力をくれる。ありがとうゴルァ。


|

« BA_Volume普及促進委員会(その2) | トップページ | クラスタの順番を変える話の続き。 »

コメント

ちょうど同じところで悩んでいました…。
ありがとうございます!ゴルァ。

投稿: たまねぎ | 2008年9月 3日 (水) 11時04分

たまねぎさま、初めまして。そうですか、悩んでいましたか。そうですよね、理屈はこの記事で書いている通りでまあ理解できましたが、何がいけないってビューポート上にその状態が反映されないことなんですよね。悩みます。悩みすぎてハゲました。

また最近クソ暑くなってきたので、氷水でガンガンに冷やした生のたまねぎにマヨネーズかけて食うと美味いですよね。ビールにも合います。

投稿: junki | 2008年9月 3日 (水) 12時15分

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: オーバーラップクラスタの恐怖。:

« BA_Volume普及促進委員会(その2) | トップページ | クラスタの順番を変える話の続き。 »