void Sphere::create() { GLuint sph_idx[SPH_IDX_COUNT]; glm::vec4 sph_vert_pos[SPH_VERT_COUNT]; glm::vec4 sph_vert_nor[SPH_VERT_COUNT]; createSphereVertexPositions(sph_vert_pos); createSphereVertexNormals(sph_vert_nor); createSphereIndices(sph_idx); count = SPH_IDX_COUNT; bufIdx.create(); bufIdx.bind(); bufIdx.setUsagePattern(QOpenGLBuffer::StaticDraw); bufIdx.allocate(sph_idx, SPH_IDX_COUNT * sizeof(GLuint)); bufPos.create(); bufPos.bind(); bufPos.setUsagePattern(QOpenGLBuffer::StaticDraw); bufPos.allocate(sph_vert_pos, SPH_VERT_COUNT * sizeof(glm::vec4)); bufNor.create(); bufNor.bind(); bufNor.setUsagePattern(QOpenGLBuffer::StaticDraw); bufNor.allocate(sph_vert_nor, SPH_VERT_COUNT * sizeof(glm::vec4)); }
void Sphere::create() { GLuint sph_idx[SPH_IDX_COUNT]; glm::vec3 sph_vert_pos[SPH_VERT_COUNT]; glm::vec3 sph_vert_nor[SPH_VERT_COUNT]; glm::vec3 sph_vert_col[SPH_VERT_COUNT]; createSphereVertexPositions(sph_vert_pos); createSphereVertexNormals(sph_vert_nor); createSphereIndices(sph_idx); for (int i = 0; i < SPH_VERT_COUNT; i++) { sph_vert_col[i] = material->base_color; } count = SPH_IDX_COUNT; bufIdx.create(); bufIdx.bind(); bufIdx.setUsagePattern(QOpenGLBuffer::StaticDraw); bufIdx.allocate(sph_idx, SPH_IDX_COUNT * sizeof(GLuint)); bufPos.create(); bufPos.bind(); bufPos.setUsagePattern(QOpenGLBuffer::StaticDraw); bufPos.allocate(sph_vert_pos, SPH_VERT_COUNT * sizeof(glm::vec3)); bufCol.create(); bufCol.bind(); bufCol.setUsagePattern(QOpenGLBuffer::StaticDraw); bufCol.allocate(sph_vert_col, SPH_VERT_COUNT * sizeof(glm::vec3)); bufNor.create(); bufNor.bind(); bufNor.setUsagePattern(QOpenGLBuffer::StaticDraw); bufNor.allocate(sph_vert_nor, SPH_VERT_COUNT * sizeof(glm::vec3)); }