2009-08-14 2 views
1

관리 만들기. 이 작업을 수행하는 방법에 대한 정보를 찾을 수 없었습니다.는 C#에서 사용자 정의 메쉬 내가 다이렉트 3D가 C 번호에서 관리되는 다이렉트 X를 사용하여 런타임</b>에 <b>메쉬해야 다이렉트

  1. 아니요, 객체를 만드는 데 3D 모델러 프로그램을 사용할 수 없습니다. 크기와 모양이 정확하게 지정되어야하며 런타임까지 크기 또는 모양 정보가 없습니다.
  2. 아니, 기존의 DirectX 메쉬 기능에서 모델을 구축 할 수 없습니다. (간단한 예 : DirectX를 사용하면 원추형 메쉬와 원통형 메쉬를 사용하여 연필을 쉽게 모델링 할 수 있습니다. 물론 연필 하나 하나가 아닌 두 개의 메쉬를 가지고 다니면서 각각의 위치와 방향을 올바르게 지정해야합니다. 제공되지 반 원통도 절반 콘 메쉬 없기 때문에 심지어 길이의 절반에 연필 분할의 모델을 만들 수 없습니다.) 런타임시
  3. 을 이미 계산 된 모든 정점을 가지고 필요한 수 있도록 연결하는 것을 알고 삼각형.
  4. 필요한 것은 단색입니다. 텍스쳐 맵핑을 할 필요가 없습니다.
    Mesh sphere = Mesh.Sphere(device, sphereRadius, sphereSlices, sphereStacks);
    이 메쉬가 런타임에 내장되어 있습니다 :

하나는이 다이렉트 호출을 사용하여 영역의 메쉬를 얻을 수 있습니다.
Mesh shape = MakeCustomMesh(device, vertexlist, trianglelist);
두리스트가 적당한 용기/형식 수 : 내가 알아야 할

는 유사한 기능을하는 방법입니다. 사람이 단지 3 개 하드 삼각형의 메쉬를 구축하는 경우에도, 관리 다이렉트 (C#을) 샘플 코드에 날 지점 수 있다면

, 즉 큰 도움이 될 것입니다.

+0

필요한 점프 시작을 위해 Reed에게 감사드립니다. 제 질문을 편집 해 주신 Jeff에게도 감사드립니다. 나는 두 가지 다른 방식으로 잘못된 "관리 된"철자를 두 번 철자했다고 믿을 수 없다. 그것은 분명히 금요일 늦었습니다. –

답변

6

MDXInfo에이 작업을 수행하는 방법을 보여주는 몇 가지 예제 코드가 있습니다. 이렇게하면 여러 하위 집합이있는 메쉬가 만들어집니다. 필요하지 않으면 훨씬 쉽습니다.

기본적으로, 당신은 단지 메쉬 생성 : 다음

Mesh mesh = new Mesh(numIndices, numVerticess, MeshFlags.Managed, CustomVertex.PositionColored.Format /* you'll need to set this */ , device); 

을, 당신은 사용하여 메쉬 정점 버퍼와 인덱스 버퍼를 잡고, 그것을 덮어 쓸 수 있습니다 :

IndexBuffer indices = mesh.IndexBuffer; 
VertexBuffer vertices = mesh.VertexBuffer; 

를 그런 다음에 기입 인덱스 및 정점을 적절히 지정합니다.

+0

나는 당신의 예에 의해 납이 함유 된 메쉬를 만들었습니다,하지만 난'ToXFile' 방법을 사용하여 내보낼 때, 그것은 실패, 나는 수, 그것은 X 파일로 저장 될 수 있도록 추가 정보는 동적으로 생성 된 메시에게 제공해야한다고 생각 이걸 좀 털어 놨어? 고마워. – zionpi

관련 문제