@@ -65,6 +65,7 @@ ID3D11SamplerState* g_D3D11LinearSampler;
65
65
struct Tutorial7Vertex
66
66
{
67
67
DirectX::XMFLOAT3 position;
68
+ DirectX::XMFLOAT3 normal ;
68
69
DirectX::XMFLOAT2 uv;
69
70
};
70
71
@@ -374,7 +375,7 @@ HRESULT DXShaderResourceInit(const wchar_t* shaderFileName, bool debug)
374
375
hr = g_D3D11Device->CreateVertexShader (VSBlob->GetBufferPointer (), VSBlob->GetBufferSize (), nullptr , &g_D3D11VertexShader);
375
376
FAILED_MESSAGE_RETURN (hr, L" fail to create vertex shader.." );
376
377
377
- g_ElementDescCount = 2 ;
378
+ g_ElementDescCount = 3 ;
378
379
g_D3D11InputElementDescArray = new D3D11_INPUT_ELEMENT_DESC[g_ElementDescCount];
379
380
g_D3D11InputElementDescArray[0 ].SemanticName = " POSITION" ;
380
381
g_D3D11InputElementDescArray[0 ].SemanticIndex = 0 ;
@@ -384,14 +385,22 @@ HRESULT DXShaderResourceInit(const wchar_t* shaderFileName, bool debug)
384
385
g_D3D11InputElementDescArray[0 ].InputSlotClass = D3D11_INPUT_PER_VERTEX_DATA;
385
386
g_D3D11InputElementDescArray[0 ].InstanceDataStepRate = 0 ;
386
387
387
- g_D3D11InputElementDescArray[1 ].SemanticName = " TEXCOORD " ;
388
+ g_D3D11InputElementDescArray[1 ].SemanticName = " NORMAL " ;
388
389
g_D3D11InputElementDescArray[1 ].SemanticIndex = 0 ;
389
- g_D3D11InputElementDescArray[1 ].Format = DXGI_FORMAT_R32G32_FLOAT ;
390
+ g_D3D11InputElementDescArray[1 ].Format = DXGI_FORMAT_R32G32B32_FLOAT ;
390
391
g_D3D11InputElementDescArray[1 ].InputSlot = 0 ;
391
392
g_D3D11InputElementDescArray[1 ].AlignedByteOffset = 12 ;
392
393
g_D3D11InputElementDescArray[1 ].InputSlotClass = D3D11_INPUT_PER_VERTEX_DATA;
393
394
g_D3D11InputElementDescArray[1 ].InstanceDataStepRate = 0 ;
394
395
396
+ g_D3D11InputElementDescArray[2 ].SemanticName = " TEXCOORD" ;
397
+ g_D3D11InputElementDescArray[2 ].SemanticIndex = 0 ;
398
+ g_D3D11InputElementDescArray[2 ].Format = DXGI_FORMAT_R32G32_FLOAT;
399
+ g_D3D11InputElementDescArray[2 ].InputSlot = 0 ;
400
+ g_D3D11InputElementDescArray[2 ].AlignedByteOffset = 24 ;
401
+ g_D3D11InputElementDescArray[2 ].InputSlotClass = D3D11_INPUT_PER_VERTEX_DATA;
402
+ g_D3D11InputElementDescArray[2 ].InstanceDataStepRate = 0 ;
403
+
395
404
hr = g_D3D11Device->CreateInputLayout (
396
405
g_D3D11InputElementDescArray, g_ElementDescCount,
397
406
VSBlob->GetBufferPointer (), VSBlob->GetBufferSize (), &g_D3D11VertexLayout
@@ -413,35 +422,35 @@ HRESULT DXShaderResourceInit(const wchar_t* shaderFileName, bool debug)
413
422
g_VertexSize = sizeof (Tutorial7Vertex);
414
423
Tutorial7Vertex vertices[] =
415
424
{
416
- { XMFLOAT3 (-1 .0f , 1 .0f , -1 .0f ), XMFLOAT2 (0 .0f , 0 .0f ) },
417
- { XMFLOAT3 (1 .0f , 1 .0f , -1 .0f ), XMFLOAT2 (1 .0f , 0 .0f ) },
418
- { XMFLOAT3 (1 .0f , 1 .0f , 1 .0f ), XMFLOAT2 (1 .0f , 1 .0f ) },
419
- { XMFLOAT3 (-1 .0f , 1 .0f , 1 .0f ), XMFLOAT2 (0 .0f , 1 .0f ) },
420
-
421
- { XMFLOAT3 (-1 .0f , -1 .0f , -1 .0f ), XMFLOAT2 (0 .0f , 0 .0f ) },
422
- { XMFLOAT3 (1 .0f , -1 .0f , -1 .0f ), XMFLOAT2 (1 .0f , 0 .0f ) },
423
- { XMFLOAT3 (1 .0f , -1 .0f , 1 .0f ), XMFLOAT2 (1 .0f , 1 .0f ) },
424
- { XMFLOAT3 (-1 .0f , -1 .0f , 1 .0f ), XMFLOAT2 (0 .0f , 1 .0f ) },
425
-
426
- { XMFLOAT3 (-1 .0f , -1 .0f , 1 .0f ), XMFLOAT2 (0 .0f , 0 .0f ) },
427
- { XMFLOAT3 (-1 .0f , -1 .0f , -1 .0f ), XMFLOAT2 (1 .0f , 0 .0f ) },
428
- { XMFLOAT3 (-1 .0f , 1 .0f , -1 .0f ), XMFLOAT2 (1 .0f , 1 .0f ) },
429
- { XMFLOAT3 (-1 .0f , 1 .0f , 1 .0f ), XMFLOAT2 (0 .0f , 1 .0f ) },
430
-
431
- { XMFLOAT3 (1 .0f , -1 .0f , 1 .0f ), XMFLOAT2 (0 .0f , 0 .0f ) },
432
- { XMFLOAT3 (1 .0f , -1 .0f , -1 .0f ), XMFLOAT2 (1 .0f , 0 .0f ) },
433
- { XMFLOAT3 (1 .0f , 1 .0f , -1 .0f ), XMFLOAT2 (1 .0f , 1 .0f ) },
434
- { XMFLOAT3 (1 .0f , 1 .0f , 1 .0f ), XMFLOAT2 (0 .0f , 1 .0f ) },
435
-
436
- { XMFLOAT3 (-1 .0f , -1 .0f , -1 .0f ), XMFLOAT2 (0 .0f , 0 .0f ) },
437
- { XMFLOAT3 (1 .0f , -1 .0f , -1 .0f ), XMFLOAT2 (1 .0f , 0 .0f ) },
438
- { XMFLOAT3 (1 .0f , 1 .0f , -1 .0f ), XMFLOAT2 (1 .0f , 1 .0f ) },
439
- { XMFLOAT3 (-1 .0f , 1 .0f , -1 .0f ), XMFLOAT2 (0 .0f , 1 .0f ) },
440
-
441
- { XMFLOAT3 (-1 .0f , -1 .0f , 1 .0f ), XMFLOAT2 (0 .0f , 0 .0f ) },
442
- { XMFLOAT3 (1 .0f , -1 .0f , 1 .0f ), XMFLOAT2 (1 .0f , 0 .0f ) },
443
- { XMFLOAT3 (1 .0f , 1 .0f , 1 .0f ), XMFLOAT2 (1 .0f , 1 .0f ) },
444
- { XMFLOAT3 (-1 .0f , 1 .0f , 1 .0f ), XMFLOAT2 (0 .0f , 1 .0f ) },
425
+ { XMFLOAT3 (-1 .0f , 1 .0f , -1 .0f ), XMFLOAT3 ( 0 . 0f , 0 . 0f , 0 . 0f ), XMFLOAT2 (0 .0f , 0 .0f ) },
426
+ { XMFLOAT3 (1 .0f , 1 .0f , -1 .0f ), XMFLOAT3 ( 0 . 0f , 0 . 0f , 0 . 0f ), XMFLOAT2 (1 .0f , 0 .0f ) },
427
+ { XMFLOAT3 (1 .0f , 1 .0f , 1 .0f ), XMFLOAT3 ( 0 . 0f , 0 . 0f , 0 . 0f ), XMFLOAT2 (1 .0f , 1 .0f ) },
428
+ { XMFLOAT3 (-1 .0f , 1 .0f , 1 .0f ), XMFLOAT3 ( 0 . 0f , 0 . 0f , 0 . 0f ), XMFLOAT2 (0 .0f , 1 .0f ) },
429
+
430
+ { XMFLOAT3 (-1 .0f , -1 .0f , -1 .0f ), XMFLOAT3 ( 0 . 0f , 0 . 0f , 0 . 0f ), XMFLOAT2 (0 .0f , 0 .0f ) },
431
+ { XMFLOAT3 (1 .0f , -1 .0f , -1 .0f ), XMFLOAT3 ( 0 . 0f , 0 . 0f , 0 . 0f ), XMFLOAT2 (1 .0f , 0 .0f ) },
432
+ { XMFLOAT3 (1 .0f , -1 .0f , 1 .0f ), XMFLOAT3 ( 0 . 0f , 0 . 0f , 0 . 0f ), XMFLOAT2 (1 .0f , 1 .0f ) },
433
+ { XMFLOAT3 (-1 .0f , -1 .0f , 1 .0f ), XMFLOAT3 ( 0 . 0f , 0 . 0f , 0 . 0f ), XMFLOAT2 (0 .0f , 1 .0f ) },
434
+
435
+ { XMFLOAT3 (-1 .0f , -1 .0f , 1 .0f ), XMFLOAT3 ( 0 . 0f , 0 . 0f , 0 . 0f ), XMFLOAT2 (0 .0f , 0 .0f ) },
436
+ { XMFLOAT3 (-1 .0f , -1 .0f , -1 .0f ), XMFLOAT3 ( 0 . 0f , 0 . 0f , 0 . 0f ), XMFLOAT2 (1 .0f , 0 .0f ) },
437
+ { XMFLOAT3 (-1 .0f , 1 .0f , -1 .0f ), XMFLOAT3 ( 0 . 0f , 0 . 0f , 0 . 0f ), XMFLOAT2 (1 .0f , 1 .0f ) },
438
+ { XMFLOAT3 (-1 .0f , 1 .0f , 1 .0f ), XMFLOAT3 ( 0 . 0f , 0 . 0f , 0 . 0f ), XMFLOAT2 (0 .0f , 1 .0f ) },
439
+
440
+ { XMFLOAT3 (1 .0f , -1 .0f , 1 .0f ), XMFLOAT3 ( 0 . 0f , 0 . 0f , 0 . 0f ), XMFLOAT2 (0 .0f , 0 .0f ) },
441
+ { XMFLOAT3 (1 .0f , -1 .0f , -1 .0f ), XMFLOAT3 ( 0 . 0f , 0 . 0f , 0 . 0f ), XMFLOAT2 (1 .0f , 0 .0f ) },
442
+ { XMFLOAT3 (1 .0f , 1 .0f , -1 .0f ), XMFLOAT3 ( 0 . 0f , 0 . 0f , 0 . 0f ), XMFLOAT2 (1 .0f , 1 .0f ) },
443
+ { XMFLOAT3 (1 .0f , 1 .0f , 1 .0f ), XMFLOAT3 ( 0 . 0f , 0 . 0f , 0 . 0f ), XMFLOAT2 (0 .0f , 1 .0f ) },
444
+
445
+ { XMFLOAT3 (-1 .0f , -1 .0f , -1 .0f ), XMFLOAT3 ( 0 . 0f , 0 . 0f , 0 . 0f ), XMFLOAT2 (0 .0f , 0 .0f ) },
446
+ { XMFLOAT3 (1 .0f , -1 .0f , -1 .0f ), XMFLOAT3 ( 0 . 0f , 0 . 0f , 0 . 0f ), XMFLOAT2 (1 .0f , 0 .0f ) },
447
+ { XMFLOAT3 (1 .0f , 1 .0f , -1 .0f ), XMFLOAT3 ( 0 . 0f , 0 . 0f , 0 . 0f ), XMFLOAT2 (1 .0f , 1 .0f ) },
448
+ { XMFLOAT3 (-1 .0f , 1 .0f , -1 .0f ), XMFLOAT3 ( 0 . 0f , 0 . 0f , 0 . 0f ), XMFLOAT2 (0 .0f , 1 .0f ) },
449
+
450
+ { XMFLOAT3 (-1 .0f , -1 .0f , 1 .0f ), XMFLOAT3 ( 0 . 0f , 0 . 0f , 0 . 0f ), XMFLOAT2 (0 .0f , 0 .0f ) },
451
+ { XMFLOAT3 (1 .0f , -1 .0f , 1 .0f ), XMFLOAT3 ( 0 . 0f , 0 . 0f , 0 . 0f ), XMFLOAT2 (1 .0f , 0 .0f ) },
452
+ { XMFLOAT3 (1 .0f , 1 .0f , 1 .0f ), XMFLOAT3 ( 0 . 0f , 0 . 0f , 0 . 0f ), XMFLOAT2 (1 .0f , 1 .0f ) },
453
+ { XMFLOAT3 (-1 .0f , 1 .0f , 1 .0f ), XMFLOAT3 ( 0 . 0f , 0 . 0f , 0 . 0f ), XMFLOAT2 (0 .0f , 1 .0f ) },
445
454
};
446
455
hr = CreateVertexBufferInline (g_D3D11Device, &g_D3D11VertexBuffer, g_VertexSize, g_VertexCount, vertices);
447
456
FAILED_MESSAGE_RETURN (hr, L" fail to create vertex buffer.." );
0 commit comments