Недавно я разрабатывал изометрическую систему рендеринга для отображения трехмерных сеток в Javascript. Все элементы в сетке представляют собой кубы одинакового размера, единственными отличиями между ними является текстура, представляющая значение для этой координаты. Мое приложение требует графики больших сеток, даже если в области просмотра видна только небольшая часть.
Поскольку я использую Canvas, который медленно рисует тысячи фигур в кадре, я настроил свой сценарий так, чтобы он проходил через каждый блок, но рисовал его грани, только если они равны 1.) рядом с пустым пространством сетки и 2.) внутри окна просмотра. Эта система отлично работает для небольших сетей, но поскольку моему приложению потребуются значительно большие (1000 + x1000 + x128), мне нужно добавить некоторые улучшения производительности для конечного продукта.
Кто-нибудь, кто работал с системами рендеринга, знает, как я могу оптимизировать свой движок? Одна вещь, которая, я думаю, может быть эффективной, будет пытаться не перебирать каждое значение сетки, даже если оно не рисуется. Однако я не знаю наиболее эффективного способа узнать, следует ли циклически проходить по значению сетки или нет (в настоящее время я проверяю КАЖДОЕ значение, а затем вычисляю, следует ли его рисовать).
Если я был слишком расплывчатым, пожалуйста, скажите мне, и я буду рад уточнить. Спасибо за ваше время и опыт; Я студент, и любая помощь очень поможет мне в обучении.