[過去ログ] 【3Dエンジン】Irrlicht初心者質問スレその4 (172レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
13
(2): 2010/09/23(木)18:08 ID:7XCQvY35(1/4) AAS
Irrlicht1.7.1を使っていて
なぜか桁の大きいdouble型変数の演算時に小数部が切り捨てられていたので、原因を探ってみたところ
どうやら
irr::createDeviceの第一引数のレンダリング環境を設定するところでDirectX(EDT_DIRECT3D8及びEDT_DIRECT3D9)を指定するとこの現象が起きるようでした。
createDeviceを使用しなかったり、DirectX以外のOpenGLやソフトウェアレンダラを指定するとこの現象は起きませんでした。
原因や解決法を教えていただきたいです。。
C++自体初心者なので全く関係の無いところで勘違いしてるのかもしれませんが…
省15
15
(1): 2010/09/23(木)18:35 ID:KkOS4/SK(1/2) AAS
>>13
普通にDirect3Dデバイスを作ると、高速化のために内部で浮動小数点演算の精度が落とされる。

これを防ぐにはデバイス作成時にD3DCREATE_FPU_PRESERVEを指定すればいいんだけど、
irrlichtで出来るかはよく知らない。
外部リンク[aspx]:msdn.microsoft.com
16
(1): 2010/09/23(木)18:47 ID:KkOS4/SK(2/2) AAS
>>13
調べた。
irr::SIrrlichtCreationParameters::HighPrecisionFPU に true を設定して
rr::createDeviceEx を呼べばいい。
そうすればD3DCREATE_FPU_PRESERVEを使ってくれる。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.578s*