FordPerfect
> Где-то вроде такого
Имплементация inverse bilinear interpolation от некого испанского программиста:
http://iquilezles.org/www/articles/ibilinear/ibilinear.htm
Hybernaculum
> от некого испанского программиста
Этот некий испанский программист уже на том уровне, что его вполне можно называть по нику: iq
MrShoor
> Накидал пример.
во, неплохо. а теперь самое интересное: насколько будут существенными артефакты, если трапеции будут не совсем трапециями? то есть если стороны будут не совсем параллельны?
Hybernaculum
> http://iquilezles.org/www/articles/ibilinear/ibilinear.htm
Hybernaculum
> Когда решите эту проблему
чувак, ты издеваешься что ли? в первом же посте уже это ответили. вопрос уже давным-давно перекочевал в то, как это эффективнее и устойчивее реализовать.
Suslik
> то есть если стороны будут не совсем параллельны?
Артефакты будут. Но не совсем - это насколько?
Вот первый сегмент в ленте был ужат до 0.3:
Ну и артефакт ровно тот же, с которым мы боролись. Поэтому я собственно писал, что у текущего метода ограничение - трапеции.
>испанского
>I was born and grew up in San Sebastián (a.k.a. Donostia), a beautiful city in the Basque Country, somewhere in Europe (Spain).
Не политика.
Тот код фейлит отмапить квадрат сам в себя.
Suslik
> вопрос уже давным-давно перекочевал в то, как это эффективнее и устойчивее
> реализовать
И где ваш пример, пусть не самой эффективной и устойчивой, но реализации или ждёте когда готовый пример дадут для копипаста ?
Ещё в моём коде проблема при b=0, copysign выдаёт рандомный корень.
Нужно отдельно обрабатывать: ответ +sqrt(c/a).
MrShoor
> Артефакты будут. Но не совсем - это насколько?
> Вот первый сегмент в ленте был ужат до 0.3:
мне главное — чтоб разрывов не было в случае небольшого отклонения от трапеции. то есть излом — нормально, но разрывов нет, это круто. думаю, я использую твоё решение.
Suslik
> мне главное — чтоб разрывов не было в случае небольшого отклонения от трапеции
А, ну разрывов там нет, излом да, будет, и чем больше отклонение, тем сильнее излом.
Исправленная версия:
Просьба потестить.
FordPerfect
мне тоже показалось, что после вычисления u, для вычисления v лучше снова решить квадратное уравнение, а не подстановкой, потому что при подстановке повяляется покомпонентная неустойчивость.
На всякий случай, у меня порядок индексов:
C---D | | | | | | A---B
Координаты:
A: u=0, v=0 B: u=1, v=0 C: u=0, v=1 D: u=1, v=1
Suslik
> у меня d3d9 feature level, как-нибудь без геометрических шейдеров. полоска
> очень длинная, несколько десятков тысяч пикселей
На уровне d3d9 можно сделать без изломов и внутри квадов, и на границах, только понадобится кол-во дравколов, соответствующее кол-ву узловых точек. Поэтому я и спрашивал о длине ленты в узловых точках, а не в пикселях.
Mikle
> только понадобится кол-во дравколов, соответствующее кол-ву узловых точек
не, не покатит. точек — несколько тысяч.
Тема в архиве.