Я использую этот алгоритм марширующего куба для рисования трехмерных изоповерхностей (портированных в C #, с выводом MeshGeomtry3D
s, но в остальном то же самое). Получающиеся поверхности выглядят великолепно, но на их вычисление уходит много времени.
Есть ли способы ускорить марширующие кубики? Наиболее очевидным является простое уменьшение частоты пространственной выборки, но это снижает качество получаемой сетки. Я бы хотел этого избежать.
Я рассматриваю двухпроходную систему, где при первом прохождении выборки занимают гораздо более грубое пространство, исключая объемы, где напряженность поля значительно ниже моего уровня изоляции. Это мудро? Какие подводные камни?
Редактировать: код был профилирован, и основная часть процессорного времени распределяется между самой процедурой движущихся кубов и вычислением напряженности поля для каждого угла ячейки сетки. Полевые расчеты вне моего контроля, так что ускорение работы с кубиками - моя единственная возможность ...
Меня все еще тянет к идее попытаться устранить мертвое пространство, поскольку это значительно уменьшит количество обращений к обеим системам.