|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.12.2012, 19:39 | #1 |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,603
|
Рельеф, поверхности и перемещение.
Недавно начал заниматься построением кривых поверхностей (рельефов). Скажу честно, что реализаций у меня нет. Сегодня собираюсь исправится, но пока напишу эту тему, чтобы посоветоваться и получить несколько ответов на свои вопросы. На данный момент я изучил алгоритм построения кривых Безье и соответственно поверхностей с помощью последних. Я понимаю, что это ничтожная часть знаний, но она дает огромный толчок к изучению "рельефостроения". Я хочу узнать как сейчас "модно" строить ландшафты? Интересует именно алгоритмы а не редакторы. Знаю, что существуют NURBS поверхности, но в чем их преимущество над кривыми Безье? Ответ я поищу самостоятельно, но все же хочется обсудить здесь. Меня интересует еще одна вещь, которая, на мой взгляд, наиболее интересна - это реализация столкновений с поверхностью. Т.е. как определить, что в точке X,Y, максимальная высота рельефа по оси Z равна a? Моя цель - это физический симулятор(от механики до теории относительности) и очень уместно использовать рельефы. Буду рад любым ответам, но больше всего меня волнуют столкновения с поверхностью и перемещение по ней.
Заранее спасибо. P.S. 28 урок Nehe читал. Но этого мало. У меня в запасе есть еще несколько вопросов. Часть из них я опубликую позже, иначе не успею сегодня попрактиковаться. |
25.12.2012, 19:55 | #2 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Как правило, для визуализации и для расчета столкновений используются разные поверхности.
|
25.12.2012, 20:25 | #3 | |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,603
|
Цитата:
|
|
26.12.2012, 15:48 | #4 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,691
|
|
26.12.2012, 19:48 | #5 | |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,603
|
Спасибо большое. Смотрел на карту высот и до этого и возник вопрос. Что для чего используется? Почему используют Безье? Что лучше и в каком случае?
Цитата:
Хочу окончательно разобраться с Безье. Не соображу как работает алгоритм "де Кастельжо". Чем он отличается от простой подстановки в P = (1−t)^3*P1 + 3*(1−t)^2*t*P2 +3(1−t)*t^2*P3 + t^3*P4? Если я не ошибаюсь, то есть еще инкрементальный рекуррентный метод, который использует всего шесть сложений, но не понимаю как он работает. Рассмотрим следующий рисунок с урока Nehe. Хотелось бы оптимизировать алгоритм построения, который крутится у меня в голове. Строим для начала в уме кривую через точки P3.0 P3.1 P3.2 P3.3, потом нам нужно построить в параллельной плоскости другую кривую, но как это правильно сделать. Не брать же отрезки P3.0 P2.0; P3.1 P2.1 и еще две прямые за безье первой степени и находить на них точку находящуюся на t% от начала, а потом строить кривую через полученные точки, соединяя ее с предыдущей. Не правда ли бред? 10000 знаков Pi быстрее посчитаются. Исходники Nehe работают каким-то чудом. Что это за чудо я не могу понять. Тупо копировать их для меня не спортивно. Если кто-то сталкивался, то подскажите ,пожалуйста, алгоритм на словах, хотя бы в сокращении. Уже и работы питерских студентов находил, не могу понять о чем они говорят. Попробую пойти на второй заход. После Безье начну рассматривать карты высот. Еще раз спасибо за помощь. Последний раз редактировалось _PROGRAMM_; 26.12.2012 в 21:44. |
|
26.12.2012, 21:56 | #6 | |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Цитата:
Но давайте зайдем с той стороны, которая Вам, вроде бы, кажется более понятной. Рельеф, насколько мне представляется, хранится в виде достаточно сложной многоуровневой структуры, что связано с одной стороны желанием совместить достаточно сложный рельеф, что требует в некоторых местах достаточно подробной сетки, с другой - необходимостью поместить этот рельеф в ограниченный объем памяти. Поэтому регулярные сетки для описания масштаба находят очень ограниченное применение. Но если такие сетки используются и вычисления по каким-либо причинам вызывают затруднения, видеокарта обеспечивает примерно то, что Вы называете "дробными индексами" на аппаратном уровне. Но вряд ли это Вам понадобится. Количество подвижных объектов в игре, как правило, составляет от нескольких десятков до нескольких сотен. Лишний десяток арифметических операций - нагрузка на процессор совершенно незначительная, поэтому вряд ли имеет смысл пытаться что-то оптимизировать именно в этом месте. |
|
08.01.2013, 11:40 | #7 |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,603
|
Спасибо. Буду думать. Все-таки дополнительно хочется понять принцип построения поверхностей Безье. Я немного не пойму алгоритм. Имея 16 точек мы можем построить 4 кривых в 4х параллельных плоскостях. Это я понял, рассматривая урок 28 Nehe. Потом берем по точке на каждой кривой с одинаковым процентом от начала и строим кривую уже через них. Но ведь это нехорошо! Поверхность получится ниже оригинальных точек. Может я что-то не так понял. Хотя в общем-то это и не мешает, но все равно как-то нехорошо.
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
рельеф произвольной функции двух переменных | cote | Помощь студентам | 24 | 16.05.2012 19:52 |
3D поверхности | Lost_Angel | C++ Builder | 1 | 29.03.2012 01:19 |
Поверхности в MathCAD | compman | Помощь студентам | 0 | 15.03.2010 03:28 |