всем привет. у меня вопрос по frustum culling. получил я 6 плоскостей раструба камеры, затем пытаюсь проверить, лежит ли допустим моя определенная точка в этом объеме раструба, или нет. и почему-то всегда выдает, что не принадлежит, хотя точка стопудово по идее видна и лежит в этом раструбе. и как бы я не крутил камеру и не перемещался, все равно точка почему-то остается 'типа' невидима (и куча др точек полигонов). что не так может быть, какие подводные камни? перечитал неск. статей, теорию понял, код сто раз перепроверил...а выдает неправильные результаты! ;'-( сначала я обрабатываю повороты камеры, поворачиваюсь при помощи glRotated и glTranslatef, а затем получаю ее 6 плоскостей и проверяю точку на принадлежность ее объему. где может быть ошибка?
хмм, покопался еще и выяснил, что почему-то всегда получается, что тестуруемая(ые) точки лежат в плоскости, но никак не перед ней.
varnie Шесть проскостей сразу слишком много, добавляй по одной и меняй знак в условии так, чтобы ничего лишного не исчезало. А ближайшую из пары плоскостей, параллельных к экрану, можно безболезненно удалить, так как отсекаемый ею объём, который не может быть отсечён другими плоскостями обычно очень мал. Если же местность открытая, а камера всегда на пару десятков градусов(или более) наклонена вниз, то можно выкинуть и дальнюю плоскость.
Dart_Bobr хм, вообще-то я их не задавал, но когда получал уравнения плоскостей раструба камеры, то "нормализировал" эти плоскости. вот. плин, сейчас вот все боле менее ОК (спасибо black_mirrorу за совет уменьшить проверки по пресечению с плоскостями). сейчас в проверке я откинул тест на пересечение с передней и задней плоскостью; осталась проблемка на поворотах вокруг оси. т.е. когда я поворачиваюсь, стоя на одном месте (или чуть сдвигаясь постепенно), то в конце концов наступает такой момент, что из ландшафта вообще ничего не видно. неужели опять какую-то плоскость из проверки выкидывать? :-/
varnie www.developer.nvidia.com Надеюсь, ты не такой ленивый как я, потому что я бы попросил прямую ссылку Там на сайте много чего интересного есть, главное чтобы канал широкий был.
varnie Эта задача решается чуть ли не в два матричных умножения. Я точно не помню. Погугли на тему subj matrix.
здравжелаю! -- c фрустумом разобрался таки... небольшой вопрос - допустим, я вывожу ландшафт используя метод quadTrees, посему появляются неприятные дыры ака 'артефакты' на стыке областей, выведенных с разными детализациями. естественно, хочется эту неприятность как-нибудь пофиксить. сейчас пока что решил просто увеличить радиус вывода ландшафта с наибольшей детализацией, тем самым отодвинув злополучный (читать 'некрасивый') контур, на котором и проявляются эти артефакты. по идее нужно бы как-то по-умному поднимать/опускать вершины, находящиеся рядом с контуром артефактов, вот только как бы это сделать? не хочется просто в цикле где выводятся треугольники кажд. раз делать проверку на нахождение рядом с контуром, т.к. она потребуется то оч. ограниченное число раз. --- теперь вопрос про камеру и quadTrees. все пашет, но, я бы сказал, местами грубо - иногда механизЪм отбрасывает области, которые все ж видны. и я уж молчу, про то, чтО будет если изменить угол вертикального наклона. та же ботва. можно конечно, ИМХА, поиграться с коэффициентами-множителями, которые использую для увеличения протяженности ландшафта, но они и так уже 1024 :-0. --- внешние очертания рельефа на дальних расстояниях почему-то какие-то беспонтовые, и я б даже сказал - пиксельные. как бороцца? --- вопрос о текстуре: допустим, у меня размерность всего ландафта (т.е. его габаритные размеры) 1024x512 X 1024x512, где 512 - реальная размерность реальной карты высот, а 1024 - множитель для протяженности. для текстуризации используется карта высот 512 X 512. ясен пень, что при таких соотношениях текстура дичайшим образом растягивается, чтО отражается на качестве при выводе ее на ландшафт. как тут быть? --- почему-то никак не могу подрубить всякие там ARB расширения для OGL'a. может, какие хидеры скачать надобно? спасибо за уделенное внимание. ps: по почкам не пинать
Вруби туман. А вобще, в таких случаях надо скрины давать. Используй для карты высот тайлинг и мультитекстурирование. www.gamedev.ru - статьи - OpenGL - че-то про расширения для чайников
не сочтите за понт, но я так и не нашел - где бы этот NVIDIA SDK слить.. а тот что наа нвидиа.ком весит за 60 мегов. или это он и есть и никуда от него не денешься - придется качать? мне всего-лишь нужны инклюдники для расширения ОГЛа. может, у кого-нить они уже есть?
varnie ..ля, ну как маленький, честное слово. Google: glext.h 20 секунд поиска. http://graphics.ethz.ch/pointshop3d/sourcedoc/html/glext_8h-source.htm l
ээ, glext.h у меня есть, но сами ф-ции расширений не видны даже с подрубленным этим хидером. вот я про что говорю.. в чем дело может быть?