Сообщения на форуме пользователя Andrey (220 стр.)
Проблема со Смешанным массивом вершин glInterleavedArrays (OpenGL) | 8 апр. 2005 | 12:17 | #13 |
---|
Neill
я вот так передавал ничего не получилось :((((
struct Vertice {
//индекс материала
char MatId;
//вершины грани
Vertex vertices[3];
};
>тогда текстурные координаты "залезут" на номарль и позицию одной вершины... В общем получиться "такая каша"
а так разве не залезут?
я вот так передавал ничего не получилось :((((
struct Vertice {
//индекс материала
char MatId;
//вершины грани
Vertex vertices[3];
};
>тогда текстурные координаты "залезут" на номарль и позицию одной вершины... В общем получиться "такая каша"
а так разве не залезут?
Проблема со Смешанным массивом вершин glInterleavedArrays (OpenGL) | 8 апр. 2005 | 11:53 | #10 |
---|
Neill
тогда будет дублироваться материал,
я так понимаю судя по твоим словам:
вот так наверное правильней будет?
тогда будет дублироваться материал,
я так понимаю судя по твоим словам:
class Vertex { public: //Текстурные координаты Vector2D tvert; //Нормаль Vector3D normal; //координаты вершины Vector3D vert; ...}; struct Vertice { //индекс материала char MatId; //вершины грани Vertex vertices[3]; };
Ускоряет ли работу включение элементов класса в private | 8 апр. 2005 | 11:34 | #4 |
---|
dutchak
а если методы доступа к членам сделать с директивой inline, для небольшого кода, по идее долно ускорить...
а если методы доступа к членам сделать с директивой inline, для небольшого кода, по идее долно ускорить...
Проблема со Смешанным массивом вершин glInterleavedArrays (OpenGL) | 8 апр. 2005 | 11:31 | #8 |
---|
Neill
>А попробуй сделать шаг не 1, а sizeof(Vertice)-1. Хотя это просто "бить в лоб"
не помогает :(
>А надо на текстурыне координаты два числа
у меня так и есть:
Vector2D - это 2 float'а
или я не правильно понял? в Гране (в полигоне) для каждой вершины 3 пары текстурных координат ну вот запись :
Что разве нет?
>А попробуй сделать шаг не 1, а sizeof(Vertice)-1. Хотя это просто "бить в лоб"
не помогает :(
>А надо на текстурыне координаты два числа
у меня так и есть:
class Vertice { public: ... //Текстурные координаты Vector2D tvert[3]; ... };
или я не правильно понял? в Гране (в полигоне) для каждой вершины 3 пары текстурных координат ну вот запись :
//Текстурные координаты Vector2D tvert[3];
Глючит массив(или строки(или я)) | 8 апр. 2005 | 10:45 | #5 |
---|
Peter Paul
У меня так правильно работает, это правильно работающий код, если будет 0 то будет пустая строка:), озможно у него совсем проблема не в этом...
>наверное, в начале лучше писать char z = 'a'....
тогда если встретиться строка '\0', т.е пустая, то будет строка "a..", это будет неправильно...
У меня так правильно работает, это правильно работающий код, если будет 0 то будет пустая строка:), озможно у него совсем проблема не в этом...
>наверное, в начале лучше писать char z = 'a'....
тогда если встретиться строка '\0', т.е пустая, то будет строка "a..", это будет неправильно...
Проблема со Смешанным массивом вершин glInterleavedArrays (OpenGL) | 8 апр. 2005 | 10:36 | #5 |
---|
Neill
Я это уже пробовал...
All
кстати sizeof(Vertice) == 100 по идее должно быть 97, может надо выравнивание поставить по 1 байту?
Я это уже пробовал...
All
кстати sizeof(Vertice) == 100 по идее должно быть 97, может надо выравнивание поставить по 1 байту?
#pragma pack(push,1)
...
#pragma pack(pop)
но я так пробовал не помогает:(
Проблема со Смешанным массивом вершин glInterleavedArrays (OpenGL) | 8 апр. 2005 | 9:53 | #3 |
---|
Dr.Death
Спасибо но не помогает...:(
Спасибо но не помогает...:(
Глючит массив(или строки(или я)) | 8 апр. 2005 | 8:36 | #3 |
---|
Magvaj
Привет как успехи?:)
попробуй вот так строку прочитать:
Привет как успехи?:)
попробуй вот так строку прочитать:
Проблема со Смешанным массивом вершин glInterleavedArrays (OpenGL) | 8 апр. 2005 | 8:22 | #1 |
---|
Никкто немоет больше ответить?
Ведь почти сутки прошли :(
Ведь почти сутки прошли :(
Проблема со Смешанным массивом вершин glInterleavedArrays (OpenGL) | 7 апр. 2005 | 16:40 | #0 |
---|
Проивет всем!!!
вот так представляю грань:
почему так не работает,что делаю не так?
если все рисовать glBegin/glEnd все ок
или работоспособный такой код:
вот так представляю грань:
//Класс мешь class Mesh { public: .... //Грань class Vertice { public: //индекс материала char MatId; //Текстурные координаты Vector2D tvert[3]; //Нормали Vector3D normal[3]; //Вершины Vector3D vert[3]; ...}; ... };
вот так отрисовываю:
//число полигонов int Number = mesh -> GetNumFaces(); //указатель на грань Mesh::Vertice *vertice = NULL; //проход по граням for (i = 0; i < Number; i ++) { //получить грань vertice = &mesh -> GetVertice(i); .... //выбор массива glInterleavedArrays(GL_T2F_N3F_V3F, 1, vertice);//взять шаг 1 т.к. есть первый байт //отображение glDrawArrays(GL_TRIANGLES, 0, 3 ); |
если все рисовать glBegin/glEnd все ок
или работоспособный такой код:
... //простая структура вершины struct Vert { Vector2D tu;//текстурная координата Vector3D n;//нормаль Vector3D v;//координаты вершины }; Vert vertex[3]; vertex[0].n = vertice->normal[0]; vertex[0].tu = vertice->tvert[0]; vertex[0].v = vertice->vert[0]; vertex[1].n = vertice->normal[1]; vertex[1].tu = vertice->tvert[1]; vertex[1].v = vertice->vert[1]; vertex[2].n = vertice->normal[2]; vertex[2].tu = vertice->tvert[2]; vertex[2].v = vertice->vert[2]; //выбор массива glInterleavedArrays(GL_T2F_N3F_V3F, 0, vertex); //отображение glDrawArrays(GL_TRIANGLES, 0, 3 ); ...
Спасибо всем заранее, с Уважением Андрей
Правка: 7 апр. 2005 17:56
функция gluBuild2DMipmaps | 7 апр. 2005 | 13:37 | #1 |
---|
Luka
pData должен быть указатель на unsigned char в твоем случае, т.к. стоит GL_UNSIGNED_BYTE попробуй преобразование типов сделать,
насколько я помню в глюканутом Object Passal'е pointer безтиповый указатель...
pData должен быть указатель на unsigned char в твоем случае, т.к. стоит GL_UNSIGNED_BYTE попробуй преобразование типов сделать,
насколько я помню в глюканутом Object Passal'е pointer безтиповый указатель...
Столкнивение с объектами? | 6 апр. 2005 | 15:35 | #1 |
---|
StudentOfShag
Я думаю надо делать так:
1)для начала ограничь камеру ограничивающим телом определенного размера BoundingBox(AABB) или BoundingSphere
2)разбей свой трехмерный мир средставами Octree, BSP и т.д.
3)проверфй столкновения камеры с полигональной моделью т.е. с твоим трехмерным миром побитым как в пункте 2
Я думаю надо делать так:
1)для начала ограничь камеру ограничивающим телом определенного размера BoundingBox(AABB) или BoundingSphere
2)разбей свой трехмерный мир средставами Octree, BSP и т.д.
3)проверфй столкновения камеры с полигональной моделью т.е. с твоим трехмерным миром побитым как в пункте 2
такой подход будет быстрый т.к. столновения будут проверяться с Ограничивающими объемами,которые попадают в камеру
Загрузка Уровня. | 5 апр. 2005 | 9:37 | #13 |
---|
TheReloader
>И чтоб в определенном месте уровня движок вставлял динамический обьект, типа, кубик... :D
ну тут надо продумать свой форма файла, в котором ты будешь это учитывать если это статически, если динамически тут надо продумать уже саму сцену т.е. создать класс Scene и там уже будешь думать загрузк уровня + твои объекты...
тут вариантеов много, как с делаешь отимально, мобильно, удобно, быстро по скорости отрисовки и загрузки, легко расширяемо и универсаольно так и будет правильно.
>И чтоб в определенном месте уровня движок вставлял динамический обьект, типа, кубик... :D
ну тут надо продумать свой форма файла, в котором ты будешь это учитывать если это статически, если динамически тут надо продумать уже саму сцену т.е. создать класс Scene и там уже будешь думать загрузк уровня + твои объекты...
тут вариантеов много, как с делаешь отимально, мобильно, удобно, быстро по скорости отрисовки и загрузки, легко расширяемо и универсаольно так и будет правильно.
Не могу открыть текстовый файл!! | 4 апр. 2005 | 11:09 | #16 |
---|
CyberZX
>fstream для работы с файлами использует стандартные сишные функции. то есть fopen/fread/fwrite/fclose
да еще + проверка типов(во избежании падения программы) и удобство...
>fstream для работы с файлами использует стандартные сишные функции. то есть fopen/fread/fwrite/fclose
да еще + проверка типов(во избежании падения программы) и удобство...
Загрузка Уровня. | 4 апр. 2005 | 11:07 | #10 |
---|
TheReloader
Сначала подумай что ты хочешь от уровня?
уровень уровню рознь...
уровень может быть простым: просто загруженный мешь из файла различных форматов(*.3ds,*.X,*.ase,..., свой формат).
+ текстуры материалы.Все объекты статические...
уровень может быть сложным: это первый вариант + дополнительные передвижные объекты из мешей, предстваленные таким-же спосоом как в первом варианте.Эти объекты могут быть подвижными, обладать AI т.е. к уровню возможна прикрутка скриптов и логики.
Тебе скорей всего придеться для начала попробовать загрузить уровень ввиде меша из стандартного формата например *.3ds , попробовать провести оптимизацию вывода полигонов хотя бы простую(отбрасывание полигонов не попадающих в камеру), потом сложней можно попробовать BSP,Octree и т.д., также поробовать применить сортировку материалов и текстур и т.д.
Сначала подумай что ты хочешь от уровня?
уровень уровню рознь...
уровень может быть простым: просто загруженный мешь из файла различных форматов(*.3ds,*.X,*.ase,..., свой формат).
+ текстуры материалы.Все объекты статические...
уровень может быть сложным: это первый вариант + дополнительные передвижные объекты из мешей, предстваленные таким-же спосоом как в первом варианте.Эти объекты могут быть подвижными, обладать AI т.е. к уровню возможна прикрутка скриптов и логики.
Тебе скорей всего придеться для начала попробовать загрузить уровень ввиде меша из стандартного формата например *.3ds , попробовать провести оптимизацию вывода полигонов хотя бы простую(отбрасывание полигонов не попадающих в камеру), потом сложней можно попробовать BSP,Octree и т.д., также поробовать применить сортировку материалов и текстур и т.д.