У меня есть неявное скалярное поле, определенное в 2D, для каждой точки в 2D я могу заставить его вычислить точное скалярное значение, но это несколько сложное вычисление.
Я хотел бы нарисовать изо-линию этой поверхности, скажем, линию значения «0». Сама функция является непрерывной, но изо-линия '0' может иметь несколько непрерывных экземпляров, и не гарантируется, что все они связаны.
Вычисление значения для каждого пикселя не вариант, потому что это займет слишком много времени - порядка нескольких секунд, и это должно быть как можно больше реального времени.
В настоящее время я использую рекурсивное деление пространства, которое можно рассматривать как своего рода квад-дерево. Я беру первоначальную, очень грубую выборку пространства и, если я нахожу квадрат, содержащий переход от положительных к отрицательным значениям, я рекурсивно делю его на 4 меньших квадрата и снова проверяю, останавливаясь на уровне пикселей. Положительно-отрицательный переход обнаруживается путем выборки квадратуры в четырех углах.
Это работает довольно хорошо, за исключением случаев, когда это не так. Рисованные изо-линии иногда обрезаются, потому что не удается обнаружить переходы для переходов, которые происходят в небольшой области ребра и не пересекают угол квадрата.
Есть ли лучший способ сделать изо-рисование в этих настройках?