我有一个由 8 个顶点组成的盒子,可以在任何方向上缩放或旋转,所以我对每个变换的顶点应用变换矩阵,我在 X、Y 和 Z 上从中心有中心、大小和方向,我如何检查盒子内有任何 3D 点吗?
我正在尝试建造一个酒吧。
首先我声明一个结构
struct VertexFormat
    {
        glm::vec3 positions;
        glm::vec3 normal;
        glm::vec2 texCoord;
        VertexFormat(glm::vec3 pos, glm::vec3 norm, glm::vec2 coord) : positions(pos), normal(norm), texCoord(coord)
        {   }
    };
然后我配置 VAO 和 VBO
glBindVertexArray(m_VAO);
glBindBuffer(GL_ARRAY_BUFFER, m_VBO);
glBufferData(GL_ARRAY_BUFFER, data.size() * sizeof(VertexFormat), &data[0], GL_STATIC_DRAW);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, indices.size(), &indices[0], GL_STATIC_DRAW);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, data.size() * sizeof(VertexFormat), (void*)0);
glEnableVertexAttribArray(1);
glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, data.size() * sizeof(VertexFormat), (void*)(3 * sizeof(float)));
glEnableVertexAttribArray(2);
glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, data.size() * sizeof(VertexFormat), (void*)(6 * sizeof(float)));
glBindVertexArray(0);
当我发出绘图命令时,没有绘制任何内容
glBindVertexArray(m_VAO);
glDrawElements(GL_TRIANGLES, 24, GL_UNSIGNED_INT, …我使用一个缓冲区来传递我的 C++ 结构
struct Node {
    Node(int size, glm::ivec3 position);
    bool isEmpty();
    int getSubIndex(const glm::ivec3& vec);
    void divide(std::vector<Node> &nodes);
    void setColor(glm::vec4 color);
    int getSubNodeIndex(const glm::ivec3& vec);
    int getSubNodeIndex(int subIndex);
    glm::ivec4 position;
    glm::vec4 color;
    int halfSize;
    int sub;
    int leaf;
};
在着色器中看起来像这样
struct Node {
    vec4 position;
    vec4 color;
    int data[3];
};
layout(std430, binding=4) readonly buffer Octree_data {
    Node nodes[];
};
在计算过程中,我发现数组的所有元素(除了第一个元素)都有不正确的数据(很可能是移位的),我会犯什么错误?
当我尝试C在代码中构建一个项目时:使用GLM的ubuntu 14.04上的块我得到了这个
致命错误:cmath:没有这样的文件或目录
任何想法如何解决这一问题?