ENG Новый сайт

Расширенный поиск
[ Новые сообщения · Пользователи · Правила ]
Состояние разработки 0.97
SpaceEngineerДата: Среда, 05.12.2012, 03:28 | Сообщение # 271
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
Последние обновления:

  • Кнопка [End] поворачивает камеру горизонтально
  • Импорт моделей кораблей в формате OBJ с материалами и множественными текстурами
  • Кэш для текстур и моделей

    Я доделал кэш для текстур и моделей (кораблей). Теперь можно использовать одну и ту же текстуру для разных моделей, и каждая уникальная текстура будет храниться в видеопамяти только один раз. И в отличие от SE 0.96, теперь можно использовать много копий одного корабля (т.е. сделать флот шаттлов, звездолётов и т.д.), и его модель будет храниться в видеопамяти тоже только один раз - каждая копия корабля будет использовать одну и ту же модель. Кэши текстур и моделей теперь включены в менеджер памяти SE, так что SE теперь автоматически выгружает старые текстуры и модели, когда надо освободить память для загрузки новых ресурсов (текстур планет, моделей галактик, других кораблей и т.д.).

    Скриншоты показывают "флот" всех моделей, с которыми сейчас дебажу SE. Большой корабль AmID91'a скопирован 4 раза. Его модель содержит почти миллион полигонов и использует 104 Mb видеопамяти, однако она хранится в памяти только один раз, так что эти 4 корабля использует только 104 Мб. Весь флот использует 258 Mb для моделей и 152 Мб для текстур - теперь вы видите, как важно избегать хранения нескольких копий текстуры/модели в памяти.

    Размеры моделей будут значительно уменьшены, когда я сделаю конструктор кораблей. Сейчас каждый топливный бак, каждое сопло двигателя, каждая опорная балка в модели сделаны из уникальных полигонов. Но в конструкторе можно будет собирать корабли из нескольких десятков основных модулей, и каждый модуль будет иметь свою собственную модель, хранящиеся в памяти только один раз.

    Следующий шаг - сделать возможность динамического добавления и удаления космических кораблей. Я пока сделаю простой интерфейс с кнопками "создать корабль здесь" и "уничтожить корабль".

    Хорошие новости для моддеров - теперь SE поддерживает импорт моделей из OBJ формата библиотекой материалов (MTL) - т.е. теперь можно использовать несколько текстур на модель, и не нужно делать атлас текстур (хотя полезно иметь одну текстуру вместо десятка). Можно даже не использовать текстуры в некоторых частях модели, а обойтись цветными материалами, и иодель все еще будет красивая (одна из машинок на скриншотах не использует текстуры).

    Большие корабли:



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

    Прикрепления: 5875568.jpg (285.7 Kb) · 4491177.jpg (143.5 Kb)


  • BamBamДата: Среда, 05.12.2012, 03:44 | Сообщение # 272
    Исследователь
    Группа: Пользователи
    Украина
    Сообщений: 177
    Награды: 1
    Статус: Offline
    Круто smile Экономия видеопямяти тоже очень хорошо, правда все равно смотрю кушает памяти нехило, требовательная игра становится к ресурсам, но она того стОит smile

    p.s. А джипы, джипы то будут? biggrin


    когда придумывал ник моя фантазия умерла

    Сообщение отредактировал BamBam - Среда, 05.12.2012, 03:46
    MontesumaДата: Среда, 05.12.2012, 08:42 | Сообщение # 273
    Первооткрыватель
    Группа: Пользователи
    Российская Федерация
    Сообщений: 539
    Награды: 3
    Статус: Offline
    Круто!! Даёшь звезду смерти!!!

    Quote (BamBam)
    p.s. А джипы, джипы то будут?


    Ага, но тогда это уже будет GTA SE или SE GTA biggrin biggrin biggrin


    Если череп смеется - значит у него есть на то причины.
    Слова Ванталы
    SHWДата: Среда, 05.12.2012, 11:08 | Сообщение # 274
    Строитель Миров
    Группа: Команда SE
    Нидерланды
    Сообщений: 618
    Награды: 10
    Статус: Offline
    Замечательно.
    А с картами нормалей для моделей не разбирались больше?
    А то я не знаю, что сделать со своими кораблями, чтобы у них не было видно границ полигонов в SE.


    Win7 Pro x64
    Intel Core2Quad 2.5GHz 4GiB RAM
    NVidia GForce 9800 1 GiB
    oleg999Дата: Среда, 05.12.2012, 11:12 | Сообщение # 275
    Первооткрыватель
    Группа: Пользователи
    Российская Федерация
    Сообщений: 424
    Награды: 2
    Статус: Offline
    Montesuma, да GTA SE с неограниченным миром biggrin
    The_MaksimkaДата: Среда, 05.12.2012, 11:59 | Сообщение # 276
    Нет аватара
    Космический турист
    Группа: Пользователи
    Российская Федерация
    Сообщений: 27
    Награды: 0
    Статус: Offline
    Quote (oleg999)
    Montesuma, да GTA SE с неограниченным миром

    Потом с помощью кода, на машине летать с планеты на планету smile


    Сообщение отредактировал The_Maksimka - Среда, 05.12.2012, 12:00
    SpaceEngineerДата: Среда, 05.12.2012, 12:57 | Сообщение # 277
    Автор Space Engine
    Группа: Администраторы
    Российская Федерация
    Сообщений: 5547
    Награды: 55
    Статус: Offline
    Quote (SHW)
    Замечательно. А с картами нормалей для моделей не разбирались больше? А то я не знаю, что сделать со своими кораблями, чтобы у них не было видно границ полигонов в SE.

    Пока не исправил. Проблема наблюдаются при импорте из OBJ с вырожденными треугольниками, две вершины которых имеют одинаковые текстурные координаты (s1=s2 или t1=t2) - тогда не получается правильно построить тангенциальный вектор. OBJ не сохраняет тангенциальные вектора, в этом и проблема.


    SHWДата: Среда, 05.12.2012, 14:29 | Сообщение # 278
    Строитель Миров
    Группа: Команда SE
    Нидерланды
    Сообщений: 618
    Награды: 10
    Статус: Offline
    Quote (SpaceEngineer)
    OBJ не сохраняет тангенциальные вектора, в этом и проблема.

    Да, есть такая проблема. В том движке, что я использую, тангенсоиды суммируют по всем полигонам, которые шарят одну вершину. Но и тут возникают проблемы с группами размытия, отражениями и разрывами в текстурных координатах. Я для этого специально разбивал модельки на куски по нормалям и UV Seam-ам, тогда проблемы исчезли.

    Кстати, при импорте в движок Unity, мне пришлось инвертировать зелёный канал карты нормалей, чтобы глюков не было (то есть V координата у них видимо переворачивается при импорте из obj).

    Хотелось бы, чтобы в новой версии проблема была решена, а то при добавлении спекуляра корабли с картой нормалей вообще превращаются в лютый писец. Я могу скинуть код, который используется для расчёта тангенсоид, разбиения меша, а так же шейдеры для рендеринга в тех примерах, что я выкладывал.


    Win7 Pro x64
    Intel Core2Quad 2.5GHz 4GiB RAM
    NVidia GForce 9800 1 GiB
    SpaceEngineerДата: Среда, 05.12.2012, 20:26 | Сообщение # 279
    Автор Space Engine
    Группа: Администраторы
    Российская Федерация
    Сообщений: 5547
    Награды: 55
    Статус: Offline
    Quote (SHW)
    Я могу скинуть код, который используется для расчёта тангенсоид, разбиения меша, а так же шейдеры для рендеринга в тех примерах, что я выкладывал.

    Давай, может поможет.


    SpaceEngineerДата: Четверг, 06.12.2012, 18:20 | Сообщение # 280
    Автор Space Engine
    Группа: Администраторы
    Российская Федерация
    Сообщений: 5547
    Награды: 55
    Статус: Offline
    Quote (SHW)
    Кстати, тангенсоида в этом движке храниться в виде вектора + знак бинормали (в четвёртой компоненте). А сама бинормаль считается в вершинном шейдере.

    У меня также, но все же со знаком по-видимому что-то не то.

    UPD: проблемы по-видимому возникают с вырожденными вершинами. В твоем коде нет проверки, что tan1[vertexIndex] может быть нулевым вектором, и normalize даст бесконечность.

    В свою очередь, tan1 может быть нулевым, потому что если вот тут в занменателе будет ноль:
    r = 1.0 / ( s1 * t2 - s2 * t1 );
    - я просто выхожу из функции handleTriangle, не прибавляя sdir и tdir к tan1 и tan2, иначе там будут бесконечности.


    SHWДата: Пятница, 07.12.2012, 09:50 | Сообщение # 281
    Строитель Миров
    Группа: Команда SE
    Нидерланды
    Сообщений: 618
    Награды: 10
    Статус: Offline
    На своих модельках я проверял получаемые тангенсоиды. Никаких проблем не было. Вырожденные вершины крайне редкая ситуация (в нормальных моделях такого вообще не должно быть). Да, и если где-то получалась бесконечность, то глюки были бы заметны, а у меня их нет.

    Возможно, как в Unity3D, проблема в интерпретации знаков текстурных координат. Или где-то перепутаны U и V.
    Попробую поэкспериментировать с ними (инвертировать каналы, менять их местами).


    Win7 Pro x64
    Intel Core2Quad 2.5GHz 4GiB RAM
    NVidia GForce 9800 1 GiB


    Сообщение отредактировал SHW - Пятница, 07.12.2012, 09:51
    SHWДата: Пятница, 07.12.2012, 11:19 | Сообщение # 282
    Строитель Миров
    Группа: Команда SE
    Нидерланды
    Сообщений: 618
    Награды: 10
    Статус: Offline
    Не похоже, что проблема в знаках текстурных координат. Пробовал разные комбинации.

    Вот тут, например, вершина явно одна и та же, но почти у всех прилегающих полигонов получилась своя тангенсоида.

    Для сравнения, та же моделька (и текстуры) в Юнити: из-за инвертированной V видны швы UV координат, но вершины смежных полигонов имеют одну и ту же тангенсоиду.

    Добавлено (07.12.2012, 11:19)
    ---------------------------------------------
    Вы нормали сами считаете, или загружаете?
    Прикрепления: 2238202.jpg (106.2 Kb) · 2105868.jpg (61.4 Kb)


    Win7 Pro x64
    Intel Core2Quad 2.5GHz 4GiB RAM
    NVidia GForce 9800 1 GiB


    Сообщение отредактировал SHW - Пятница, 07.12.2012, 11:25
    SpaceEngineerДата: Воскресенье, 09.12.2012, 00:39 | Сообщение # 283
    Автор Space Engine
    Группа: Администраторы
    Российская Федерация
    Сообщений: 5547
    Награды: 55
    Статус: Offline
    Нормали загружаю. Сейчас вроде стало лучше, но на некоторых моделях тангенсоиды инвертируются большими блоками, а не отдельными верщинами. На шаттле например одна половина флюзеляжа инвертирована.

    1997Дата: Воскресенье, 09.12.2012, 02:41 | Сообщение # 284
    Исследователь
    Группа: Пользователи
    Российская Федерация
    Сообщений: 218
    Награды: 0
    Статус: Offline
    Quote (TonyMontana)
    ВЫ таланты вам это сделать будет легко

    Я не уверен, врятли это так легко, если какой-то человек талант в каком-то деле, то это не означает что ему будет легко сделать то что ему попросили.

    Quote (TonyMontana)
    Мечтаю чтобы на официальном сайте была ссылка на space radio online для релаксации, во время межгалактического трипа! А также мечтаю, чтоб сделали кокпит кораблям и чтоб он был активен, т есть реагировал на яркость окружения и имел подсветку! + управление корабля с джойстика и озвучка турбин, с анимацией кабины во время разгонов и торможений!! Ну и наконец, чтобы сделали,КВАЗАРЫ и МКС+ !текстуры(УВЕЛИЧИТЬ РАЗРЕШЕНИЕ ИМЕЮЩИХСЯ)! для солнеченой системы как к примеру на "Пандоре")) ..У проекта ОГРОМНЫЙ потенциал..! Спасибо разработчикам за шедевр!

    Это может быть через года два, а то и больше.


    ...
    BamBamДата: Воскресенье, 09.12.2012, 05:12 | Сообщение # 285
    Исследователь
    Группа: Пользователи
    Украина
    Сообщений: 177
    Награды: 1
    Статус: Offline
    Quote (1997)
    Это может быть через года два, а то и больше.

    загадывать наперед гиблое дело... будем надеяться что быстрее smile


    когда придумывал ник моя фантазия умерла
    Поиск:

    >