小编ste*_*eph的帖子

如何使用材质而不是纹理 OpenGl 加载模型?

我使用learnopengl 模型加载教程及其代码来加载他们的模型。当我尝试加载不同的模型时,它不起作用。在网上阅读后,我了解到我的模型可能没有纹理,而是可能有材质。

我阅读在模型类中使用以下函数:

Material loadMaterial(aiMaterial *mat)
    {
        Material material;
        aiColor3D color(0.f, 0.f, 0.f);
        float shininess;

        mat->Get(AI_MATKEY_COLOR_DIFFUSE, color);
        material.Diffuse = glm::vec3(color.r, color.b, color.g);

        mat->Get(AI_MATKEY_COLOR_AMBIENT, color);
        material.Ambient = glm::vec3(color.r, color.b, color.g);

        mat->Get(AI_MATKEY_COLOR_SPECULAR, color);
        material.Specular = glm::vec3(color.r, color.b, color.g);

        mat->Get(AI_MATKEY_SHININESS, shininess);
        material.Shininess = shininess;

        return material;
    }

Run Code Online (Sandbox Code Playgroud)

我不确定在哪里调用它以及如何将其与我的代码的其余部分集成。

这是我的其余代码:

型号类别:

#ifndef MODEL_H
#define MODEL_H

//#include <glad/glad.h>

#include <GL/glew.h>
#include <glm/glm.hpp>
#include <GLFW/glfw3.h>

#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>

#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <stb_image.h>
#include <assimp/Importer.hpp>
#include <assimp/scene.h>
#include <assimp/postprocess.h>

#include …
Run Code Online (Sandbox Code Playgroud)

c++ opengl glfw glm-math assimp

5
推荐指数
0
解决办法
1720
查看次数

标签 统计

assimp ×1

c++ ×1

glfw ×1

glm-math ×1

opengl ×1