あ・・・よくよく見ると同じになってますね(汗
試していてPntとPosCamが同じでない条件で発生したこともあったのですがなぜか再現しないようなので、
再現性についてもうちょっとよく調べてみます。
SetUseLarge3DPositionSupportはInit前に実行していました。
ついでと言ってはなんですがもう一点質問させていただきます。
DrawCone3DやDrawLine3Dでワールド空間に描画しようとすると、配置場所のワールド座標が大きな値になった時に
本来の配置場所から少しずれて描画されるような現象が起こっています。
Pnt1,Pnt2,Pnt3の3点についてPnt1とPnt2、Pnt2とPnt3を結ぶ線分をそれぞれDrawLine3Dで描画し、
Pnt2にDrawCone3Dで円錐を置いたところ、本来ならPntが円錐内部に配置されて折れた点が見えなくなるはずのところ、
円錐の位置がPnt2からずれたためにPnt2の点が丸見えになります。
テスト条件は下記のようになります。
Pnt1.x=5000000
Pnt1.y=0
Pnt1.z=4000000
Pnt2.x=5000000
Pnt2.y=7000000
Pnt2.z=4000000
Pnt3.x=4999990
Pnt3.y=6999990
Pnt3.z=3999990
Top=DX.VAddD(Pnt2,DX.VGetD(1,0,1))
Bottom=DX.VAddD(Pnt2,DX.VGetD(-1,0,-1))
DX.DrawLine3D(Pnt1,Pnt2,DX.GetColor(255,255,0))
DX.DrawLine3D(Pnt2,Pnt3,DX.GetColor(255,255,0))
DX.DrawCone3D(Top,Bottom,0.4,20,DX.GetColor(255,255,0),DX.GetColor(255,255,255),DX.TRUE)
※実際にはDrawLine3DとDrawCone3Dの座標はVECTOR_D型からVECTOR型にキャストしています
この条件で注視点をPnt2(こちらはVECTOR_Dのまま)に固定し、カメラを適当に動かしてみると
ずれているのがはっきりわかります。
Pnt1,2,3やTop,Bottom等の座標の絶対値を小さく(数百程度)してみるとこの現象は収まるようなので、
配置位置の座標が大きくなると不具合が出るのかなと思っています。
当初はVECTOR_D型をVECTOR型にキャストしたことにより生じた誤差の影響かとも思いましたが、
DrawCone3DもDrawLine3Dも同じようにVECTOR型にキャストしているのでおそらく関係ないのではと考えています。
毎度脱線が多くて申し訳ありませんが、よろしければ対応のほどお願いします。