Обновление Alternativa3D 5.6.0

04.09.2009 Владимир Бабушкин

На сайте доступно обновление Alternativa3D до версии 5.6.0.

Список изменений:

  • Увеличена производительность отрисовки и построения сцены благодаря переносу расчета UV-координат граней на момент отрисовки
  • Добавлена возможность настроить видимость между различными частями сцены. В связи с этим:
    • Добавлены новые классы:
      alternativa.engine3d.core.Splitter
      alternativa.engine3d.core.Sector
    • Добавлены новые свойства:
      Scene3D.splitters
      Scene3D.sectors
      Camera3D.currentSector
  • Добавлен новый класс alternativa.engine3d.materials.MovieClipMaterial
  • Улучшен алгоритм автообъединения граней
  • В алгоритм автообъединения граней добавлен параметр, позволяющий не объединять соседние грани, если в результате два смежных ребра оказываются на одной линии
  • Добавлены парсеры форматов 3DS и OBJ
  • Добавлены события прогресса загрузки для классов Loader3DS и LoaderOBJ
  • Исправлена ошибка при загрузке 3DS-модели без граней
  • Теперь при загрузке данных 3DS учитываются имена Dummy объектов
  • Loader3DS.units переименован в Loader3DS.scale
  • Исправлена ошибка в LoaderOBJ, возникающая при загрузке модели без UV координат
  • Добавлены параметры Loader3DS.loadMaterials и LoaderOBJ.loadMaterials, позволяющие не загружать текстуры моделей
  • Добавлен класс alternativa.utils.UnitsConverter, предназначенный для расчёта коэффициента преобразования величин измерения
  • Добавлен метод View.projectViewPointToPlane()
  • В методе View.get3DCoords() теперь учитывается zoom ортографической камеры
  • Исправлена ошибка из-за которой не учитывались изменения настроек камеры в методе View.get3DCoords()
  • Исправлена неточность определения углов в методе Matrix3D.getRotations()
  • Исправлена ошибка, возникающая при включенной интерактивности у вьюпорта, который не расположен на stage
  • Улучшен алгоритм проверки столкновений и теперь не происходит зацепления на углах
  • Исправлена ошибка в методах Object3D.transformation и Object3D.globalToLocal(), которая возникала, если объект не находился на сцене
  • Исправлена ошибка в методе Object3D.globalToLocal(), возникающая при вызове метода у корневого объекта сцены
  • Добавлен метод Object3D.forEach()
  • DevMaterial теперь позволяет отображать неплоские полигоны
  • DevMaterial теперь отображает полигоны, выродившиеся в точку
  • Исправлена ошибка, из-за которой в DevMaterial неправильно определялись вырожденные полигоны с количеством вершин больше трех
  • Теперь имена по умолчанию для каждого типа примитивов свои
  • Исправлена ошибка в алгоритме отрисовки, приводящая к зацикливанию при отключенном клиппинге
  • Добавлен метод получения фокусного расстояния камеры
  • MouseEvent.view теперь содержит правильное значение вьюпорта
  • WalkController больше не продолжает совершать прыжки при зажатой кнопке прыжка
  • Теперь в WalkController можно задать максимальный и минимальный угол поворота вокруг локальной оси X
  • Теперь можно управлять видимостью счетчика FPS

Комментарии (13) на “Обновление Alternativa3D 5.6.0”

  1. Exey Says:

    Ура! значит 7-а скоро, ща посмотрим

  2. makc Says:

    PVS?? 8-O

  3. makc Says:

    метод .hasChanges() тоже новый, или я провтыкал?

  4. Андрей Копысов Says:

    Был он в 5.5

  5. Kenny Says:

    Библиотека не устанавливается. Выдает ошибку “abc bytecode decoding failed”
    http://gyazo.com/a0341f116da90c17b3924005ef260f87.png
    5.5.0 - работает норм.

  6. Andrey Kopysov Says:

    Kenny, какую версию библиотеки вы используете для fp9 или для fp10?

  7. My First ActionScript 3 Application » Встречайте, Alternativa3D 5.6.0 Says:

    […] 04/09/2009

  8. elmortem Says:

    Отличнейшая новость! Респект.
    Сейчас потестим, на сколько стала быстрее отрисовка. ^__^
    (ушёл прикручивать к второму джампиксу…)

  9. Kenny Says:

    Andrey Kopysov, использую версию для fp10.

  10. Andrey Kopysov Says:

    Скорей всего вы компилируете приложение, в котором используется библиотека, под 9 версию плеера.

  11. Kenny Says:

    Спасибо, все заработало.
    Вот бы какой-нибудь пример использования Splitter и Sector.

    Как я понимаю Splitter - это заменитель объектов с нулевой мобильностью, для оптимизации bsp дерева например в бункере?

    И правильно ли я понимаю что можно построить сцену с большим количеством объектов, разделив ее на сектора (Sector). И при движении камеры “выключать” ненужные (removeVisible) вместо удаления со сцены (removeChild).
    Как ведут себя выключенные сектора? Не обсчтитываются ли они при обсчете сцены?
    И есть ли разница в производительности после removeVisible и после removeChild?

  12. Andrey Kopysov Says:

    Сплиттер это как плоскость с минимально возможной мобильностью. Эта плоскость будет разделять всю сцену на части. Сектора позволяют задать потенциальную видимость между частями сцены. Для этого до отрисовки расставляются на сцене сектора, каждому сектору задаются потенциально видимыми из этого сектора другие сектора. Затем при отрисовке сцены определяется текущий сектор, в котором находится камера и отрисовываются только сектора, которые являются потенциально видимыми для данного сектора. Также можно включать и отключать сплиттеры, что будет отключать из отрисовки целые части сцены.

  13. Kenny Says:

    Запостил вопрос на форум: http://forum.alternativaplatform.com/posts/list/1299.page
    Нужен совет

Оставить комментарий

(Регистрация)