// // Fill in vertices of a box // Vertex* v = 0; Mesh->LockVertexBuffer(0, (void**)&v);
// fill in the front face vertex data v[0] = Vertex(-1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f); v[1] = Vertex(-1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f); v[2] = Vertex( 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f); v[3] = Vertex( 1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f);
// fill in the back face vertex data v[4] = Vertex(-1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f); v[5] = Vertex( 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f); v[6] = Vertex( 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f); v[7] = Vertex(-1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f);
// fill in the top face vertex data v[8] = Vertex(-1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f); v[9] = Vertex(-1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f); v[10] = Vertex( 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f); v[11] = Vertex( 1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f);
// fill in the bottom face vertex data v[12] = Vertex(-1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f); v[13] = Vertex( 1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f); v[14] = Vertex( 1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 1.0f); v[15] = Vertex(-1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f);
// fill in the left face vertex data v[16] = Vertex(-1.0f, -1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f); v[17] = Vertex(-1.0f, 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f); v[18] = Vertex(-1.0f, 1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 1.0f); v[19] = Vertex(-1.0f, -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f);
// fill in the right face vertex data v[20] = Vertex( 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f); v[21] = Vertex( 1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f); v[22] = Vertex( 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f); v[23] = Vertex( 1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f);
Mesh->UnlockVertexBuffer();
// // Define the triangles of the box // WORD* i = 0; Mesh->LockIndexBuffer(0, (void**)&i);
// fill in the front face index data i[0] = 0; i[1] = 1; i[2] = 2; i[3] = 0; i[4] = 2; i[5] = 3;
// fill in the back face index data i[6] = 4; i[7] = 5; i[8] = 6; i[9] = 4; i[10] = 6; i[11] = 7;
// fill in the top face index data i[12] = 8; i[13] = 9; i[14] = 10; i[15] = 8; i[16] = 10; i[17] = 11;
// fill in the bottom face index data i[18] = 12; i[19] = 13; i[20] = 14; i[21] = 12; i[22] = 14; i[23] = 15;
// fill in the left face index data i[24] = 16; i[25] = 17; i[26] = 18; i[27] = 16; i[28] = 18; i[29] = 19;
// fill in the right face index data i[30] = 20; i[31] = 21; i[32] = 22; i[33] = 20; i[34] = 22; i[35] = 23;
Mesh->UnlockIndexBuffer();
// // Specify the subset each triangle belongs to, in this example // we will use three subsets, the first two faces of the cube specified // will be in subset 0, the next two faces will be in subset 1 and // the the last two faces will be in subset 2. // DWORD* attributeBuffer = 0; Mesh->LockAttributeBuffer(0, &attributeBuffer);
for(int a = 0; a < 4; a++) attributeBuffer[a] = 0;
for(int b = 4; b < 8; b++) attributeBuffer[b] = 1;
for(int c = 8; c < 12; c++) attributeBuffer[c] = 2;
Mesh->UnlockAttributeBuffer();
// // Optimize the mesh to generate an attribute table. //
// an attribute for each face for(int i = 0; i < mesh->GetNumFaces(); i++) { outFile << "Triangle lives in subset " << i << ": "; outFile << attributeBuffer[i] << std::endl; } mesh->UnlockAttributeBuffer();
И ошибки желательно приводить конкретные, так будет горадо понятнее. C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
------ Перестроение всех файлов начато: проект: lu10, Конфигурация: Debug Win32 ------ Удаление промежуточных и выходных файлов проекта "lu10", конфигурации "Debug|Win32" Компиляция... d3dUtility.cpp d3dxcreatemeshfvf.cpp d:\mdx\lu10\d3dxcreatemeshfvf.cpp(390) : warning C4018: <: несоответствие типов со знаком и без знака d:\mdx\lu10\d3dxcreatemeshfvf.cpp(410) : warning C4018: <: несоответствие типов со знаком и без знака d:\mdx\lu10\d3dxcreatemeshfvf.cpp(431) : warning C4018: <: несоответствие типов со знаком и без знака d:\mdx\lu10\d3dxcreatemeshfvf.cpp(451) : warning C4018: <: несоответствие типов со знаком и без знака d:\mdx\lu10\d3dxcreatemeshfvf.cpp(476) : warning C4018: <: несоответствие типов со знаком и без знака Создание кода... Компиляция манифеста в ресурсы... Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0 Copyright (C) Microsoft Corporation. All rights reserved. Компоновка... d3dxcreatemeshfvf.obj : error LNK2019: ссылка на неразрешенный внешний символ _D3DXMatrixPerspectiveFovLH@20 в функции "bool __cdecl Setup(void)" (?Setup@@YA_NXZ) d3dxcreatemeshfvf.obj : error LNK2019: ссылка на неразрешенный внешний символ _D3DXMatrixLookAtLH@16 в функции "bool __cdecl Setup(void)" (?Setup@@YA_NXZ) d3dxcreatemeshfvf.obj : error LNK2019: ссылка на неразрешенный внешний символ _D3DXCreateTextureFromFileA@12 в функции "bool __cdecl Setup(void)" (?Setup@@YA_NXZ) d3dxcreatemeshfvf.obj : error LNK2019: ссылка на неразрешенный внешний символ _D3DXCreateMeshFVF@24 в функции "bool __cdecl Setup(void)" (?Setup@@YA_NXZ) d3dxcreatemeshfvf.obj : error LNK2019: ссылка на неразрешенный внешний символ _D3DXMatrixRotationY@8 в функции "bool __cdecl Display(float)" (?Display@@YA_NM@Z) d3dxcreatemeshfvf.obj : error LNK2019: ссылка на неразрешенный внешний символ _D3DXMatrixRotationX@8 в функции "bool __cdecl Display(float)" (?Display@@YA_NM@Z) d3dxcreatemeshfvf.obj : error LNK2019: ссылка на неразрешенный внешний символ _D3DXMatrixMultiply@12 в функции "public: struct D3DXMATRIX __thiscall D3DXMATRIX::operator*(struct D3DXMATRIX const &)const " (??DD3DXMATRIX@@QBE?AU0@ABU0@@Z) .\Debug/lu10.exe : fatal error LNK1120: 7 неразрешенных внешних элементов Журнал построения был сохранен в "file://d:\mdx\lu10\Debug\BuildLog.htm" lu10 - ошибок 8, предупреждений 5 ========== Перестроение всех: успешно: 0, с ошибками: 1, пропущено: 0 ==========
Да я так и подумал) Плохо "дружу" с форумами... Так же добавил d3d9.lib и winmm.lib
Добавлено (15.11.2012, 19:08) --------------------------------------------- В VC++ 6 получаю только одну ошибку с тем же кодом........
Code
D:\DIRECTX_SDK\LIB\X64\d3d9.lib : fatal error LNK1113: invalid machine type
Сообщение отредактировал faa3a - Четверг, 15 Ноября 2012, 19:05