2011-01-12 4 views
0

Я недавно разрабатывал изометрическую систему рендеринга для отображения трехмерных сеток в Javascript. Все элементы в сетке - это кубы одинаковых размеров, единственные различия между ними - это текстура, представляющая значение для этой координаты. Мое приложение требует, чтобы большие сетки отображались, хотя только небольшая часть видима в окне просмотра сразу.Как я могу ускорить эту систему рендеринга 3D-сетки?

Поскольку я использую Canvas, который медленно рисует тысячи фигур за кадр, я устанавливаю свой скрипт на каждый блок, но только рисую его грани, если они равны 1.) рядом с пустым пространством сетки и 2.) в окне просмотра. Эта система отлично работает для небольших сеток, но поскольку моему приложению понадобятся значительно большие (1000 + x1000 + x128), мне нужно будет добавить некоторые улучшения производительности для конечного продукта.

Кто-нибудь, кто работал с системами рендеринга, знает, как я могу еще больше оптимизировать свой движок? Одна вещь, которая, как я полагаю, может быть эффективной, будет пытаться не зацикливать каждое значение сетки, даже если оно не нарисовано. Тем не менее, я не знаю, как наиболее эффективный способ узнать, нужно ли цитировать значение сетки или нет (в настоящее время я перехожу через значение КАЖДОЕ, а затем вычисляет, нужно ли его рисовать).

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

+0

Как вы расчет, должно ли быть обращено значение сетки? Вы используете окклюзию? – brainjam

ответ

0

Некоторых указатели на вас: вы можете захотеть взглянуть на классических алгоритмах забоя с использованием вещи, как октодерева (или quadtrees в вашем случае), ...

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