Собственно вопрос - как удобнее реализовать загруску множества мешей? Распробовал много вариантов, но как дело доходит до загрузки, прога вылетает. Если у кого есть исходник или ссылочка на исходник то я буду очень рад если вы их выложите. Заранее блогадарен.
Вот сдесь должна быть ошибка Код (Text): LoadingMesh proc MeshStrucAddr , NameFileMeshAddr invoke D3DXLoadMeshFromXA, NameFileMeshAddr, D3DXMESH_SYSTEMMEM, pd3dDevice, NULL, MeshStrucAddr+4,NULL, MeshStrucAddr, MeshStrucAddr+8 mov ebx, MeshStrucAddr d3dxbuf GetBufferPointer, [ebx].MESHSTRUC.pd3dxBuffer ; Ýòîò áóôåð íàáèò ñòðóêòóðàìè òèïà D3DXMATERIAL + DWORD óêàçàòåëü íà èìÿ òåêñòóðû. ; D3DXMATERIAL = 4*COLORVALUE (COLORVALUE=4 float'àì) + float mov [ebx].MESHSTRUC.pMeshMatrl, eax mov esi, eax ; Íà÷èíàåì ãðóçèòü òåêñòóðû lea edi, [ebx].MESHSTRUC.pMeshTexture mov ecx, [ebx].MESHSTRUC.NumMaterial @2: push ecx add esi, 16*4+4 mov eax, [esi] add esi, 4 push edi test eax, eax jz @1 push esi push eax invoke MessageBox, hwnd, eax, eax, 0 pop eax pop esi pop edi push edi push esi invoke D3DXCreateTextureFromFileA, pd3dDevice, eax, edi pop esi @1: pop edi add edi, 4 pop ecx loop @2 ret LoadingMesh endp Это функция загрузки меша. первый параметр это структура MESHSTRUC STRUC NumMaterial dd ? pd3dxBuffer dd ? pMesh dd ? ;pMeshMaterial D3DXMATERIAL 20 DUP (<>) pMeshMatrl dd ? pMeshTexture dd 20 DUP (?) MESHSTRUC ENDS а второй имя файла
видимо ты ее сам и внес да? потому что когда я писал этот пример загрузки .x файлов, он замечтально работал.
лень было самому писать Твой пример работает отлично, но проблема в том что если я захочу загрузить к примеру 30 мешей, то это станет непосильной задачей. Придется описывать каждую переменную каждую ссылку на меш и т.п. Поэтому я вынес твой алгоритм в отдельную функцию. Но хотя все на мой взгляд правильно - прога вылетает
Попробовал убрать код который ниже этой функции invoke D3DXLoadMeshFromXA, NameFileMeshAddr, D3DXMESH_SYSTEMMEM, pd3dDevice, NULL, MeshStrucAddr+4,NULL, MeshStrucAddr, MeshStrucAddr+8 Тоже вылетело, но вот что интересно. Посмотрев подробности ошибки я увидел адрес где она была. Так вот, что до удаления кода что после - один и тотже адрес. Значит ошибка в этой функции загрузки меша (может еще где, но сдесь точно есть). Круг поиска сузился