2012-01-20 1 views
0

Я пытаюсь сделать некоторые анимации с помощью Java3D на Mac.Java3D: Очень низкая производительность в апплете на MacOS X

Если я использую universe = new SimpleUniverse(); для создания вселенной, все быстро. Проблема заключается в том, что иногда происходит разрывание, потому что я изменяю свойства объекта в середине рендеринга. То, что я хотел бы сделать, это остановить рендеринг, пока я обновляю свойства.

Моим первым шагом было попытаться создать мой собственный Canvas3D, и в этом все пошло не так. Вместо того чтобы просто создать SimpleUniverse, я такого рода вещи:

GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration(); 
canvas = new Canvas3D(config); 
universe = SimpleUniverse(canvas); 

Когда я делаю это, первая проблема в том, что окно не появляется автоматически. Поэтому, основываясь на примере в java2s, я вложил Canvas3D в апплет. Затем я получаю окно, но производительность TERRIBLE. Отрисовка МНОГО медленнее.

Это почти так, как будто рендеринг больше не выполняется графическим движком, а вместо этого в программном обеспечении.

Может ли кто-нибудь дать мне несколько советов относительно того, что я делаю неправильно здесь?

Спасибо!

ответ

1

Вы должны попытаться скомпилировать свои BranchGroups, прежде чем они станут живыми. Это помогает предварительно обработать объекты, прежде чем они будут отображаться во вселенной. Это может быть и что-то другое, что java получает повесил, если вы положили весь источник в вопрос, тогда я мог бы рассказать вам больше. Это может быть просто ваш компьютер, Java3D занимает большой кусок памяти и довольно интенсивный процессор, ваши компьютерные спецификации также будут иметь значение при ответе на этот вопрос.

Надеюсь, это немного помогло вам, если вы добавите больше ваш вопрос я был бы рад помочь вам больше

Смежные вопросы