Jump to content

Manualy building mesh


photo

Recommended Posts

Мне надо по формулам постороить объект
 

//Пробую как в примере
MeshPtr mesh = Mesh::create();

	// add a new surface
	mesh->addSurface("surface_0");

	// add vertices of the plane
	mesh->addVertex(Math::vec3(0.0f, 0.0f, 0.0f), 0);
	mesh->addVertex(Math::vec3(0.0f, 0.0f, 1.0f), 0);
	mesh->addVertex(Math::vec3(0.0f, 1.0f, 0.0f), 0);
	mesh->addVertex(Math::vec3(0.0f, 1.0f, 1.0f), 0);

	// add indices 
	mesh->addIndex(0, 0);
	mesh->addIndex(1, 0);
	mesh->addIndex(2, 0);

	mesh->addIndex(3, 0);
	mesh->addIndex(2, 0);
	mesh->addIndex(1, 0);
	
	ObjectMeshDynamicPtr dynamicMesh = ObjectMeshDynamic::create(mesh);

	// set the position of the mesh
	dynamicMesh->setWorldTransform(translate(Math::Vec3(0.0f, 0.0f, 0.0f)));
	// set the material to the mesh
	dynamicMesh->setMaterial("mesh_base", "*");
	// set the name of the mesh
	dynamicMesh->setName("new_mesh");

image.png.c6eff8f539ed7122a4a02b73acae5217.png

Триангулирую, сохраняю в файл все работает,  частично обект строится

но возникают проблемы на углах, там дырки, иногда появляется такая проблемаimage.thumb.png.544deceee2fdc09f77f616e57faf6d92.png
Не могу понять есть ли более простой спосом постройки таких объектов?
может я ну учитываю какие либо правила при  триангулятции
 

    mesh->addIndex(0, 0);
    mesh->addIndex(1, 0);
    mesh->addIndex(2, 0);

    mesh->addIndex(3, 0);
    mesh->addIndex(2, 0);
    mesh->addIndex(1, 0);
в примере если я правельно понимаю это  2 элементарных сусочка(связи вершин), есть ли описание особенностей постраения такого рода объектов?
Можно ли как-то отслеживать ошибки GetLastError или что-то подобное?

Edited by nicolay.nicolay
Link to comment

Здравствуйте.
Вы можете добавлять вершины каждого треугольника как есть без индексов и потом вызвать Mesh::createIndices()
Возможно ошибка связана с тем что некоторые данные вершин ушли в inf или nan
К сожелению такого механизма нет, все ошибки, которые можно увидеть выводятся в консоль и в лог

Link to comment
×
×
  • Create New...