文本和矢量艺术的快速光栅化
假设有很多矢量形状(确定形状边界的贝塞尔曲线)。例如,一页上全是小字母。
创建位图的最快方法是什么?
我几年前曾经看过一个演示(现在找不到了),其中一些人使用 GPU 来光栅化矢量艺术 - 他们能够实时放大/缩小页面。贝塞尔曲线形状的 GPU 渲染当前状态如何?真的很快吗?比CPU还快?常见和不常见的算法有哪些?有没有这样的开源库?它使用什么语言?那么OpenGL呢?
Suppose there is a lot of vector shapes (Bezier curves which determine the boundary of a shape). For example a page full of tiny letters.
What is the fastest way to create a bitmap out of it?
I once saw a demo several years ago (can't find it now) where some guys used GPU to rasterize the vector art - they were able to zoom in/out of the page in real-time. What is the current state of GPU rendering of Bezier shapes? Is it really fast? Faster than CPU? What are the common and not-so-common algorithms? Is there any open source library for such things? What language does it use? What about OpenGL?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
NVIDIA 现在有一个 OpenGL 扩展可以做到这一点。我猜它是基于 Microsoft RAVG 论文。
http://developer.nvidia.com/nv-path-rendering
NVIDIA has now an extension for OpenGL that can do this stuff. I guess it's based on the Microsoft RAVG paper.
http://developer.nvidia.com/nv-path-rendering
也许您指的是以下论文之一:
一般矢量图形的随机访问渲染 (2008 )(PDF)
使用可编程图形硬件进行与分辨率无关的曲线渲染 (2005) (PDF)
我认为这些几乎是最先进的。
Perhaps you mean one of these papers:
Random-access rendering of general vector graphics (2008) (PDF)
Resolution independent curve rendering using programmable graphics hardware (2005) (PDF)
I think these are pretty much the state of the art.
会是这个吗?
http://alice.loria.fr/index.php/publications .html?Paper=VTM@2005
和几年前差不多。曲面细分着色器确实有帮助,但当涉及到没有中间曲面细分阶段的光栅化曲线时,片段着色器中的工作就很繁重了。
Could it have been this one?
http://alice.loria.fr/index.php/publications.html?Paper=VTM@2005
About the same like some years ago. Tesselation shaders do help, but when it comes down to rasterizing curves without a intermediary tesselation stage, it's grunt work in the fragment shader.