LINUX.ORG.RU

Как хранить последовательность координат в коде либо в файле?

 ,


0

1
struct Image
{
	float**TextureCoordinats;//Координаты текстур
	float**VertexCoordinats;//Координаты вершин
	unsigned int*IndexTexture;//Указатель на текстуру
	std::string *Name;//Её имя
	int *number;//Её номер
};
struct Coor
{
	std::vector<float> a;//массив x-координат
	float b;//y-координата
	float width;//ширина
	float height;//высота
};

То есть пока что есть, что нужно:

1.Нужна структура данных в которой можно хранить вершины(координаты) и последовательность их соединений(

GL_POINTS	Каждый вызов glVertex задает отдельную точку.
GL_LINES	Каждая пара вершин задает отрезок.
GL_LINE_STRIP	Рисуется ломанная.
GL_LINE_LOOP	Рисуется ломанная, причем ее последняя точка соединяется с первой.
GL_TRIANGLES	Каждые три вызова glVertex задают треугольник.
GL_TRIANGLE_STRIP	Рисуются треугольники с общей стороной.
GL_TRIANGLE_FAN	Тоже самое, но по другому правилу соединяются вершины, вряд ли понадобится.
GL_QUADS	Каждые четыре вызова glVertex задают четырехугольник.
GL_QUAD_STRIP	Четырехугольники с общей стороной.
GL_POLYGON).
2.Также было бы желательно хранить цвета, текстуры.

3.Все это хранить допустим в файле(ах) и иметь какой-то общий алгоритм загрузки их всех в программу без костылей под каждый объект и раздувания кода.

Подытожим итоги, то есть нужно сделать так чтобы хранить сцену и не одну, объекты и их свойства. Какой вид структур данных для этого нужно: графы, деревья, списки всякие,вектора, листы в этом и весь вопрос, может кто знает что используется в коммерческих проектах и т.д.

попробуй assimp. Я в целом задавался тем же вопросом, получается что писать что-то такое с нуля + свой экспортер для блендера будет слишком сложно (особенно учитывая что требования к хранимым данным растут со временем, и сегодня мне нужны просто вершины + нормали + uv, а завтра у меня будет целая сцена с иерархией объектов, камерами и источниками света). Единственное что не понравилось в assimp - текстуры ложатся в память как есть, в png/jpg. Может я какой флаг забыл при инициализации, не знаю.

dossalab ()
Ответ на: комментарий от tiinn

Я тута… По поводу формата графов, есть, например, gexf - это xml с определёнными тегами. И софта немало, которые его поддерживают. Тот же qvge :)

ii-system ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.