Сообщения на форуме пользователя Andrey (211 стр.)
Проблема с поворотом камеры при переходе через 90 градусов, камера переворачивается | 3 авг. 2005 | 20:27 | #6 |
---|
NE_Mashinist
у меня все это етьс уже... это не то...
у меня все это етьс уже... это не то...
Проблема с поворотом камеры при переходе через 90 градусов, камера переворачивается | 3 авг. 2005 | 20:15 | #4 |
---|
Nazik
>Или я не так понял вопрос?
ты все правильно понял, только у тебя камера жестко привязана к конретному Api т.е. к OpenGL, а у меня она работает и в OpenGL и в Direct3D использую матрицы и вектора посчитанные вручную при повороте...
>Или я не так понял вопрос?
ты все правильно понял, только у тебя камера жестко привязана к конретному Api т.е. к OpenGL, а у меня она работает и в OpenGL и в Direct3D использую матрицы и вектора посчитанные вручную при повороте...
Проблема с поворотом камеры при переходе через 90 градусов, камера переворачивается | 3 авг. 2005 | 20:09 | #2 |
---|
Семен
Я знаю, а с матрицей можно это же сделать?есть же выход :)
Я знаю, а с матрицей можно это же сделать?есть же выход :)
Проблема с поворотом камеры при переходе через 90 градусов, камера переворачивается | 3 авг. 2005 | 19:44 | #0 |
---|
Привет всем!!!
думаю проблема понятна.Хочу чтобы камера не переворачивалась.
Вот как я это попробовал сделать сохраняем изменяемые вектора потом их пересчитываем умножая на матрицу поворота.
потом проверяем угол между вектором направленяи камеры с плоскостью X0Z(т.е. с проекцией этого вектора на эту плоскость). Если угол больше 90 градусов, то перезаписываем сохраненные вектора значениями сохраненными до перемножения с матрицей поворота, иными словами не меняем эти вектора
Почему не корректо работает? к примеру, иногда камера не вращается застревая в каком-то месте, иногда она все равно переворачивается. Что я делаю не так?
Спасибо всем заранее.
С Уважением Андрей.
думаю проблема понятна.Хочу чтобы камера не переворачивалась.
Вот как я это попробовал сделать сохраняем изменяемые вектора потом их пересчитываем умножая на матрицу поворота.
потом проверяем угол между вектором направленяи камеры с плоскостью X0Z(т.е. с проекцией этого вектора на эту плоскость). Если угол больше 90 градусов, то перезаписываем сохраненные вектора значениями сохраненными до перемножения с матрицей поворота, иными словами не меняем эти вектора
if (point.y != 0) { //если поворот был //проекция вектора направления на плоскость X0Z Vector3D projX0Z(Direction.x, 0, Direction.y); //сохранить вектор напрвления Vector3D dir = Direction; //сохранить вектор верха Vector3D up = Up; //повернуть Mat.RotateMatrix(Right, -point.y); //повернуть вектор напрвления Direction = Direction * Mat; //повернуть вектор верха Up = Up * Mat; //выичислить угол между векторами float a = AngleBetweenVectors(Direction, projX0Z); //проверить угол на 90 градусов if (a >= Pi / 2) { Direction = dir; Up = up; } }
Спасибо всем заранее.
С Уважением Андрей.
Странная проблема со смешанными массивами(glInterleavedArrays) в OpenGL | 3 авг. 2005 | 18:59 | #11 |
---|
L00bis
Еще раз говорю что этот код работает на более сложной структуре:
дак вот тут stride == 0
почему не работает на простых линиях? ну скажи ответ :)
Еще раз говорю что этот код работает на более сложной структуре:
//вершина для OpenGL struct OpenGLVertex { //Текстурные координаты Vector2D tvert; //Нормаль Vector3D normal; //координаты вершины Vector3D vert; }; //Грань Для OpenGL API struct OpenGLVertice { OpenGLVertex openGLVertex[3]; }; //Поверхность class Surface { ... //полигоны void *vertices; //число полигонов unsigned int numVertices; }; ... glInterleavedArrays(GL_T2F_N3F_V3F, 0, surface.numVertices); glDrawArrays(GL_TRIANGLES, 0, 3 * surface.vertices); ...
почему не работает на простых линиях? ну скажи ответ :)
Прошу Оценить Octree-дерево + столкновения | 2 авг. 2005 | 18:48 | #18 |
---|
Zlodei
>ну тоесть если все точки полигона лежат в разных узлах а он пересекает еще пару то он запишется во все узлы?...
я просто оппутно имею временный контейнер (массив) индексов полигонов уже попавших в какой-то узел. при обработке очередного полигона я сморю а не занесен ли он уже в другой узел если нет то заношу и попутно заношу его индекс в контейнер описанный выше. Таким образом ликвидируется дублирование полигонов.
>и еще вопрос..ты хранишь саму геометрию ?в узлах?или в узлах только индексы?...
когда доработаю то будет так: я гружу геометрию во временный мешь, потом копирую весь контейнер матрериалов из этого меша в узел ввиде static переменной.Для каждого узла я храню контейнер(массив) так называемых поверхностей. Поверхностть - это структура данных хранящая в себе вершинный буфер + массив полигонов пренадлежащих конкретному материалу с индексом этого материала. Вершинный буфер нужен для рендера, а массив полигонов можно тоже для этого пимернить когда видео карта не поддерживает расширения ARB_vertex_buffer_Object, это в частности относиться для OpenGL-рендера, т.к. для Direct3D всегда рендер использует вершинный буфер.А так массив полигонов использую для проверки столкновений внутри узла с камерой.
>ну тоесть если все точки полигона лежат в разных узлах а он пересекает еще пару то он запишется во все узлы?...
я просто оппутно имею временный контейнер (массив) индексов полигонов уже попавших в какой-то узел. при обработке очередного полигона я сморю а не занесен ли он уже в другой узел если нет то заношу и попутно заношу его индекс в контейнер описанный выше. Таким образом ликвидируется дублирование полигонов.
>и еще вопрос..ты хранишь саму геометрию ?в узлах?или в узлах только индексы?...
когда доработаю то будет так: я гружу геометрию во временный мешь, потом копирую весь контейнер матрериалов из этого меша в узел ввиде static переменной.Для каждого узла я храню контейнер(массив) так называемых поверхностей. Поверхностть - это структура данных хранящая в себе вершинный буфер + массив полигонов пренадлежащих конкретному материалу с индексом этого материала. Вершинный буфер нужен для рендера, а массив полигонов можно тоже для этого пимернить когда видео карта не поддерживает расширения ARB_vertex_buffer_Object, это в частности относиться для OpenGL-рендера, т.к. для Direct3D всегда рендер использует вершинный буфер.А так массив полигонов использую для проверки столкновений внутри узла с камерой.
Странная проблема со смешанными массивами(glInterleavedArrays) в OpenGL | 2 авг. 2005 | 18:34 | #9 |
---|
All
должен же быть выход?
должен же быть выход?
Сопаставление массивов констант для альфа-блендинга в OpenGL и Direct3D | 2 авг. 2005 | 18:31 | #8 |
---|
All
нет больше вариантов?
нет больше вариантов?
Прошу Оценить Octree-дерево + столкновения | 2 авг. 2005 | 18:19 | #16 |
---|
Keysall
>и + немогу понять каким образом можно уменьшить высоту полёта ,никакие клавиши >кроме стрелочек результата не дали,
дак "F" и "f" прекрасно работают! может клавиатура не была переключена? берешь нажимаешь их потом опскаешь камеру и запрещаешь полет опять нажимая эти клавиши. у всех работает.
>а по default можно столкнуться только с башней :)
как опустишься можно сталкиваться не только с ней.
L1f
>Даа, камера ужастная...
это же демка камеру еще не доработал...
1. fps показываются только в fullscreen, в окне его не видно
да забей на оконный режим...
>2. Почему если убрать отрисовку узлов октри, убирается и коллижн?
ты видать нажал рендер напрямую вот и отрубились проверки на столкновения.
>3. При колизии камеру трясет - либо слишком далеко отодвигаешь, либо еще что-то.
я пока делал тривиально если камера столкнулаь просто ставим ее на предыдущую позицию.
>и + немогу понять каким образом можно уменьшить высоту полёта ,никакие клавиши >кроме стрелочек результата не дали,
дак "F" и "f" прекрасно работают! может клавиатура не была переключена? берешь нажимаешь их потом опскаешь камеру и запрещаешь полет опять нажимая эти клавиши. у всех работает.
>а по default можно столкнуться только с башней :)
как опустишься можно сталкиваться не только с ней.
L1f
>Даа, камера ужастная...
это же демка камеру еще не доработал...
1. fps показываются только в fullscreen, в окне его не видно
да забей на оконный режим...
>2. Почему если убрать отрисовку узлов октри, убирается и коллижн?
ты видать нажал рендер напрямую вот и отрубились проверки на столкновения.
>3. При колизии камеру трясет - либо слишком далеко отодвигаешь, либо еще что-то.
я пока делал тривиально если камера столкнулаь просто ставим ее на предыдущую позицию.
Правка: 2 авг. 2005 18:20
Прошу Оценить Octree-дерево + столкновения | 1 авг. 2005 | 19:27 | #13 |
---|
Keysall
>столкновения к сожалению не работают...
как не работают??? можно поподробнее?
ты первый это сказал никто такое не говорил :(
может ты имеешь ввиду они не совсем корректно работают?
>столкновения к сожалению не работают...
как не работают??? можно поподробнее?
ты первый это сказал никто такое не говорил :(
может ты имеешь ввиду они не совсем корректно работают?
Прошу Оценить Octree-дерево + столкновения | 1 авг. 2005 | 19:15 | #11 |
---|
Keysall
Привет!!!!
>1. несколько странно ведёт себя свет.... если директионал , думаю неправильно считаешь направление...
All, Keysall
давай-те пока забьем на графику и освещение? и т.д. :)) я хочу чтобы все было живое, т.е. работали столкновения потом уже текстуры освещение тени шейдеры и т.д...
>2. почему кол-во полигонов всегда одинаково? смотрим мы на несколько узлов или на один или на все , одинаково?????
это просто отображает число полигонов всегьо уровня... я попытался сделать отображение в данный момент потом забил...
>3. по какой причине переделывал с AABB tree на октрее??? вроде тогда ты собирался грамотно доделать октрее???
Ты меня с кем-то спутал я делаю и делал только Octree :)
>4. на управление пока забей, это же демо octree а не управления :))
я так и делаю чуть чуть исправил для удобство
Привет!!!!
>1. несколько странно ведёт себя свет.... если директионал , думаю неправильно считаешь направление...
All, Keysall
давай-те пока забьем на графику и освещение? и т.д. :)) я хочу чтобы все было живое, т.е. работали столкновения потом уже текстуры освещение тени шейдеры и т.д...
>2. почему кол-во полигонов всегда одинаково? смотрим мы на несколько узлов или на один или на все , одинаково?????
это просто отображает число полигонов всегьо уровня... я попытался сделать отображение в данный момент потом забил...
>3. по какой причине переделывал с AABB tree на октрее??? вроде тогда ты собирался грамотно доделать октрее???
Ты меня с кем-то спутал я делаю и делал только Octree :)
>4. на управление пока забей, это же демо octree а не управления :))
я так и делаю чуть чуть исправил для удобство
Прошу Оценить Octree-дерево + столкновения | 1 авг. 2005 | 18:57 | #8 |
---|
all
Исправелены глупые ошибки по обработке столкновений.
Остались как мне кажется частные случаи которые я не учел.
У меня несолько вопрос как слделать скольжение по стене?
я предстьавляю это так:
если есть столкновение то мы вычисляем вектор скольжения оставялю нетронутой ту координату ыектора положения камеры по которой есть ограничения из-за присутсвия полигона. Я обяснил как смог надеюсь понятно? Я правильно опнимаю? просто сегодня думожет попробую.
Исправелены глупые ошибки по обработке столкновений.
Остались как мне кажется частные случаи которые я не учел.
У меня несолько вопрос как слделать скольжение по стене?
я предстьавляю это так:
если есть столкновение то мы вычисляем вектор скольжения оставялю нетронутой ту координату ыектора положения камеры по которой есть ограничения из-за присутсвия полигона. Я обяснил как смог надеюсь понятно? Я правильно опнимаю? просто сегодня думожет попробую.
gvm
>Если с объемом архива что-нибудь сделаеш, то заценю :)
>(поменьше текстур там сделай чтоли...)
>ЗЫ не в обиду - просто трафик не хочется превышать...
Давай на почту скину? я сделал чуть больше 1 метра...
Сопаставление массивов констант для альфа-блендинга в OpenGL и Direct3D | 1 авг. 2005 | 18:38 | #7 |
---|
All
И еще что нибудь?
И еще что нибудь?
Странная проблема со смешанными массивами(glInterleavedArrays) в OpenGL | 1 авг. 2005 | 18:36 | #8 |
---|
cppguru
Привет! ты кстати мне уже помогал :)
и сколько его ставить в данном случае? по моему 0 т.к. они плотно упакованы в массиве.
Привет! ты кстати мне уже помогал :)
и сколько его ставить в данном случае? по моему 0 т.к. они плотно упакованы в массиве.
Странная проблема со смешанными массивами(glInterleavedArrays) в OpenGL | 29 июля 2005 | 19:02 | #5 |
---|
All
больше никто не может ничего подсказать?
больше никто не может ничего подсказать?