Maxwell писал(а):Может кто нибуть ещё знает или хотя бы, как это на DX8 делается?
На восьмерке .TGA загружается легко:
Dim MtrlBuffer As D3DXBuffer ' универсальный кусок памяти
Dim i As Long
' загрузить Mesh из .х файла
Set Mesh = D3DX.LoadMeshFromX(App.Path & "\cube.x", D3DXMESH_MANAGED, _
D3DDevice, Nothing, MtrlBuffer, NumMaterials)
' распределить пространство для наших материалов и текстур
ReDim MeshMaterials(NumMaterials)
ReDim MeshTextures(NumMaterials)
Dim strTexName As String
' извлечь свойства материалов и имена текстур из MtrlBuffer
For i = 0 To NumMaterials - 1
' копировать материалы, используя d3dx функцию
D3DX.BufferGetMaterial MtrlBuffer, i, MeshMaterials(i)
' установить окружающий цвет для материала (D3DX не делает этого)
MeshMaterials(i).Ambient.r = 200
MeshMaterials(i).Ambient.g = 200
MeshMaterials(i).Ambient.b = 200
MeshMaterials(i).Ambient.a = 200
MeshMaterials(i).diffuse = MeshMaterials(i).Ambient
MeshMaterials(i).specular = MeshMaterials(i).Ambient
' создать текстуры
strTexName = D3DX.BufferGetTextureName(MtrlBuffer, i)
If strTexName <> "" Then
'Set MeshTextures(i) = D3DX.CreateTextureFromFileEx(D3DDevice, App.Path & "" & strTexName, 256, 256, D3DX_DEFAULT, 0, D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_DEFAULT, D3DX_DEFAULT, &HFF000000, ByVal 0, ByVal 0)
Set MeshTextures(i) = D3DX.CreateTextureFromFileEx(D3DDevice, App.Path & "" & "Red.tga", 256, 256, D3DX_DEFAULT, 0, D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_DEFAULT, D3DX_DEFAULT, &HFF000000, ByVal 0, ByVal 0)
End If
' установить материал и текстуру для этого подмножества
D3DDevice.SetMaterial MeshMaterials(i)
D3DDevice.SetTexture 0, MeshTextures(i)
Next i
Set MtrlBuffer = Nothing