Я играю с генерацией сеток во время выполнения, хотя я застрял на рисовании простого куба. Почему на экране ничего не появляется?
Как превратить массив с плавающей точкой (вершины треугольника) в трехмерную сетку?
Чтобы соответствовать требуемой длине описания, у меня есть второй, связанный вопрос. Когда куб будет уже отрендерен, как на него наложить текстуру?
class Master : public QObject
{
Q_OBJECT
public:
explicit Master(QObject *parent = nullptr) : QObject(parent)
{
float vertexArray[] = {
-1.0f,-1.0f,-1.0f,
-1.0f,-1.0f, 1.0f,
-1.0f, 1.0f, 1.0f,
1.0f, 1.0f,-1.0f,
-1.0f,-1.0f,-1.0f,
-1.0f, 1.0f,-1.0f,
1.0f,-1.0f, 1.0f,
-1.0f,-1.0f,-1.0f,
1.0f,-1.0f,-1.0f,
1.0f, 1.0f,-1.0f,
1.0f,-1.0f,-1.0f,
-1.0f,-1.0f,-1.0f,
-1.0f,-1.0f,-1.0f,
-1.0f, 1.0f, 1.0f,
-1.0f, 1.0f,-1.0f,
1.0f,-1.0f, 1.0f,
-1.0f,-1.0f, 1.0f,
-1.0f,-1.0f,-1.0f,
-1.0f, 1.0f, 1.0f,
-1.0f,-1.0f, 1.0f,
1.0f,-1.0f, 1.0f,
1.0f, 1.0f, 1.0f,
1.0f,-1.0f,-1.0f,
1.0f, 1.0f,-1.0f,
1.0f,-1.0f,-1.0f,
1.0f, 1.0f, 1.0f,
1.0f,-1.0f, 1.0f,
1.0f, 1.0f, 1.0f,
1.0f, 1.0f,-1.0f,
-1.0f, 1.0f,-1.0f,
1.0f, 1.0f, 1.0f,
-1.0f, 1.0f,-1.0f,
-1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f,
-1.0f, 1.0f, 1.0f,
1.0f,-1.0f, 1.0f
};
m_buffer.append(reinterpret_cast<const char*>(vertexArray), sizeof(vertexArray));
}
Q_PROPERTY(QByteArray buffer READ buffer CONSTANT)
QByteArray buffer() const { return m_buffer; }
private:
QByteArray m_buffer;
};
И GeometryRenderer в Scene3D:
Entity{
Material{
id: material
parameters: [
Parameter { name: "color"; value: "green" }
]
}
GeometryRenderer{
id: geometryRenderer
instanceCount: 0
primitiveType: GeometryRenderer.Triangles
geometry: Geometry{
Attribute{
attributeType: Attribute.VertexAttribute
vertexBaseType: Attribute.Float
vertexSize: 3
byteOffset: 0
byteStride: 3 * 4
count: 12
buffer : Buffer{
type: Buffer.VertexBuffer
data: Master.buffer
}
}
}
}
components: [material, geometryRenderer]
}