+ Ответить в теме
Страница 14 из 17 ПерваяПервая ... 4131415 ... ПоследняяПоследняя
Показано с 261 по 280 из 321

Тема: И все таки она круглая!

  1. #261
    Варвар

    Аватар для Peter

    Steam
    Mk Z

    Регистрация
    15.10.2005
    Адрес
    Россия, Самара
    Сообщений
    2,580
    <div class='quotetop'>Цитата(Дядька * 7.5.2010, 11:10) [snapback]335378[/snapback]</div>
    полезно для определения расстояний, построения кривых,
    наверняка есть численные методы для сферической системы координат (построение кривых),
    удобно использовать как тайловую систему координат (юниты) так и сферическую (генерация карты),
    [/b]
    ну в вашей системе генерации очевидно без геометрии не обойтись.
    я сам предполагал использование "клеточных" алгоритмов, чтобы география генерилась итерационно от одного узла к другому. подобно тому как дифференцируются клетки при развитии организма.

    <div class='quotetop'>Цитата(Дядька * 7.5.2010, 11:10) [snapback]335378[/snapback]</div>
    кстати, как индексировать тайлы собираетесь ?
    [/b]
    возможно списки по широте и долготе
    вообще разметка поверхности представляет граф. вершины характеризуются своими соседями и геометрическими характеристиками вроде широты и долготы для визуализации.
    зы: с суперрегистром разные взгляды у нас на эту тему.
    продвинь это сообщение в соцсеть:  
    EC2 - разработка игры
    Мастерская Steam - мои моды для Civilization V
    Last Citadel - сайт игроков Warlords III

  2. #262
    Говорила мне мама учи математику.........<div class='quotetop'>Цитата</div>
    полином[/b]

    Индексация тайлов или узлов (вершин) вопрос кстати важный, даже очень. Лучший вариант это ID соответствующий порядковому номеру от северного полюса по спирали до южного плюс сферические координаты плюс список соседей, полярные координаты уже на любителя их можно вычислить в любой момент по необходимости и на мой вкус нефиг засорять базу...
    продвинь это сообщение в соцсеть:  

  3. #263
    <div class='quotetop'>Цитата(Peter * 7.5.2010, 12:06) [snapback]335393[/snapback]</div>
    <div class='quotetop'>Цитата(Дядька * 7.5.2010, 11:10) [snapback]335378[/snapback]
    кстати, как индексировать тайлы собираетесь ? [/b]
    зы: с суперрегистром разные взгляды у нас на эту тему.
    [/b][/quote]

    У меня будут три матрицы, просто матрицы-строки:

    1-матрица: координаты узлов (i-ого узла) в сферической системе координат дискретный радиус, угол тета, угол фи, закручиваются последовательно с севера на юг по правилу правого винта (построено)

    2-матрица: координаты треугольников (i-ого треугольника) в номерах узлов, обеспечивают связь треугольник --> его узлы (построено).

    3-матрица: номера треугольников, окружающие узел (i-ый узел), обеспечивают связь узел --> содержащие его треугольники (предстоит построить).

    Так организуется взаимнообратная видемость. Каждый треугольник видит свои узлы. Каждый узел видит свои треугольники. Таким образом, тайл видит соседний тайл.
    продвинь это сообщение в соцсеть:  

  4. #264
    <div class='quotetop'>Цитата(Peter * 7.5.2010, 11:06) [snapback]335393[/snapback]</div>
    я сам предполагал использование "клеточных" алгоритмов, чтобы география генерилась итерационно от одного узла к другому. подобно тому как дифференцируются клетки при развитии организма.
    [/b]
    пробовал - получается как в CTP с кучей дырок, мое больше на глобус смахивает

    <div class='quotetop'>Цитата(Peter * 7.5.2010, 11:06) [snapback]335393[/snapback]</div>
    <div class='quotetop'>Цитата(Дядька * 7.5.2010, 11:10) [snapback]335378[/snapback]
    кстати, как индексировать тайлы собираетесь ?
    [/b]
    возможно списки по широте и долготе
    вообще разметка поверхности представляет граф. вершины характеризуются своими соседями и геометрическими характеристиками вроде широты и долготы для визуализации.
    зы: с суперрегистром разные взгляды у нас на эту тему.
    [/b][/quote]
    если генерить сферу из икосаэдра, логично использовать индексы его граней, после разбивки добавлять еще индекс и тд - думаю ускорит построение графа, хотя тоже не без недостатков, погуглевать нужно, наверняка велосипед уже есть
    продвинь это сообщение в соцсеть:  

  5. #265
    <div class='quotetop'>Цитата(superregistr * 7.5.2010, 11:32) [snapback]335398[/snapback]</div>
    <div class='quotetop'>Цитата(Peter * 7.5.2010, 12:06) [snapback]335393[/snapback]
    <div class='quotetop'>Цитата(Дядька * 7.5.2010, 11:10) [snapback]335378[/snapback]
    кстати, как индексировать тайлы собираетесь ? [/b]
    зы: с суперрегистром разные взгляды у нас на эту тему.
    [/b][/quote]

    У меня будут три матрицы, просто матрицы-строки:

    1-матрица: координаты узлов (i-ого узла) в сферической системе координат дискретный радиус, угол тета, угол фи, закручиваются последовательно с севера на юг по правилу правого винта (построено)

    2-матрица: координаты треугольников (i-ого треугольника) в номерах узлов, обеспечивают связь треугольник --> его узлы (построено).

    3-матрица: номера треугольников, окружающие узел (i-ый узел), обеспечивают связь узел --> содержащие его треугольники (предстоит построить).

    Так организуется взаимнообратная видемость. Каждый треугольник видит свои узлы. Каждый узел видит свои треугольники. Таким образом, тайл видит соседний тайл.
    [/b][/quote]
    прикинь, сколько придется перебрать узлов, чтобы проверить и найти оптимальный путь, если морской или сухопутный юнит отправится на другой конец шарика;
    в Иксах такая задача решается, но там всего 300 секторов, а тут несколько тысяч тайлов, узлов еще больше.
    здесь напрашивается использовать сферические координаты, а тайлы применять для текущего отображения юнита и различных проверок (земля/вода, наличие объекта в тайле и тд), но все равно нужен алгоритм практически мгновенного определения индекса тайла по координатам, чтобы использовать обозначенные тобой базы (графы), здесь возможно принцип иерархии от икосаэдра пригодится - тайл будет определен за несколько циклов
    продвинь это сообщение в соцсеть:  

  6. #266
    Варвар

    Аватар для Peter

    Steam
    Mk Z

    Регистрация
    15.10.2005
    Адрес
    Россия, Самара
    Сообщений
    2,580
    <div class='quotetop'>Цитата(Дядька * 7.5.2010, 12:35) [snapback]335399[/snapback]</div>
    пробовал - получается как в CTP с кучей дырок, мое больше на глобус смахивает
    [/b]
    каких дырок

    <div class='quotetop'>Цитата(Peter * 7.5.2010, 11:06) [snapback]335393[/snapback]</div>
    если генерить сферу из икосаэдра, логично использовать индексы его граней, после разбивки добавлять еще индекс и тд - думаю ускорит построение графа, хотя тоже не без недостатков, погуглевать нужно, наверняка велосипед уже есть
    [/b]
    у меня граф строится прямо при разбиении.
    индексирование нужно я так понимаю для поиска по координатам...
    продвинь это сообщение в соцсеть:  
    EC2 - разработка игры
    Мастерская Steam - мои моды для Civilization V
    Last Citadel - сайт игроков Warlords III

  7. #267
    <div class='quotetop'>Цитата(Дядька * 7.5.2010, 12:35) [snapback]335399[/snapback]</div>
    <div class='quotetop'>Цитата(Peter * 7.5.2010, 11:06) [snapback]335393[/snapback]
    я сам предполагал использование "клеточных" алгоритмов, чтобы география генерилась итерационно от одного узла к другому. подобно тому как дифференцируются клетки при развитии организма.
    [/b]
    пробовал - получается как в CTP с кучей дырок, мое больше на глобус смахивает
    [/b][/quote]
    Да, я тоже думаю надо по такому алгоритму: создается очаг и от него расползается материк. Но над алгоритмами генерации карт буду думать в последнюю очередь, вместо него первое время будет рукотворный редактор

    <div class='quotetop'>Цитата(Дядька * 7.5.2010, 12:46) [snapback]335402[/snapback]</div>
    прикинь, сколько тебе придется перебрать узлов, чтобы проверить и найти оптимальный путь, если морской или сухопутный юнит отправится на другой конец шарика;
    в Иксах такая задача решается, но там всего 300 секторов, а тут несколько тысяч тайлов, узлов еще больше.
    [/b]
    Здесь разные методы можно придумать. Мой самый любимый: самообучение по принципу человека. Когда человек смотрит на карту, он же не перебирает все узлы или треугольники подряд. А вообще задачка смахивает на нахождение функционалов с последущим их запоминаем.

    <div class='quotetop'>Цитата(Дядька * 7.5.2010, 12:46) [snapback]335402[/snapback]</div>
    прикинь, сколько тебе придется перебрать узлов, чтобы проверить и найти оптимальный путь, если морской или сухопутный юнит отправится на другой конец шарика;
    в Иксах такая задача решается, но там всего 300 секторов, а тут несколько тысяч тайлов, узлов еще больше.
    [/b]
    Кстати, а в цив4 разве не так делается? Та же самая задача.
    продвинь это сообщение в соцсеть:  

  8. #268
    Варвар

    Аватар для Peter

    Steam
    Mk Z

    Регистрация
    15.10.2005
    Адрес
    Россия, Самара
    Сообщений
    2,580
    <div class='quotetop'>Цитата(superregistr * 7.5.2010, 12:59) [snapback]335404[/snapback]</div>
    Здесь разные методы можно придумать. Мой самый любимый: самообучение по принципу человека. Когда человек смотрит на карту, он же не перебирает все узлы или треугольники подряд.
    [/b]
    за него это компьютер делает
    находит оптимальный маршрут
    продвинь это сообщение в соцсеть:  
    EC2 - разработка игры
    Мастерская Steam - мои моды для Civilization V
    Last Citadel - сайт игроков Warlords III

  9. #269
    <div class='quotetop'>Цитата(Peter * 7.5.2010, 13:11) [snapback]335407[/snapback]</div>
    <div class='quotetop'>Цитата(superregistr * 7.5.2010, 12:59) [snapback]335404[/snapback]
    Здесь разные методы можно придумать. Мой самый любимый: самообучение по принципу человека. Когда человек смотрит на карту, он же не перебирает все узлы или треугольники подряд.
    [/b]
    за него это компьютер делает
    находит оптимальный маршрут
    [/b][/quote]
    Это означает, что в первый раз комп спроектирует не самый лучший маршрут (ведь так же было и с людьми?), но по мере накопления опыта будет проектировать все лучше и лучше, постепенно находя все более лучшие варианты.
    продвинь это сообщение в соцсеть:  

  10. #270
    <div class='quotetop'>Цитата(Peter * 7.5.2010, 11:46) [snapback]335403[/snapback]</div>
    <div class='quotetop'>Цитата(Дядька * 7.5.2010, 12:35) [snapback]335399[/snapback]
    пробовал - получается как в CTP с кучей дырок, мое больше на глобус смахивает
    [/b]
    каких дырок
    [/b][/quote]
    морских
    <div class='quotetop'>Цитата(superregistr * 7.5.2010, 11:59) [snapback]335404[/snapback]</div>
    Кстати, а в цив4 разве не так делается? Та же самая задача.
    [/b]
    граф конечно тоже используют но наверняка не в лоб,
    думаю, используют прямую и линейную зависимость между координатами и индексами, чего у нас нет
    продвинь это сообщение в соцсеть:  

  11. #271
    <div class='quotetop'>Цитата(Дядька * 7.5.2010, 13:17) [snapback]335410[/snapback]</div>
    <div class='quotetop'>Цитата(superregistr * 7.5.2010, 11:59) [snapback]335404[/snapback]
    Кстати, а в цив4 разве не так делается? Та же самая задача.
    [/b]
    граф конечно тоже используют но наверняка не в лоб,
    думаю, используют прямую и линейную зависимость между координатами и индексами, чего у нас нет
    [/b][/quote]
    Ну допустим, что дает линейная зависимость при поиске оптимального пути? Не, та же самая задача, на сфере линейными становятся углы тета и фи.

    я думаю, там просто банальный перебор, возможно с какими-то немного убыстряющими условиями.
    продвинь это сообщение в соцсеть:  

  12. #272
    Варвар

    Аватар для Peter

    Steam
    Mk Z

    Регистрация
    15.10.2005
    Адрес
    Россия, Самара
    Сообщений
    2,580
    <div class='quotetop'>Цитата(Дядька * 7.5.2010, 13:17) [snapback]335410[/snapback]</div>
    граф конечно тоже используют но наверняка не в лоб,
    думаю, используют прямую и линейную зависимость между координатами и индексами, чего у нас нет
    [/b]
    для поиска расстояния на графе координаты знать ненужно, достаточно знать расстояния между вершинами

    <div class='quotetop'>Цитата(Дядька * 7.5.2010, 13:17) [snapback]335410[/snapback]</div>
    морских
    [/b]
    то есть 1-2 клеточных "озерков"?
    насколько я могу судить при "клеточной" генерации их образование очень маловероятно. скорее наоборот придется их накидывать после создания основного ландшафта. впрочем нужно попробовать сначала.
    продвинь это сообщение в соцсеть:  
    EC2 - разработка игры
    Мастерская Steam - мои моды для Civilization V
    Last Citadel - сайт игроков Warlords III

  13. #273
    <div class='quotetop'>Цитата(superregistr * 7.5.2010, 12:23) [snapback]335411[/snapback]</div>
    Ну допустим, что дает линейная зависимость при поиске оптимального пути? Не, та же самая задача, на сфере линейными становятся углы тета и фи.

    я думаю, там просто банальный перебор, возможно с какими-то немного убыстряющими условиями.
    [/b]
    думаю задача решается в несколько приемов:
    1 сначала быстрый алгоритм - линия, проверка всех тайлов на которые попадает юнит двигаясь вдоль,
    2 потом обход препядствий - поперечная линия из тайла который должен быть обойден, проверка алгоритмом 1,
    3 и только, если не вышло за несколько итераций 2 варианта - тупой перебор.
    продвинь это сообщение в соцсеть:  

  14. #274
    Варвар

    Аватар для Peter

    Steam
    Mk Z

    Регистрация
    15.10.2005
    Адрес
    Россия, Самара
    Сообщений
    2,580
    <div class='quotetop'>Цитата(Дядька * 7.5.2010, 13:30) [snapback]335413[/snapback]</div>
    думаю задача решается в несколько приемов:
    [/b]
    обычно в играх применяется А* и его модификации или алгоритм Ли

    инфа 100%
    продвинь это сообщение в соцсеть:  
    EC2 - разработка игры
    Мастерская Steam - мои моды для Civilization V
    Last Citadel - сайт игроков Warlords III

  15. #275
    <div class='quotetop'>Цитата(Дядька * 7.5.2010, 13:30) [snapback]335413[/snapback]</div>
    думаю задача решается в несколько приемов:
    1 сначала быстрый алгоритм - линия, проверка всех тайлов на которые попадает юнит двигаясь вдоль,
    2 потом обход препядствий - пореречная линия из тайла который должен быть обойден, проверка алгоритмом 1,
    3 и только, если не вышло за несколько итераций 2 варианта - тупой перебор.
    [/b]
    Тоже самое и на сфере можно сделать. Не вижу различий.

    Мне кажется, там тупо вырезается прямоугольник с диагональными точками: начало-конец, возможно он немного расширяется. А потом программа начинает варировать все (а может и не все) пути и находит экстремум функионала.

    <div class='quotetop'>Цитата(Peter * 7.5.2010, 13:33) [snapback]335414[/snapback]</div>
    обычно в играх применяется А* и его модификации или алгоритм Ли

    инфа 100%
    [/b]
    ок, щас прочту
    продвинь это сообщение в соцсеть:  

  16. #276
    Алгоритм Ли понравился больше, по крайней мере я его понял

    На счет Астра видимо требуется больше умственных усилий
    продвинь это сообщение в соцсеть:  

  17. #277
    Изрядно повозившись с OpenGL, разобрался с отображениями изображения. Есть такое понятие таблица отображений. Она отвечает за статичную сцену и очень заметно повышает производительность, например, крутить сцену за счет того, что объекты сцены хранятся в буфере. Почему в моей проге сферу можно быстро крутить без тормозов? (у меня без тормозов) Потому что сфера находится в таблице отображений, которая хранится в буфере. В противном случае с каждым изменением осуществлялось перерисовка заново всех треугольников (пробовал, действительно тормоза). Итак, таблица отображений содержит статическую картинку, но! ее (конкретную таблицу отображений) можно изменить с помощью функций и методов и переопределения переменной, хранящей уникальный номер таблицы отображений.

    Что это дает? Много, очень много. Создаем n таблиц отображений, одна таблица на треугольник. Теперь все треугольники хранятся в буфере как данные. Теперь изменяю несколько таблиц отображений (несколько треугольников), например, чтобы поднять или опустить узел. Остальные данные остаются нетронутыми статическими данными -- следовательно тормозов нет и не будет. Измененные треугольники теперь перезаписываются в свои таблицы отображений. Результат - колоссальная производительность.

    Теперь отвечу на ваши вопросы Qt4 как API для OpenGL. Для работы с OpenGL в Qt4 есть три определяемые разработчиком функции:

    virtual void initializeGL() // автоматически вызывается первой и только один раз, в ней разработчик делает настройки и инициализации OpenGL

    virtual void resizeGL(int nW, int nH) // автоматически вызывается второй и только один раз, нужна, чтобы связать сцену с размером виджета (окна), так же вызывается при изменении размеров окна, в ней так же логично задать матрицу проектирования или проекцию

    virtual void paintGL() // вызывается автоматически при вызове команд обновить изображение, вызывается любое количество раз, заменяет старое изображение на новое

    Вообщем все предельно логично, интуитивно понятно и просто.
    продвинь это сообщение в соцсеть:  

  18. #278
    <div class='quotetop'>Цитата(superregistr * 11.5.2010, 21:46) [snapback]335807[/snapback]</div>
    Сообщений: 1 000[/b]

    поздравляю со <strike>круглой</strike> сфероподобной циферкой
    продвинь это сообщение в соцсеть:  

  19. #279


    Построил, как и задумывал, базы данных, с помощью которых:
    - треугольник видит свои узлы;
    - узел видит свои треугольники.

    Демонстрационная программа прилагается, используйте клавиши "N" (узел++) и "M" (узел--).

    продвинь это сообщение в соцсеть:  

  20. #280


    <div class='quotetop'>Цитата(superregistr * 15.5.2010, 18:48) [snapback]336084[/snapback]</div>


    Построил, как и задумывал, базы данных, с помощью которых:
    - треугольник видит свои узлы;
    - узел видит свои треугольники.

    Демонстрационная программа прилагается, используйте клавиши "N" (узел++) и "M" (узел--).


    [/b]
    Восхищаюсь твоим упорством, поддерживаю всецело. Как лето закончится продолжу работу над начатым.
    продвинь это сообщение в соцсеть:  

+ Ответить в теме
Страница 14 из 17 ПерваяПервая ... 4131415 ... ПоследняяПоследняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
Рейтинг@Mail.ru

free counters