오늘 저는 DirectX (D3D9)로 작업하기 시작했습니다. 정적 메쉬 클래스를 만들 때까지 모든 것이 잘되었습니다. 이 클래스에는 버퍼 생성, 버퍼 그리기 및 해제 메소드가 포함되어 있습니다.DirectX - 버텍스 배열을 인수로 사용하여 버퍼 생성
버퍼 생성 기능에 문제가 있습니다. 함수의 인수로 꼭지점 배열을 전달하려는 경우 그리기 시간에 삼각형 (삼각형 테스트)이 그려지지 않습니다. 그러나 꼭지점이 함수 내에서 선언 된 경우 (예 : 인수), 삼각형이 그려지지 않습니다.
정점 분류 :#define CUSTOMFVF (D3DFVF_XYZRHW | D3DFVF_DIFFUSE)
class CUSTOMVERTEX
{
public:
float X, Y, Z, RHW;
DWORD Color;
};
정점 버퍼 생성 함수 (즉, 작동하지 않는다)
void StaticMesh::CreateBuffer(CUSTOMVERTEX Vertices[], LPDIRECT3DDEVICE9 d3ddev)
{
// USING FIXED SIZE WHILE TESTING WITH A SINGLE TRIANGLE.
d3ddev->CreateVertexBuffer(3*sizeof(CUSTOMVERTEX), 0, CUSTOMFVF, D3DPOOL_MANAGED, &Buffer, NULL);
VOID* p;
Buffer->Lock(0, 0, (void**)&p, 0);
memcpy(p, Vertices, sizeof(Vertices));
Buffer->Unlock();
}
정점 버퍼 생성 함수 (즉 작업을 수행)
void StaticMesh::CreateBuffer(LPDIRECT3DDEVICE9 d3ddev)
{
CUSTOMVERTEX vertices[3] =
{
{ 400.0f, 62.5f, 0.5f, 1.0f, D3DCOLOR_XRGB(0, 0, 255), },
{ 650.0f, 500.0f, 0.5f, 1.0f, D3DCOLOR_XRGB(0, 255, 0), },
{ 150.0f, 500.0f, 0.5f, 1.0f, D3DCOLOR_XRGB(255, 0, 0), },
};
// USING FIXED SIZE WHILE TESTING WITH A SINGLE TRIANGLE.
d3ddev->CreateVertexBuffer(3*sizeof(CUSTOMVERTEX), 0, CUSTOMFVF, D3DPOOL_MANAGED, &Buffer, NULL);
VOID* p;
Buffer->Lock(0, 0, (void**)&p, 0);
memcpy(p, Vertices, sizeof(Vertices));
Buffer->Unlock();
}
문제가 무엇인지 모르겠습니다. 어떤 도움을 주셔서 감사합니다. 더 많은 정보가 필요하면 저에게 조언 해주십시오. 함수
void StaticMesh::CreateBuffer(CUSTOMVERTEX Vertices[], LPDIRECT3DDEVICE9 d3ddev)
의
감사합니다. 어떻게 기억하지 못했습니까? – zeluisping