Problem mit Vertex und Indexbuffer
-
Hallo nochmal
Ich hab das Problem ,dass ich irgendwie kein Würfel rendern kann.
Ich hab folgende Vertex und Index Daten aus einem Buch übernommen,was aber iwie nicht funktioniert:Vertex vert[] = { XMFLOAT3(-1.0f,1.0f,0.0), XMFLOAT3(-1.0f,1.0f,1.0f), XMFLOAT3(1.0f,1.0f,1.0f), XMFLOAT3(1.0f,1.0f,0.0f), XMFLOAT3(-1.0f,-1.0f,0.0), XMFLOAT3(-1.0f,-1.0f,1.0f), XMFLOAT3(1.0f,-1.0f,1.0f), XMFLOAT3(1.0f,-1.0f,0.0f) }; unsigned long indices[] = { 0,3,7,0,7,4, 2,1,5,2,5,6, 1,0,4,1,4,5, 3,2,6,3,6,7, 0,1,2,0,2,3, 6,5,4,6,4,7}; D3D11_BUFFER_DESC vertexDesc; ZeroMemory( &vertexDesc, sizeof( vertexDesc ) ); vertexDesc.Usage = D3D11_USAGE_DEFAULT; vertexDesc.BindFlags = D3D11_BIND_VERTEX_BUFFER; vertexDesc.ByteWidth = sizeof( Vertex ) * 8; D3D11_SUBRESOURCE_DATA resourceData; ZeroMemory( &resourceData, sizeof( resourceData ) ); resourceData.pSysMem = vert; HRESULT d3dResult = CDirect3D::Instance().GetDevice()->CreateBuffer( &vertexDesc, &resourceData,&mesh.VertexBuff); D3D11_BUFFER_DESC indexBufferDesc; indexBufferDesc.Usage = D3D11_USAGE_DEFAULT; indexBufferDesc.ByteWidth = sizeof(unsigned long) * 36; indexBufferDesc.BindFlags = D3D11_BIND_INDEX_BUFFER; indexBufferDesc.CPUAccessFlags = 0; indexBufferDesc.MiscFlags = 0; indexBufferDesc.StructureByteStride = 0; D3D11_SUBRESOURCE_DATA indexData; indexData.pSysMem = indices; HRESULT res = CDirect3D::Instance().GetDevice()->CreateBuffer(&indexBufferDesc, &indexData, &mesh.IndexBuffer);
Wenn ich nur 3 Vertices habe ,die ein Dreieck bilden und bei den Indices 0,1,2 angebe rendert er mit ein Dreieck ,aber bei einem Viereck geht das auch nicht mehr(Indices 0,1,2 und 0,2,3)
Kann mir einer sagen warum ?
-
Wie renderst du denn das ganze?
Sagt die Debug Runtime was?
-
Naja ich render das ganz normal eben.Erstelle 2 Shader(Vertex/Pixel),einen LayoutInput,dan setze ich das InputLayout,den Vertex und Index buffer.Dass es als Vertex Liste gerendert werden soll.Dann setze ich die Shader und lasse es zeichnen.
Das komische ist,dass es mit einem Dreieck ja funktioniert...
-
Und wie sieht der Code dazu aus?
Und sagt die Debug Runtime was?