add sampler states

add light
add normals
This commit is contained in:
2025-11-12 12:24:37 +01:00
parent d78aec9c1a
commit 5e31638fb8
6 changed files with 95 additions and 53 deletions
+43 -43
View File
@@ -31,9 +31,9 @@ void Mesh::update(FLOAT dt)
static FLOAT x = 0.0f;
static FLOAT y = 0.0f;
static FLOAT z = 0.0f;
static FLOAT pitch = XM_PIDIV4; // x axis
static FLOAT yaw = XM_PIDIV4; // y axis
static FLOAT roll = XM_PIDIV4; // z axis
static FLOAT pitch = 0.2f; // x axis
static FLOAT yaw = 0.0f; // y axis
static FLOAT roll = 0.4f; // z axis
static FLOAT scale = 1.0f;
yaw += 1.0f * dt;
@@ -84,7 +84,7 @@ void Mesh::deInit()
UINT Mesh::createVertexBuffer(IDirect3DDevice9* pD3DDevice)
{
// 1. define mesh parameters
_vertexCount = 8;
_vertexCount = 4;
_vertexStride = sizeof(Vertex);
// 2. create vertex buffer object WITHOUT data
@@ -126,10 +126,10 @@ UINT Mesh::createVertexBuffer(IDirect3DDevice9* pD3DDevice)
// quad with triangle fan, vertex buffer only
// quad with triangle list & index buffer
//pVertices[0] = Vertex(-0.5f, 0.5f, 0.0f);
//pVertices[1] = Vertex(0.5f, 0.5f, 0.0f);
//pVertices[2] = Vertex(0.5f, -0.5f, 0.0f);
//pVertices[3] = Vertex(-0.5f, -0.5f, 0.0f);
pVertices[0] = Vertex(-0.5f, 0.5f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f);
pVertices[1] = Vertex(0.5f, 0.5f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f);
pVertices[2] = Vertex(0.5f, -0.5f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f);
pVertices[3] = Vertex(-0.5f, -0.5f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f);
//// cube with color
//// front
@@ -145,17 +145,17 @@ UINT Mesh::createVertexBuffer(IDirect3DDevice9* pD3DDevice)
//pVertices[7] = Vertex(0.5f, -0.5f, 0.5f, 200, 200, 200);
// cube with uv
// front
pVertices[0] = Vertex(-0.5f, 0.5f, -0.5f, 0.0f, 0.0f);
pVertices[1] = Vertex(0.5f, 0.5f, -0.5f, 1.0f, 0.0f);
pVertices[2] = Vertex(0.5f, -0.5f, -0.5f, 1.0f, 1.0f);
pVertices[3] = Vertex(-0.5f, -0.5f, -0.5f, 0.0f, 1.0f);
//// front
//pVertices[0] = Vertex(-0.5f, 0.5f, -0.5f, 0.0f, 0.0f);
//pVertices[1] = Vertex(0.5f, 0.5f, -0.5f, 1.0f, 0.0f);
//pVertices[2] = Vertex(0.5f, -0.5f, -0.5f, 1.0f, 1.0f);
//pVertices[3] = Vertex(-0.5f, -0.5f, -0.5f, 0.0f, 1.0f);
// back
pVertices[4] = Vertex(0.5f, 0.5f, 0.5f, 0.0f, 0.0f);
pVertices[5] = Vertex(-0.5f, 0.5f, 0.5f, 1.0f, 0.0f);
pVertices[6] = Vertex(-0.5f, -0.5f, 0.5f, 1.0f, 1.0f);
pVertices[7] = Vertex(0.5f, -0.5f, 0.5f, 0.0f, 1.0f);
//// back
//pVertices[4] = Vertex(0.5f, 0.5f, 0.5f, 0.0f, 0.0f);
//pVertices[5] = Vertex(-0.5f, 0.5f, 0.5f, 3.0f, 0.0f);
//pVertices[6] = Vertex(-0.5f, -0.5f, 0.5f, 3.0f, 3.0f);
//pVertices[7] = Vertex(0.5f, -0.5f, 0.5f, 0.0f, 3.0f);
hr = _pVertexBuffer->Unlock(); // transfer vertex buffer back from cpu memory to video memory
CheckFailed(hr, 320);
@@ -167,7 +167,7 @@ UINT Mesh::createVertexBuffer(IDirect3DDevice9* pD3DDevice)
UINT Mesh::createIndexBuffer(IDirect3DDevice9* pD3DDevice)
{
_indexCount = 36; // triangle count * 3
_indexCount = 6; // triangle count * 3
HRESULT hr = pD3DDevice->CreateIndexBuffer(
_indexCount * sizeof(WORD),
@@ -184,37 +184,37 @@ UINT Mesh::createIndexBuffer(IDirect3DDevice9* pD3DDevice)
hr = _pIndexBuffer->Lock(0, 0, reinterpret_cast<void**>(&pIndices), 0);
CheckFailed(hr, 340);
//// quad
//// triangle 1 - 0, 1, 2
//pIndices[0] = 0; pIndices[1] = 1; pIndices[2] = 2;
//// triangle 2 - 0, 2, 3
//pIndices[3] = 0; pIndices[4] = 2; pIndices[5] = 3;
// cube
// front
// quad
// triangle 1 - 0, 1, 2
pIndices[0] = 0; pIndices[1] = 1; pIndices[2] = 2;
// triangle 2 - 0, 2, 3
pIndices[3] = 0; pIndices[4] = 2; pIndices[5] = 3;
// back
pIndices[6] = 4; pIndices[7] = 5; pIndices[8] = 6;
pIndices[9] = 4; pIndices[10] = 6; pIndices[11] = 7;
//// cube
//// front
//pIndices[0] = 0; pIndices[1] = 1; pIndices[2] = 2;
//pIndices[3] = 0; pIndices[4] = 2; pIndices[5] = 3;
// left
pIndices[12] = 5; pIndices[13] = 0; pIndices[14] = 3;
pIndices[15] = 5; pIndices[16] = 3; pIndices[17] = 6;
//// back
//pIndices[6] = 4; pIndices[7] = 5; pIndices[8] = 6;
//pIndices[9] = 4; pIndices[10] = 6; pIndices[11] = 7;
// right
pIndices[18] = 1; pIndices[19] = 4; pIndices[20] = 7;
pIndices[21] = 1; pIndices[22] = 7; pIndices[23] = 2;
//// left
//pIndices[12] = 5; pIndices[13] = 0; pIndices[14] = 3;
//pIndices[15] = 5; pIndices[16] = 3; pIndices[17] = 6;
// top
pIndices[24] = 5; pIndices[25] = 4; pIndices[26] = 1;
pIndices[27] = 5; pIndices[28] = 1; pIndices[29] = 0;
//// right
//pIndices[18] = 1; pIndices[19] = 4; pIndices[20] = 7;
//pIndices[21] = 1; pIndices[22] = 7; pIndices[23] = 2;
// bottom
pIndices[30] = 3; pIndices[31] = 2; pIndices[32] = 7;
pIndices[33] = 3; pIndices[34] = 7; pIndices[35] = 6;
//// top
//pIndices[24] = 5; pIndices[25] = 4; pIndices[26] = 1;
//pIndices[27] = 5; pIndices[28] = 1; pIndices[29] = 0;
//// bottom
//pIndices[30] = 3; pIndices[31] = 2; pIndices[32] = 7;
//pIndices[33] = 3; pIndices[34] = 7; pIndices[35] = 6;
hr = _pIndexBuffer->Unlock();
CheckFailed(hr, 350);