Архив рубрики «Infinity3D»

Вышла новая версия движка 1.3.

04.08.2009

Изменения:

  1. Добавлен новый рендер фильтр DynamicBSPRender. Обратите внимание, что рендер фильтры назначаются камерам (в предыдущих версиях сцене)! И делается это так:
    this.camera.renderFilter = new DynamicBSPRender();
  2. Удалены классы:
    а) RenderFilter - класс содержал константы фильтров рендеринга, но т.к. теперь рендер фильтры назначаются камерам, а не сцене, необходимость в этом классе отпала;
    б) BboxName - класс содержал константы ограничивающих примитивов,  но т.к. движок стал использовать только два типа ограничивающих примитивов (прямоугольный параллелепипед и эллипс), необходимость в этом классе отпала;
    в) LoaderI3D - загрузчик моделей в формате I3D  временно удален из интернет версии;
  3. Заполнен класс генерирующий ошибки, возникающие при работе с движком, а также подсказки.
    Об ошибках framework сообщает в таком виде:
    Class:Класс  в котором произошла ошибка; Metod: Метод в котором произошла ошибка (или Setor: Сетор в котором произошла ошибка); Error: Описание ошибки;
  4. Удален метод setDefaultMaterial из класса Surface, т.к. он дублировал уже имеющийся функционал.
  5. О всех остальных незначительных изменениях вы можете узнать из документации.

Оптимизация динамического BSP - дерева и оптимизация архитектуры движка под него

23.07.2009

Провел оптимизацию динамического BSP - дерева, скорость работы повысилась в 4 раза. Теперь обрабатывает до 7000 полигонов при 25++FPS (все полигоны попадают в область отрисовки и видны => соответственно рисуются на экран, а сцена может состоять из “неограниченного” количества полигонов) . Т.е. динамическое BSP - дерево работает всего на 20% медленее BaseRender, но при этом обеспечивает абсолютную точность.

Демка «полностью динамическое BSP - дерево».

20.07.2009

Всем скептикам, утверждающим: “Невозможно создать полностью динамическое BSP-дерево и чтобы оно быстро работало” посвящается :) . Причем, еще не проводил оптимизацию.

Динамическое BSP-дерево обеспечивает абсолютно точную сортировку полигонов и  их врезку друг в друга. На скорость работы такого дерева не влияет - статическая сцена или динамическая (даже, если все объекты на сцене двигаются, крутятся, пересекаются) - скорость будет всегда “одинаковой”.

Временно выход версии 1.3 отложен, но не надолго. Пока занимался сборкой этой версии  появилось несколько интересных идей, как только их реализую, сразу выложу.

Управление:

    Key “Space” - animation on/off;
    Key “E” - show edge on/off;
    Key “Q” - change quality;
    Остальное, как всегда.

Вышла промежуточная версия движка 1.2.1

09.07.2009

Изменения:

  1. В связи с возникновением у разработчиков потребности загружать модели в форматах ASE и OBJ без текстур и текстурных координат, загрузчики были расширены.
  2. В класс FirstPersonController добавлены два свойства: minRotationZ, maxRotationZ

Важная информация:

В связи с  подготовкой архитектуры движка к версии 1.3 в рендеринг фильтре BSPRender отключена динамическая врезка объектов друг в друга.

В версии 1.3 будет полностью измененны алгоритмы в рендеринг фильтре BSPRender (BSP-дерево станет полностью динамическим). Подробно о новом рендеринге расскажу с выходом версии 1.3.

Демка «Interactive».

08.07.2009

Добавлена демка “Interactive” - Демонстрация интерактивных объектов и управление ими.

Управление поворотом камеры = пробел + движение мыши.
Исходник этой демки появится с выходом новой версии движка 1.3.
Подробно здесь

Пример и исходник по работе с VideoMaterial’ом.

03.07.2009

По сути, при написании демки получился полноценный видео проигрыватель.

VideoMaterial - исходник.

Вышла новая версия движка 1.2.

01.07.2009

Изменения:

  1. Введена интерактивность, теперь можно отслеживать события  по объектам, поверхностям и граням.
    1. Добавлен класс Mouse3DEvent;
    2. В класс View добавлены новые свойства: mouseClick, mouseDown, mouseMove, mouseOut, mouseOver, mouseUp, mouseInteractive.
  2. Добавлен новый материал VideoMaterial;
  3. Появилась возможность в контроллерах (для поворота камеры) заменять нажатие левой кнопки мыши + перемещение мыши  на любую кнопку + перемещение мыши;
  4. Произведена очередная оптимизация на уровне математики, производительность повысилась еще на 3-4%.

Открылся форум!

15.06.2009

В связи с большим количеством вопросов, приходящих на почту  проекта, открытие форума в списке приоритетов было перемещено на первое место.  Перейти на форум.

Добавлен урок «Представление данных о ландшафте, использование полигонального объекта HeightMapMesh».

15.06.2009

Представление данных о ландшафте, использование полигонального объекта HeightMapMesh.

Вышла новая версия движка 1.1.

14.06.2009

Изменения:

  1. Была исправлена неточность в определении размеров BParallelepiped в пользовательских методах;
  2. Добавлен новый полигональный объект LodMesh (Полигональный объект с разной детализацией);
  3. В класс Surface добавлен новый пользовательский  метод  setDefaultMaterial();
  4. В класс BParallelepiped добавлены свойства: pointMax и pointMin;
  5. Свойство distantion в объектах полностью активизировано, при всех рендеринг фильтрах;
  6. В класс Point3D добавлен новый метод abs().