AS3 Papervision3D Доступ к материалам на плоскости - PullRequest
1 голос
/ 18 апреля 2011

Я хочу оптимизировать производительность моей программы.

Безразлично, я установил качество сцены на среднее (если я установлю его на Низкий, половина моих видеоклипов не будет отображаться). Это помогло, но я хочу больше !!!

Подсказка, которую я прочитал в книге P3D Essentials, заключается в том, чтобы поворачивать анимированные материалы, когда они не нужны. Фантастическая идея, но не объясняет как.

Когда я создаю материал, я могу установить material.animated = false, и это работает, но в другой функции я не могу получить доступ к материалу моих примитивов. Что-то такое простое, как plane.material.animated = false, возвращает нулевое исключение. Итак, как мне динамически включать / выключать анимированные материалы на моих примитивах?

1 Ответ

0 голосов
/ 18 апреля 2011

Просмотр API кажется невозможным. Что я могу сделать для повышения производительности, так это удалить объекты, которые не видны, например, если плоскость полностью скрыта за другой плоскостью, то не показывать (отображать) ее. Это то, чего я пытался достичь с помощью моего первоначального вопроса ...

У меня все самолеты в массиве.

//make all the planes invisible. Don't want to render them
for(var i = 0; i< planes.length(); i++)
{
  planes[i].visible = false;
}
//show the first plane so we have **something** to see
planes[0].visible = true;

Это работает для меня, потому что я знаю , что за один раз будет видна только одна плоскость (пока она не перейдет на следующую плоскость, и в этом случае я сделаю эту плоскость видимой, и когда текущая плоскость закончила переход, я это скрываю).

...