SyMind / learning

路漫漫其修远兮,吾将上下而求索。
9 stars 1 forks source link

画线条很难 #38

Open SyMind opened 2 years ago

SyMind commented 2 years ago

原文:https://mattdesl.svbtle.com/drawing-lines-is-hard

在 OpenGL,尤其是在 WebGL,要画好线条是非常困难的。在这里,我探索了一些不同的 2D 和3D 线条渲染技术,每个都带有一个小例子。

例子的源码在这里:https://github.com/mattdesl/webgl-lines

Line 基原

WebGL 包含这些线段 gl.LINESgl.LINE_STRIPgl.LINE_LOOP。听起来不错是么?但并不是。这里有一些问题:

三角剖分线条

一种常见方法是将一条线拆分为由三角形组成的条带,这使得可以最大程度地控制直线。

它的一种典型实现方法是获取路径上每个点的法线,并在两侧向外扩展一半厚度。

有以下选择进行反走样:

扩展定点着色器

屏幕空间投影线

上一个方案对于 2D 线条效果很好,但可能不适合在 3D 空间中的设计需求。