Сообщения на форуме пользователя Andrey (247 стр.)
Отсечение по пирамиде видимости | 6 окт. 2004 | 9:57 | #56 |
---|
frol
>Незнаю как у тебя реализован класс Camera. У меня в нем есть позиция и направление куда она смотрит.
у меня камра задается с помощью векторов так и у тебя
Position - позиция
Right,Up,Direction - задание направления
так я поробую твой вариант
>Незнаю как у тебя реализован класс Camera. У меня в нем есть позиция и направление куда она смотрит.
у меня камра задается с помощью векторов так и у тебя
Position - позиция
Right,Up,Direction - задание направления
так я поробую твой вариант
Отсечение по пирамиде видимости | 6 окт. 2004 | 8:51 | #52 |
---|
frol
На третьей странице пост 33 разве не подходит?
Я попробую твой вариант.
>А как на счет выворачивания нормалей плоскостей.
Объясни пожалуйста что это такое.
На третьей странице пост 33 разве не подходит?
Я попробую твой вариант.
>А как на счет выворачивания нормалей плоскостей.
Объясни пожалуйста что это такое.
Отсечение по пирамиде видимости | 5 окт. 2004 | 14:29 | #50 |
---|
frol
>Чтото я не нашел на странице 2 этого способа. Я так делаю и у меня все работает.
>Чтото я не нашел на странице 2 этого способа. Я так делаю и у меня все работает.
Извини я ошибся это на первой было вот
//Проверка нахождения точки в пирамиде видимости inline bool Frustum::PointInFrustum( float x, float y, float z) { int p; // for (p = 0; p < 6; p++) // if (PlaneDistance(x, y, z, frustum[p][0], frustum[p][1], frustum[p][2],frustum[p][3]) <= 0) if (PlaneDistance(x , y, z, frustum[0][0], frustum[0][1], frustum[0][2]) <= 0 || PlaneDistance(x , y, z, frustum[1][0], frustum[1][1], frustum[1][2],frustum[p][3]) <= 0 || PlaneDistance(x , y, z, frustum[2][0], frustum[2][1], frustum[2][2],frustum[p][3]) <= 0 || PlaneDistance(x , y, z, frustum[3][0], frustum[3][1], frustum[3][2],frustum[p][3]) <= 0 || PlaneDistance(x , y, z, frustum[4][0], frustum[4][1], frustum[4][2],frustum[p][3]) <= 0 || PlaneDistance(x , y, z, frustum[5][0], frustum[5][1], frustum[5][2],frustum[p][3]) <= 0) return false; return true; } //Расстояние от точки (x1;y1;z1) до плоскости с нормалью {x2,y2,z2} d - расстояние по нормали до начала координат inline float Frustum::PlaneDistance(float x1, float y1, float z1, float x2, float y2, float z2, float d) { return (x1 * x2) + (y1 * y2) + (z1 * z2) + d; } //Теперь я пробую определить нахождения треугольника в пирамиде видимости: //Проверка нахождения всех 3 вершин в пирамиде видимости if (PointInFrustum(_x1, _y1, _z1) && PointInFrustum(_x2, _y2, _z2) && PointInFrustum(_x3, _y3, _z3)) { //...Отрисовка треугольника } |
Помогите оценить проект. | 5 окт. 2004 | 9:26 | #24 |
---|
frol
Не открываются скриншоты :(
Я так понял использовали DirectX?
Не открываются скриншоты :(
Я так понял использовали DirectX?
Раздел ОБУЧЕНИЕ проекта Almighty. | 5 окт. 2004 | 9:21 | #238 |
---|
kronos_vano
Ну ладно не обижайся я все понял.Буду ждать :)
Ну ладно не обижайся я все понял.Буду ждать :)
Обработка нажатия клавиши для консоли. | 5 окт. 2004 | 9:04 | #10 |
---|
>С WM_KEYDOWN не отловишь некоторые вещи, например SHIFT+что-то, по крайней мере у меня не получалось, а решилось >все просто : WM_CHAR
Да ты прав у меня тоже не получается.Даже пробел.И все символы верхнего регистра.Даже когда Caps Lock нажат.Надо WM_CHAR попробовать.
Да ты прав у меня тоже не получается.Даже пробел.И все символы верхнего регистра.Даже когда Caps Lock нажат.Надо WM_CHAR попробовать.
Отсечение по пирамиде видимости | 5 окт. 2004 | 8:47 | #48 |
---|
frol
Так я уже пробовал посмотри на странице 2 сообщение.Не работает :(
>Так вот, по иерархии этих объемов можно также иерархично отслеживать попадание во фрустум
Так я уже пробовал посмотри на странице 2 сообщение.Не работает :(
>Так вот, по иерархии этих объемов можно также иерархично отслеживать попадание во фрустум
Я так понял тут пахнет разбиением пространства на восьмиричнык деревья или AABB деревья?
Раздел ОБУЧЕНИЕ проекта Almighty. | 5 окт. 2004 | 8:34 | #235 |
---|
bounz
>под чем подписываетесь-то?
Значит быть в курсе развития данной темы форума (это можно и не писать) для этого поставь галку "Получить письма на E-Mail" Это просто традиция стала писать "(подписываюсь)" :)
kronos_vano
Ты вообще куда делся ?????????? хоть бы в аську написал что-нибудь.Как там твой движок? У меня уже есть сдвиги.Столкновения работают ну заходи в аську поговорим.
>под чем подписываетесь-то?
Значит быть в курсе развития данной темы форума (это можно и не писать) для этого поставь галку "Получить письма на E-Mail" Это просто традиция стала писать "(подписываюсь)" :)
kronos_vano
Ты вообще куда делся ?????????? хоть бы в аську написал что-нибудь.Как там твой движок? У меня уже есть сдвиги.Столкновения работают ну заходи в аську поговорим.
Правка: 5 окт. 2004 8:34
Раздел ОБУЧЕНИЕ проекта Almighty. | 4 окт. 2004 | 13:57 | #230 |
---|
(подписываюсь)
Сообщения windows опаздывают | 4 окт. 2004 | 13:46 | #4 |
---|
Signess
У меня также все было.Я думаю такой способ не подходит если уже не тривиальный проект
Я сделал очень странно но работает.
в фоновом цикле создаю все время событие от клавиатуры и добавляю его в список.Там же его и обрабатываю.В процессе обработки,смотрю буфер клавиатуры,в который звписывается код клавиши по событию WM_KEYDOWN.Если нужная клавиша нажата то делаем что надо.После обработки это событие удаляется из памяти.Этим способом я продолжаю использовать стандартную обработку но у меня не тормозит.Попробуй так.
Правка: 4 окт. 2004 13:46
Обработка нажатия клавиши для консоли. | 4 окт. 2004 | 13:38 | #7 |
---|
jpeter
case WM_KEYDOWN: //Обработка клавишь консолью console -> ProcessingKey(wParam); break;
у меня этот код работает.
Отсечение по пирамиде видимости | 4 окт. 2004 | 12:59 | #44 |
---|
Zloy
>И всё-таки, поясни, зачем тебе треугольники то проверять ?
>Проверяй объекты покрупней по bbox'ам и bsphere'ам.
Ну понимаешь это мой первый движок, поэтому я над этим только начал думать.И пробую все что приходит в голову.
Если что-то не получается пробую другое.
а про AABB и BoundingSphere я прочитал вот тут http://gdlinks.hut.ru/cdfaq/ но пока ни чего не получилось.Все работает на простом примере.пробовал сделать простое столкновение полной сцены например с камерой.
Сцену задал объектом AABB а камеру сферой но получается что камера далеко от сцены а столкновение уже есть.
>И всё-таки, поясни, зачем тебе треугольники то проверять ?
>Проверяй объекты покрупней по bbox'ам и bsphere'ам.
Ну понимаешь это мой первый движок, поэтому я над этим только начал думать.И пробую все что приходит в голову.
Если что-то не получается пробую другое.
а про AABB и BoundingSphere я прочитал вот тут http://gdlinks.hut.ru/cdfaq/ но пока ни чего не получилось.Все работает на простом примере.пробовал сделать простое столкновение полной сцены например с камерой.
Сцену задал объектом AABB а камеру сферой но получается что камера далеко от сцены а столкновение уже есть.
Отсечение по пирамиде видимости | 4 окт. 2004 | 10:15 | #42 |
---|
Mega
спасибо за совет попробую
спасибо за совет попробую
Отсечение по пирамиде видимости | 4 окт. 2004 | 8:37 | #40 |
---|
Mega
>как насчет такого: преобразуем точку в систему координат фрустума, а в этой системе просто проверяем на нахождение в >единичном кубе.
Это не медленно будет?
А как это сделать?
>как насчет такого: преобразуем точку в систему координат фрустума, а в этой системе просто проверяем на нахождение в >единичном кубе.
Это не медленно будет?
А как это сделать?
Отсечение по пирамиде видимости | 1 окт. 2004 | 18:40 | #38 |
---|
Zloy
Давай сюда мыло в инфе не написано
Давай сюда мыло в инфе не написано