Z値の限界の変更?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
チルチル

Z値の限界の変更?

#1

投稿記事 by チルチル » 16年前

3DポリゴンではZの値が一定以下、一定以上になると表示されなくなりますが
この限界を変更する方法はないでしょうか?

環境はDXライブラリです

Justy

Re:Z値の限界の変更?

#2

投稿記事 by Justy » 16年前


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

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

GPGA

Re:Z値の限界の変更?

#3

投稿記事 by GPGA » 16年前

射影変換時のZ設定のことではないですかね?

MATRIX mat;

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

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

GPGA

Re:Z値の限界の変更?

#4

投稿記事 by GPGA » 16年前

>角度(ラジアン値で)
視野角(ラジアン値)

TRIS-GRAM

Re:Z値の限界の変更?

#5

投稿記事 by TRIS-GRAM » 16年前

NEARクリップ面とFARクリップ面でしたら変更不可能です。
DxLib.hに値がありますが、変更を有効にするにはライブラリをコンパイルし直す必要があります。

GPGA

Re:Z値の限界の変更?

#6

投稿記事 by GPGA » 16年前

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

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

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

チルチル

Re:Z値の限界の変更?

#7

投稿記事 by チルチル » 16年前

カメラはよくわからないのですが

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

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

御津凪

Re:Z値の限界の変更?

#8

投稿記事 by 御津凪 » 16年前

GPGA さんの方法で、
CreatePerspectiveFovMatrix(&mat, DEFAULT_FOV, 0.0f, 5000.0f);
のような感じで出来ませんか?

チルチル

Re:Z値の限界の変更?

#9

投稿記事 by チルチル » 16年前

奥の方はうまく行きましたが手前がうまく行きません
手前の値をいじると表示がおかしくなります・・

GPGA

Re:Z値の限界の変更?

#10

投稿記事 by GPGA » 16年前

NEARクリップ面の値は0より大きい値である必要があります。
0以下の値だとおかしくなります。

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

チルチル

Re:Z値の限界の変更?

#11

投稿記事 by チルチル » 16年前

あ~0以上じゃないとダメなんですか・・
でも0.0fにすると処理を書く前より奥で消えてしまうんですが・・

GPGA

Re:Z値の限界の変更?

#12

投稿記事 by GPGA » 16年前

文章をよく読んでください。
0より大きい値じゃないとダメです。0以上ではありません。

チルチル

Re:Z値の限界の変更?

#13

投稿記事 by チルチル » 16年前

よく見たらそうですね、すいません・・

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

閉鎖

“C言語何でも質問掲示板” へ戻る