Я знаю, что Cesium предлагает несколько различных методов интерполяции, включая линейные (или билинейные в 2D), Эрмита и Лагранжа. Эти методы можно использовать для повторной выборки наборов точек и / или создания кривых, которые аппроксимируют точки выборки и т. Д.
Однако у меня возникает вопрос, какой метод использует Цезий внутри, когда он рендерит 3D-сцену, а пользователь масштабирует / панорамирует повсюду? Это не тот случай, когда программист имеет доступ к растру и т. Д., Поэтому нельзя просто попасть в середину всего этого и напрямую вызвать функции интерполяции. Цезий делает свое дело так быстро, как только может, в ответ на управление пользователя.
Я догадываюсь, что по умолчанию используется билинейный режим, но я этого не знаю и не могу найти никакой документации, в которой явно указано, что используется. Кроме того, есть ли способ заставить Цезий использовать определенный метод передискретизации во время этих действий, например передискретизацию Лагранжа? Фактически, это то, что мне нужно сделать: заставить Цезий использовать передискретизацию Лагранжа во время рендеринга сцены. Мы ценим любые предложения.
РЕДАКТИРОВАТЬ: вот более подробное описание проблемы ...
Предположим, я использую цезий для создания трехмерной модели Земли, включая чип изображения в градациях серого, в его надлежащем месте на поверхности модели Земли, а затем я отображаю результаты в окне цезия. Если точка обзора находится достаточно далеко от поверхности Земли, то количество пикселей, отображаемых в части окна чипа изображения, будет меньше, чем фактическое количество пикселей, доступных в источнике чипа изображения. Произойдет некоторое понижение дискретизации. Аналогичным образом, если пользователь многократно увеличивает масштаб, наступает момент, когда на чипе изображения отображается больше пикселей, чем фактическое количество пикселей в источнике чипа изображения. Произойдет некоторая передискретизация. В общем, каждый раз, когда Цезий рисует кадр, который включает источник данных пикселя, происходит повторная выборка. Это может быть ближайший сосед (сомневаюсь), линейный (вероятно), кубический, Лагранж, Эрмит или любой из множества различных методов передискретизации. В моей компании мы используем цезий как часть большой государственной программы, которая требует использования передискретизации Лагранжа для обеспечения качества изображения. (NGA сочло это лучшим для своих программ и инструментов аналитики, и они сделали это обязательным требованием. Так что у нас нет выбора.)
Итак, вот проблема: пока пользователь взаимодействует с моделью, например увеличивает масштаб, процесс рисования не находится под контролем программиста. Передискретизация происходит либо в самом слое цезия (надеюсь), либо даже в еще более низких уровнях (например, функции WebGL, на которые может полагаться Цезий). Так что я понятия не имею, какой метод используется для этой передискретизации. Хуже того, если это не техника Лагранжа, то я понятия не имею, как ее изменить.
Итак, вопрос (ы) будет следующим: выполняет ли Цезий передискретизацию явно? Если да, то какую технику он использует? Если нет, то какие пакеты и функции для рисования использует Cesium для рендеринга файла изображения на карту? (Я могу попытаться раскопать и определить, какие методы могут использоваться в этих слоях и / или есть в наличии.)