2012-06-02 2 views
4

에 적용한 후 모델 위치를 가져 오는 중 here 위치에있는 모든 변환을 적용한 후에 모델이 그려지는 새 위치를 검색 할 수 있다면 정말 편리 할 것입니다. 망사. 나는 필요한 것을 위해이 방법을 조금 편집했다. 아무도 내가 이것을 할 수있는 방법을 알고 있습니까?goingBeyond XNA 튜토리얼에서 제공하는이 메소드의 모델 변환을 XNA

public void DrawModel(Camera camera) 
    { 
     Matrix scaleY = Matrix.CreateScale(new Vector3(1, 2, 1)); 
     Matrix temp = Matrix.CreateScale(100f) * scaleY * rotationMatrix * translationMatrix * Matrix.CreateRotationY(MathHelper.Pi/6) * translationMatrix2; 
     Matrix[] modelTransforms = new Matrix[model.Bones.Count]; 
     model.CopyAbsoluteBoneTransformsTo(modelTransforms); 
     if (camera.getDistanceFromPlayer(position+position1) > 3000) return; 
     foreach (ModelMesh mesh in model.Meshes) 
     { 
      foreach (BasicEffect effect in mesh.Effects) 
      { 
       effect.EnableDefaultLighting(); 
       effect.World = modelTransforms[mesh.ParentBone.Index] * temp * worldMatrix; 
       effect.View = camera.viewMatrix; 
       effect.Projection = camera.projectionMatrix; 
      } 
      mesh.Draw(); 
     } 
    } 
+0

http://gamedev.stackexchange.com/ – rcdmk

답변

0

Vector3.Transform 메서드를 사용하면 위치 벡터에 행렬을 적용 할 수 있습니다.

+0

에 대한 추가 답변을 얻을 수 있습니까? 질문을 읽었습니까? 그 대답은 전혀 쓸모가 없었습니다. 그리고 나는 여러분이 소스 코드에서 정확히 무엇을 말했는지에 대한 지식을 보여주었습니다. 질문을 읽으면 변형을 적용하지 않고 새 벡터를 검색해야한다는 것을 알 수 있습니다. – Glen654

+0

차이점은 무엇입니까? – ekolis

+1

차이점은 새 위치를 설정하는 대신 업데이트 된 위치를 수신하는 것입니다. 위치를 설정하려면 간단한 매트릭스 응용 프로그램이 필요하지만 새로운 위치를 수신하는 것은 약간 힘듭니다 – Glen654