修正加载错误

This commit is contained in:
hyzboy 2020-06-20 00:44:56 +08:00
parent 7eb49939fd
commit 39c8b7d56e

View File

@ -1,4 +1,4 @@
#include<hgl/graph/data/SceneNodeData.h> #include<hgl/graph/data/SceneNodeData.h>
#include<hgl/graph/NTB.h> #include<hgl/graph/NTB.h>
#include<hgl/filesystem/FileSystem.h> #include<hgl/filesystem/FileSystem.h>
#include<hgl/log/LogInfo.h> #include<hgl/log/LogInfo.h>
@ -34,7 +34,7 @@ namespace hgl
if(md->version!=1) if(md->version!=1)
return(false); return(false);
LOG_INFO(OS_TEXT("Load StaticMesh file begin, ver:")+OSString::valueOf(version)); LOG_INFO(OS_TEXT("Load StaticMesh file begin, ver:")+OSString::valueOf(md->version));
return(true); return(true);
} }
@ -70,6 +70,9 @@ namespace hgl
box.maxPoint.x=*(float *)sp;sp+=sizeof(float); box.maxPoint.x=*(float *)sp;sp+=sizeof(float);
box.maxPoint.y=*(float *)sp;sp+=sizeof(float); box.maxPoint.y=*(float *)sp;sp+=sizeof(float);
box.maxPoint.z=*(float *)sp;sp+=sizeof(float); box.maxPoint.z=*(float *)sp;sp+=sizeof(float);
LOG_INFO(OS_TEXT("\tmin point: ")+OSString::valueOf(box.minPoint.x)+OS_TEXT(",")+OSString::valueOf(box.minPoint.y)+OS_TEXT(",")+OSString::valueOf(box.minPoint.z));
LOG_INFO(OS_TEXT("\tmax point: ")+OSString::valueOf(box.maxPoint.x)+OS_TEXT(",")+OSString::valueOf(box.maxPoint.y)+OS_TEXT(",")+OSString::valueOf(box.maxPoint.z));
} }
bool LoadMesh(MeshData *mesh) bool LoadMesh(MeshData *mesh)
@ -84,12 +87,12 @@ namespace hgl
LOG_INFO(OS_TEXT("\tVertex: ")+OSString::valueOf(mesh->vertex_count)); LOG_INFO(OS_TEXT("\tVertex: ")+OSString::valueOf(mesh->vertex_count));
mesh->position=(float *)sp; mesh->position=(float *)sp;
sp+=sizeof(float)*mesh->vertex_count; sp+=sizeof(float)*3*mesh->vertex_count;
if(mesh->ntb&NTB_BIT_NORMAL) if(mesh->ntb&NTB_BIT_NORMAL)
{ {
mesh->normal=(float *)sp; mesh->normal=(float *)sp;
sp+=sizeof(float)*mesh->vertex_count; sp+=sizeof(float)*3*mesh->vertex_count;
LOG_INFO(OS_TEXT("\thas normal")); LOG_INFO(OS_TEXT("\thas normal"));
} }
@ -97,7 +100,7 @@ namespace hgl
if(mesh->ntb&NTB_BIT_TANGENT) if(mesh->ntb&NTB_BIT_TANGENT)
{ {
mesh->tangent=(float *)sp; mesh->tangent=(float *)sp;
sp+=sizeof(float)*mesh->vertex_count; sp+=sizeof(float)*3*mesh->vertex_count;
LOG_INFO(OS_TEXT("\thas tangent")); LOG_INFO(OS_TEXT("\thas tangent"));
} }
@ -105,14 +108,17 @@ namespace hgl
if(mesh->ntb&NTB_BIT_BINORMAL) if(mesh->ntb&NTB_BIT_BINORMAL)
{ {
mesh->binormal=(float *)sp; mesh->binormal=(float *)sp;
sp+=sizeof(float)*mesh->vertex_count; sp+=sizeof(float)*3*mesh->vertex_count;
LOG_INFO(OS_TEXT("\thas bitangent/binormal")); LOG_INFO(OS_TEXT("\thas bitangent/binormal"));
} }
{ {
mesh->color_count=*sp++; mesh->color_count=*sp++;
LOG_INFO(OS_TEXT("\tColor: ")+OSString::valueOf(mesh->vertex_count));
if(mesh->color_count)
{
LOG_INFO(OS_TEXT("\tColor: ")+OSString::valueOf(mesh->color_count));
mesh->colors=new uint8 *[mesh->color_count]; mesh->colors=new uint8 *[mesh->color_count];
for(uint i=0;i<mesh->color_count;i++) for(uint i=0;i<mesh->color_count;i++)
@ -121,10 +127,14 @@ namespace hgl
sp+=4*mesh->vertex_count; sp+=4*mesh->vertex_count;
} }
} }
}
{ {
mesh->uv_count=*sp++; mesh->uv_count=*sp++;
LOG_INFO(OS_TEXT("\tUV: ")+OSString::valueOf(mesh->uv_count)); LOG_INFO(OS_TEXT("\tUV: ")+OSString::valueOf(mesh->uv_count));
if(mesh->uv_count>0)
{
mesh->uv_component=sp; mesh->uv_component=sp;
sp+=mesh->uv_count; sp+=mesh->uv_count;
@ -137,6 +147,7 @@ namespace hgl
LOG_INFO(OS_TEXT("\t\tUV ")+OSString::valueOf(i)+OS_TEXT(" : ")+OSString::valueOf(mesh->uv_component[i])); LOG_INFO(OS_TEXT("\t\tUV ")+OSString::valueOf(i)+OS_TEXT(" : ")+OSString::valueOf(mesh->uv_component[i]));
} }
} }
}
{ {
mesh->indices_count=*(uint32 *)sp; mesh->indices_count=*(uint32 *)sp;