2012-07-24 3 views
0

코드는 여기에있다? 당신의 생각하는 물질, 나는 그것을 이미 알고 있다면, 나는 물질보다 훨씬 간단한 것으로 생각되는 색상 정점을 알아야합니다. Vertex Buffers와 Index Buffer로 수동으로 레이 아웃 된 지오메트리로이 작업을 수행 할 수 있습니다. VB 및 IB 정보가 이미 채워진 메쉬에 어떻게 적용합니까?의 DirectX 정점 색상

class ColorVertex 
{ 
public: 
ColorVertex(){} 
ColorVertex(float x, float y, float z, D3DCOLOR color) 
{ 
    m_x = x; 
    m_y = y; 
    m_z = z; 
    m_color = color; 
} 
float m_x, m_y, m_z;   // 3d coordinates 
D3DCOLOR m_color; 
static const DWORD FVF; 
}; 
const DWORD ColorVertex::FVF = D3DFVF_XYZ | D3DFVF_DIFFUSE; 

방금 ​​게시 한 코드는 ColorVertex라는 정점 정보 클래스입니다. 보시다시피, 코드는 꼭지점 색상, 필요하지 않은 색상 또는 FVF = D3DFVF_XYZ | D3DFVF_DIFFUSE.

사람들은 문제를 이해하는 데 어려움이있는 것처럼 보입니다. 찻 주전자, 구, D3DCreate [개체]를 통해 만들 수있는 메쉬와 같은 개체의 경우 색을 포함하도록 꼭지점의 색을 업데이트해야합니다. D3DCreateTeapot (인수 항목). Pls 레이아웃 코드를 한 줄씩, 나는 directx에서 멍청한 놈이다. C++이 아니다.

+1

글쎄, 당신이 처음으로 내가 당신의 문제에 대한 비디오를 보았다는 상을 수상했습니다. – chris

+0

스택 오버플로에서 3 일 전에 문제를 게시했으나 아무도 대답을주지 못합니다. 어떤 사람들이 답을 주면 사람들은 가장 모호한 대답을 줄 것입니다. 누군가가 여기서 그것을 풀어주기를 바랍니다. –

+0

코드 게시 및 문제 설명은 어떻습니까? 비디오를 보러가는 것이 너무 힘듭니다. – Wernsey

답변

1

Look at the section on accessing the vertex buffer. 당신은 get the vertex declaration 끝까지 각 꼭지점에 대한 데이터가 어떻게 배치되어 있는지 찾아야합니다.

색상이 저장되는 방법을 확인하면 각 꼭지점을 반복하고 값을 변경합니다. 메쉬의 정점 버퍼를 완성하고 잠금을 해제하면 작업이 완료됩니다.

나는 그냥 많이 쉬울 것처럼 내가 동의 할 것이다

는, 재료 보이는 물질보다 훨씬 간단한 일이 될 것으로 예상되는 색상 정점을 알아야합니다.

+0

나는 거의 그것을 얻었고, 예상대로 나는 "get the vertex decleration"부분에서 큰 도로 범프를 다시 쳤다. 그래서 내가 한 일은 여기에 있습니다 : 1.) 내 버텍스 구조체와 일치하도록 D3DVERTEXELEMENT9를 수행했습니다. 2.) 장치 -> CreateVertexDeclaration (D3DVERTEXELEMENT9 * ve, IDirect3DVertexDeclaration9 ** ppDecl)을 사용하여 선언했습니다. 3.) 그런 다음 device-> setvetexdecleration.
하지만 그 이후에는 단순히 의미론으로 연결되는 흔적이 없기 때문에 뭔가를 알아야 할 필요가 있다고 느낍니다. 나는 정말로. 설명하기가 어렵다면 지금 당장 밴드 원조 솔루션을 보여줄 수 있습니까? pls –

관련 문제