ページ 11

謎の黒い物体

Posted: 2013年10月23日(水) 00:06
by hiragino
http://homepage2.nifty.com/natupaji/DxL ... ction.html
ここのプログラムの表示するモデルを
http://dixq.net/g/3d_05.html
でダウンロードしたLat式ミクとバトーキン島にしたところ、
ミクの周りに黒い何かが表示されてしまいました。
どうしてこうなってしまうのでしょうか。
基本的には↑のソースコードはそのままで、ミクのスケールは20倍ほどにしました。

Re: 謎の黒い物体

Posted: 2013年10月23日(水) 00:18
by softya(ソフト屋)
ミクだけを表示するとどうなりますか?
あとミクの倍率を1にするとどうなりますか?
※ デバッグの基本なのですが、色々なバリエーションで試すと問題点を解決する糸口が見えてきます。

Re: 謎の黒い物体

Posted: 2013年10月23日(水) 00:39
by hiragino
Render_Processのステージと影をコメントアウトしてみましたが、
特に変わりはありませんでした。
倍率1の時は小さすぎてよくわからないです

Re: 謎の黒い物体

Posted: 2013年10月23日(水) 00:59
by softya(ソフト屋)
たぶん、SetCameraNearFarを調整すると見えると思うですよ。Zバッファの処理の都合かなと。
あとは、アニメーションとかも関係するかもしれません。

Re: 謎の黒い物体

Posted: 2013年10月23日(水) 13:34
by ftr
なったことが

Re: 謎の黒い物体

Posted: 2013年10月24日(木) 22:40
by yukiri
最近似たような現象に遭遇して解決しました。
その時の原因は、モデルを MV1SetScale()で拡大させたため、
輪郭線も同じように拡大されて真っ黒になりました。

解決方法は、拡大した後に各マテリアルごとに輪郭線を縮小しました。
同じ原因なら、これで解決できると思います。

コード:

  float zoom = 20.0f;
  int material_num = MV1GetMaterialNum(モデルハンドル);
  for(int i=0; i<material_num; ++i)
  {
    float dot_w = MV1GetMaterialOutLineDotWidth(モデルハンドル, i);
    MV1SetMaterialOutLineDotWidth(モデルハンドル, i, dot_w / zoom);
    MV1SetMaterialOutLineWidth(モデルハンドル, i, dot_w / zoom);
  }