fixed the triangle problem :D
next: add texture import, test multiedged mesh, add open button, add drag n' drop
This commit is contained in:
parent
d63d5276a1
commit
c96d05decb
@ -38,7 +38,7 @@ void GeometryEngine::initCubeGeometry()
|
||||
|
||||
try
|
||||
{
|
||||
MshFile file("..\\Release\\Msh\\cube.msh");
|
||||
MshFile file("..\\Release\\Msh\\cubeTex.msh");
|
||||
m_models = file.getModels();
|
||||
//TODO use models local, apply MVP directly to the vertex, save size and tex index info
|
||||
|
||||
@ -50,75 +50,13 @@ void GeometryEngine::initCubeGeometry()
|
||||
auto msg = e.what();
|
||||
}
|
||||
|
||||
QVector<VertexData> vertices = {
|
||||
// Vertex data for face 0
|
||||
{QVector3D(-1.0f, -1.0f, 1.0f), QVector2D(0.0f, 0.0f)}, // v0
|
||||
{QVector3D( 1.0f, -1.0f, 1.0f), QVector2D(0.33f, 0.0f)}, // v1
|
||||
{QVector3D(-1.0f, 1.0f, 1.0f), QVector2D(0.0f, 0.5f)}, // v2
|
||||
{QVector3D( 1.0f, 1.0f, 1.0f), QVector2D(0.33f, 0.5f)}, // v3
|
||||
|
||||
// Vertex data for face 1
|
||||
{QVector3D( 1.0f, -1.0f, 1.0f), QVector2D( 0.0f, 0.5f)}, // v4
|
||||
{QVector3D( 1.0f, -1.0f, -1.0f), QVector2D(0.33f, 0.5f)}, // v5
|
||||
{QVector3D( 1.0f, 1.0f, 1.0f), QVector2D(0.0f, 1.0f)}, // v6
|
||||
{QVector3D( 1.0f, 1.0f, -1.0f), QVector2D(0.33f, 1.0f)}, // v7
|
||||
|
||||
// Vertex data for face 2
|
||||
{QVector3D( 1.0f, -1.0f, -1.0f), QVector2D(0.66f, 0.5f)}, // v8
|
||||
{QVector3D(-1.0f, -1.0f, -1.0f), QVector2D(1.0f, 0.5f)}, // v9
|
||||
{QVector3D( 1.0f, 1.0f, -1.0f), QVector2D(0.66f, 1.0f)}, // v10
|
||||
{QVector3D(-1.0f, 1.0f, -1.0f), QVector2D(1.0f, 1.0f)}, // v11
|
||||
|
||||
// Vertex data for face 3
|
||||
{QVector3D(-1.0f, -1.0f, -1.0f), QVector2D(0.66f, 0.0f)}, // v12
|
||||
{QVector3D(-1.0f, -1.0f, 1.0f), QVector2D(1.0f, 0.0f)}, // v13
|
||||
{QVector3D(-1.0f, 1.0f, -1.0f), QVector2D(0.66f, 0.5f)}, // v14
|
||||
{QVector3D(-1.0f, 1.0f, 1.0f), QVector2D(1.0f, 0.5f)}, // v15
|
||||
|
||||
// Vertex data for face 4
|
||||
{QVector3D(-1.0f, -1.0f, -1.0f), QVector2D(0.33f, 0.0f)}, // v16
|
||||
{QVector3D( 1.0f, -1.0f, -1.0f), QVector2D(0.66f, 0.0f)}, // v17
|
||||
{QVector3D(-1.0f, -1.0f, 1.0f), QVector2D(0.33f, 0.5f)}, // v18
|
||||
{QVector3D( 1.0f, -1.0f, 1.0f), QVector2D(0.66f, 0.5f)}, // v19
|
||||
|
||||
// Vertex data for face 5
|
||||
{QVector3D(-1.0f, 1.0f, 1.0f), QVector2D(0.33f, 0.5f)}, // v20
|
||||
{QVector3D( 1.0f, 1.0f, 1.0f), QVector2D(0.66f, 0.5f)}, // v21
|
||||
{QVector3D(-1.0f, 1.0f, -1.0f), QVector2D(0.33f, 1.0f)}, // v22
|
||||
{QVector3D( 1.0f, 1.0f, -1.0f), QVector2D(0.66f, 1.0f)} // v23
|
||||
};
|
||||
|
||||
QVector<GLushort> indices = {
|
||||
0,1,2, //vorne (4)
|
||||
3,2,1,
|
||||
4,5,7, //rechts (1)
|
||||
6,4,7,
|
||||
8,9,11, //hinten (3)*
|
||||
8,11,10,
|
||||
14,12,13, //links (6)*
|
||||
14,13,15,
|
||||
18,16,17, //unten (5)
|
||||
19,18,17,
|
||||
23,22,20, //oben (2)*
|
||||
23,20,21
|
||||
};
|
||||
|
||||
// Transfer vertex data to VBO 0
|
||||
m_arrayBuf.bind();
|
||||
m_arrayBuf.allocate(m_models->first()->segmList.front()->vertices.data(), m_models->first()->segmList.front()->vertices.size() * sizeof(VertexData));
|
||||
|
||||
// Transfer index data to VBO 1
|
||||
m_indexBuf.bind();
|
||||
m_indexBuf.allocate(m_models->first()->segmList.front()->indices.data(), m_models->first()->segmList.front()->indices.size() * sizeof(GLushort));
|
||||
|
||||
|
||||
//// Transfer vertex data to VBO 0
|
||||
//m_arrayBuf.bind();
|
||||
//m_arrayBuf.allocate(vertices.data(), vertices.size() * sizeof(VertexData));
|
||||
|
||||
//// Transfer index data to VBO 1
|
||||
//m_indexBuf.bind();
|
||||
//m_indexBuf.allocate(indices.data(), indices.size() * sizeof(GLushort));
|
||||
m_indexBuf.allocate(m_models->first()->segmList.front()->indices.data(), m_models->first()->segmList.front()->indices.size() * sizeof(GLuint));
|
||||
|
||||
// load the texture
|
||||
initTexture();
|
||||
@ -173,5 +111,5 @@ void GeometryEngine::drawGeometry(QOpenGLShaderProgram *program)
|
||||
program->setAttributeBuffer(texcoordLocation, GL_FLOAT, offset, 2, sizeof(VertexData));
|
||||
|
||||
// Draw cube geometry using indices from VBO 1
|
||||
glDrawElements(GL_TRIANGLES, 36, GL_UNSIGNED_SHORT, 0);
|
||||
glDrawElements(GL_TRIANGLES, 36, GL_UNSIGNED_INT, 0);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user