小编Xen*_*tus的帖子

网格类中损坏的顶点数据

我正在尝试实现模型加载,但遇到一个问题。当我尝试绘制网格(出于测试目的而手工编写的单个纹理四边形)时,由于某种原因,与第一个顶点关联的重复数据被传递到顶点着色器(RenderDoc 屏幕)。

这是一个使用我的类的精简版本的示例,它仍然表现出这种行为:

#define TEST_MESH

#include <glad/glad.h>
#include <GLFW/glfw3.h>

#include <iostream>
#include <vector>

void framebuffer_size_callback(GLFWwindow* window, int width, int height);
void processInput(GLFWwindow* window);

struct Vertex {
    float position[3];
    float color[3];
};

class Mesh {
public:
    Mesh(std::vector<Vertex> vertices, std::vector<unsigned int> indices);
    ~Mesh();
    Mesh(const Mesh&) = delete;
    Mesh& operator=(const Mesh&) = delete;
    Mesh(Mesh&& other);
    Mesh& operator=(Mesh&& other);

    void Draw(unsigned int program_id);

    std::vector<Vertex> m_Vertices;
    std::vector<unsigned int> m_Indices;

private:
    unsigned int m_VAO, m_VBO, m_EBO;

    void Setup();
    void Release();
};

int main() { …
Run Code Online (Sandbox Code Playgroud)

c++ opengl mesh vertex-buffer

4
推荐指数
1
解决办法
180
查看次数

标签 统计

c++ ×1

mesh ×1

opengl ×1

vertex-buffer ×1