[#] CPU vs GPU. Distance field
habrabot(difrex,1) — All
2014-12-13 09:30:03


![][1]Привет всем. Я уже однажды писал про Distance Field, и приводил реализацию «эвристическим» кодом дающую неплохую скорость: [habrahabr.ru/post/186482/][2]

#### Зачем он нужен?

DField можно применять:

* Для значительного повышения качества шрифтов
* Для эффектов например горения контура. Один из эффектов я приводил в своей предыдущей статье
* Для эффекта «metaballs» но в 2д и для любых сложных шейпов. (возможно я когда-нибудь приведу пример реализации этого эффекта)
* А в данный момент DField мне нужен для качественного сглаживания углов и удаления мелких деталей.

И если в первых двух случаях мы можем заранее вычислить DField, то для других эффектов нам нужно просчитывать его в реальном времени. В статье будет рассмотрен наиболее популярный, я бы сказал классический Chamfer distance (CDA) с кучей картинок, объясняющих принцип его работы, а так же рассмотрен двухпроходный алгоритм на GPU. Оба алгоритма [реализованы в демонстрационных программах на FPC][3]. [Читать дальше →][4]

[1]: //habrastorage.org/files/699/ff7/4e5/699ff74e5715436c9b7ee44a814690e2.png
[2]: http://habrahabr.ru/post/186482/
[3]: https://sourceforge.net/projects/dfsamples/
[4]: http://habrahabr.ru/post/245729/#habracut