Optimize model loading
This commit is contained in:
@@ -4,6 +4,7 @@ project(Fall-Fever)
|
||||
|
||||
if(WIN32)
|
||||
set(GLFW3_ROOT "${PROJECT_SOURCE_DIR}/glfw")
|
||||
include_directories(${PROJECT_SOURCE_DIR}/glfw/include)
|
||||
endif(WIN32)
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
|
||||
@@ -22,4 +23,6 @@ set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG")
|
||||
add_subdirectory(${PROJECT_SOURCE_DIR}/lib)
|
||||
add_subdirectory(${PROJECT_SOURCE_DIR}/src)
|
||||
|
||||
add_subdirectory(${PROJECT_SOURCE_DIR}/tools)
|
||||
if(!WIN32)
|
||||
add_subdirectory(${PROJECT_SOURCE_DIR}/tools)
|
||||
endif(!WIN32)
|
||||
@@ -18,7 +18,6 @@ target_link_libraries(
|
||||
stb
|
||||
${GLFW3_LIBRARY}
|
||||
${OPENGL_LIBRARIES}
|
||||
assimp
|
||||
)
|
||||
|
||||
target_compile_options(Fall-Fever PRIVATE -Wall -Wextra -pedantic)
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
#include "Model.h"
|
||||
|
||||
#include <iostream>
|
||||
#include <cassert>
|
||||
#include <fstream>
|
||||
|
||||
Model::Model(const char* pathToModel) {
|
||||
@@ -69,9 +68,9 @@ void Model::loadModel(std::string pathToModel) {
|
||||
|
||||
// Here starts the first mesh
|
||||
uint32_t numMeshes;
|
||||
for(unsigned int j = 0; j < numMeshes; j++) {
|
||||
input.read((char*) &numMeshes, sizeof(uint32_t));
|
||||
|
||||
input.read((char*) &numMeshes, sizeof(uint32_t));
|
||||
for(unsigned int j = 0; j < numMeshes; j++) {
|
||||
|
||||
uint32_t numMeshVertices, numMeshIndices, numMeshTextureIds;
|
||||
|
||||
@@ -79,21 +78,18 @@ void Model::loadModel(std::string pathToModel) {
|
||||
input.read((char*) &numMeshIndices, sizeof(uint32_t));
|
||||
input.read((char*) &numMeshTextureIds, sizeof(uint32_t));
|
||||
|
||||
uint32_t vertexBlockSize = numMeshVertices * sizeof(Vertex);
|
||||
uint32_t indexBlockSize = numMeshIndices * sizeof(uint32_t);
|
||||
|
||||
// Here starts the first Vertex data
|
||||
|
||||
std::vector<Vertex> meshVertices;
|
||||
for(unsigned int i = 0; i < numMeshVertices; i++) {
|
||||
Vertex currentVertex;
|
||||
input.read((char*) ¤tVertex, sizeof(Vertex));
|
||||
meshVertices.push_back(currentVertex);
|
||||
}
|
||||
meshVertices.resize(numMeshVertices);
|
||||
input.read((char*) meshVertices.data(), vertexBlockSize);
|
||||
|
||||
std::vector<uint32_t> meshIndices;
|
||||
for(unsigned int i = 0; i < numMeshIndices; i++) {
|
||||
uint32_t currentIndex;
|
||||
input.read((char*) ¤tIndex, sizeof(uint32_t));
|
||||
meshIndices.push_back(currentIndex);
|
||||
}
|
||||
meshIndices.resize(numMeshIndices);
|
||||
input.read((char*) meshIndices.data(), indexBlockSize);
|
||||
|
||||
std::vector<Texture*> meshTextures;
|
||||
for(unsigned int i = 0; i < numMeshTextureIds; i++) {
|
||||
|
||||
Reference in New Issue
Block a user