TGViewer
Прогаем с кенгурой Прогаем с кенгурой @coding_with_kangaroo · 236 subscribers
Post #206 127
Принцип:
Из-за смещениялинзы относительно оптической оси системы нарушается радиальная симметрия, и картинка как бы съезжает, а так как мы работаем с оптикой и преломлением хода лучей, то еще и искривляется

Алгоритм:

То же, что и в прошлый раз, но в (2) мы не умножаем на коэффициент, а добавляем вектор, который считаем из текущих координат, расстояния до центра и коэффициентов.

Для тангенциальной:


static inline float2 tangential_distort(float2 uv, constant Parameters& params) {
// Fixed-point: xu_{n+1} = xu_n + (xd - distort_forward(xu_n))
float2 d = uv - params.center;
float2 scale = float2(params.aspect.x, params.aspect.y);
float2 xd = d * scale;

float x = xd.x, y = xd.y;
float r2 = dot(xd, xd);
float x2 = x*x, y2 = y*y, xy = x*y;
float2 tang = float2(2.0 * params.p1 * xy + params.p2 * (r2 + 2.0 * x2),
params.p1 * (r2 + 2.0 * y2) + 2.0*params.p2 * xy);
float2 xu = xd - tang;

return params.center + xu / scale;
}


https://www.desmos.com/3d/urwkdxvkoi
Desmos Brown-Conrady (tangential) Explore math with our beautiful, free online graphing calculator. Graph functions, plot points, visualize algebraic equations, add sliders, animate graphs, and more.
  • ✍ 4
More from @coding_with_kangaroo
  1. Oct 7, 2026Пополнение библиотеки. Буду расширять область, а то все картинки да картинки
  2. Oct 7, 2026Post #823
  3. Oct 7, 2026А вот еще вспомнил про pixator и решил затащить поддержку видео
  4. Oct 6, 2026Еще вот так умеет
  5. Oct 6, 2026Оно даже работает
  6. Oct 6, 2026Спагетти-архитектура Я знаю, что можно красиво и аккуратно, но ножек в наличии нет, а с ал…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →