ページ 11

Z値の限界の変更?

Posted: 2009年6月11日(木) 22:54
by チルチル
3DポリゴンではZの値が一定以下、一定以上になると表示されなくなりますが
この限界を変更する方法はないでしょうか?

環境はDXライブラリです

Re:Z値の限界の変更?

Posted: 2009年6月12日(金) 00:37
by Justy

>3DポリゴンではZの値が一定以下、一定以上になると表示されなくなりますが

 Z値がなんの座標系におけるどういう値なのか、その一定値とは何なのかはよくわからないので
回答が難しいのですが、単純にカメラの後や横にポリゴンがあるとか、或いはカメラに
あまりにも近すぎる・遠すぎるとかで表示されなくなっているだけではないのですか?

Re:Z値の限界の変更?

Posted: 2009年6月12日(金) 01:00
by GPGA
射影変換時のZ設定のことではないですかね?

MATRIX mat;

CreatePerspectiveFovMatrix(& mat, 角度(ラジアン値で), Zの手前の値, Zの奥の値);
SetTransformToProjection(&mat);

これで設定することが可能なはずです。
 

Re:Z値の限界の変更?

Posted: 2009年6月12日(金) 11:04
by GPGA
>角度(ラジアン値で)
視野角(ラジアン値)

Re:Z値の限界の変更?

Posted: 2009年6月12日(金) 12:41
by TRIS-GRAM
NEARクリップ面とFARクリップ面でしたら変更不可能です。
DxLib.hに値がありますが、変更を有効にするにはライブラリをコンパイルし直す必要があります。

Re:Z値の限界の変更?

Posted: 2009年6月12日(金) 12:53
by GPGA
>NEARクリップ面とFARクリップ面でしたら変更不可能です。
>DxLib.hに値がありますが、変更を有効にするにはライブラリをコンパイルし直す必要があります。
定数のことではなくAPIで変更できると記述したのですが・・・。

CreatePerspectiveFovMatrix(& mat, 視野角(ラジアン値), NEARクリップ面, FARクリップ面);

と書いたほうが良かったですか?

Re:Z値の限界の変更?

Posted: 2009年6月12日(金) 17:41
by チルチル
カメラはよくわからないのですが

見た感じカメラに近すぎる、遠すぎるが原因のようです

何とかならないでしょうか?

Re:Z値の限界の変更?

Posted: 2009年6月12日(金) 17:51
by 御津凪
GPGA さんの方法で、
CreatePerspectiveFovMatrix(&mat, DEFAULT_FOV, 0.0f, 5000.0f);
のような感じで出来ませんか?

Re:Z値の限界の変更?

Posted: 2009年6月12日(金) 18:20
by チルチル
奥の方はうまく行きましたが手前がうまく行きません
手前の値をいじると表示がおかしくなります・・

Re:Z値の限界の変更?

Posted: 2009年6月12日(金) 18:32
by GPGA
NEARクリップ面の値は0より大きい値である必要があります。
0以下の値だとおかしくなります。

DXLib.hでは0.0fになっていますが、内部では0.0fより大きい値をセットしています。
普通は0.1fくらいにします。

Re:Z値の限界の変更?

Posted: 2009年6月12日(金) 18:39
by チルチル
あ~0以上じゃないとダメなんですか・・
でも0.0fにすると処理を書く前より奥で消えてしまうんですが・・

Re:Z値の限界の変更?

Posted: 2009年6月12日(金) 18:41
by GPGA
文章をよく読んでください。
0より大きい値じゃないとダメです。0以上ではありません。

Re:Z値の限界の変更?

Posted: 2009年6月12日(金) 18:52
by チルチル
よく見たらそうですね、すいません・・

しかし0.0001fを入れてみましたが
あまり変わらないですね・・
初期値が0に近いんだから当然かもしれませんが
もう少し手前で消えてくれないかな・・