Как сказал TheBuzzSaw, это зависит от многих вещей, включая реализацию растрированной графики по сравнению с векторной графикой.
Вот некоторые высокопроизводительные методы векторной графики, которые визуализируются с использованием традиционных методов растеризации.
Loop и Blinn показывают, как визуализировать квадратичную кривую Безье векторной графики, отрисовывая один треугольник и используя координаты текстуры в пиксельном шейдере, чтобы указать, находится ли пиксель над или под кривой:
http: //www.msr-waypoint. сеть / EN-US / гм / люди / cloop / LoopBlinn05.pdf
Основная идея заключается в том, что вы устанавливаете свои угловые позиции треугольников в 3 позиции контрольной точки, а координаты текстуры в каждом углу задаете равными (0,0), (0,5,0) и (1,1) соответственно. В вашем шейдере, если интерполированная текстурная координата (x * xy) <0, пиксель находится под кривой, иначе он выше кривой.
Вы можете увидеть его ложную реализацию здесь:
https://www.shadertoy.com/view/4tj3Dy
Что касается второго метода, вот метод от Valve, где расстояния до фигуры сохраняются в текстуре, а не в пиксельных данных, что позволяет рисовать векторную графику с использованием выборки текстуры. Декодирование настолько простое, что может быть реализовано даже на оборудовании с фиксированной функцией, используя только альфа-тест!
http://www.valvesoftware.com/publications/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf
Чтобы дать вам представление о том, насколько хорошо работает вторая техника, это изображение усов размером 1024x768 было сгенерировано из исходного изображения размером 64x32, которое имело один цветной канал! (иначе 2KB без сжатия)
Я также написал кое-что об этом в своем блоге:
http://blog.demofox.org/2014/06/30/distance-field-textures/
Вот пример кода OpenCL, чтобы показать, насколько это просто:
float alpha = read_imagef(tex3dIn, g_textureSampler, textureCoords).w;
float3 color = (alpha < 0.5f) ? (float3)(1.0f) : (float3)(0.0f);
Оба эти метода очень быстрые и немного стирают грань между векторной и растеризованной графикой. Они визуализируются с использованием методов растеризации, но имеют свойства масштабирования / масштабирования, такие как методы векторной графики.