현재 카메라 위치/뷰에서 피킹 선을 얻으 려하므로 3D 세계에서 오브젝트를 선택하는 데 사용할 수 있습니다. 문제는 카메라를 움직일 때 광선이 올바르지 않게된다는 것입니다. 제가 잘못했거나 부동 소수점 정밀도 문제입니까?SharpDX GetPickRay issues
ray.Position {X:-79080,03 Y:60480,02 Z:-14,90265}
ray.Direction {X:-0,1926253 Y:0,1401343 Z:0,9712146}
그리고 화면에 내 마우스 아래에서 다음 행을 생성합니다 :
ViewportF viewport = new ViewportF();
viewport.Height=307.0
viewport.MaxDepth=1.0
viewport.MinDepth=0.0
viewport.Width=689.0
viewport.X=0.0
viewport.Y=0.0
Matrix viewProjection = new Matrix(new float[] {
1.075709f, 0, 0, 85067.07f,
0, 2.414213f, 0, -146011.6f,
0, 0, 1, 14.90265f,
0, 0, 1, 15.00265});
Ray ray = Ray.GetPickRay(263, 77, viewport, matrix);
광선의 결과는 지금까지 내가 이해
(왼쪽 위)
을 내 마우스 아래에서 광선이 보이지 않아야합니다.
카메라를 움직여서 내가 그린 광선을 변경하지 않으면 눈에 띄게됩니다.
편집 : 카메라를 움직이지 않으면 광선이 내 마우스 아래에서 보이지 않으며 회전 할 때도 보이지 않습니다.
edit2 : ray.Position이 정확하고 Ray.Direction이 틀린 것처럼 보입니다.하지만 그것에 대해 언급하지 마십시오.