片段着色器 运行 是否在屏幕外?

Is fragment shader run at out of screen?

我使用的是 webgl 1.0.

我想知道如果我将顶点设置在 -1 ~ 1 范围之外,片段着色器 运行 是否在屏幕外(也就是帧缓冲区)。

[示例]
如果我像下面这样设置。
绘制类型:gl.LINES
顶点:[-100000,-100000, 100000, 100000] <--- 1 条线由 2 点

我觉得我设置的显示结果是一样的
顶点:[-1,-1, 1, 1]
(两个结果都是从左下角到右上角显示 1 条直线。)

我想知道第一个例子是由大量 运行ning 片段着色器导致的性能下降。

不,片段着色器只处理视图体积中的片段。其他片段被剪裁。

Primitives are clipped in the Vertex post-processing阶段。

Clipping 规则应用于剪辑 space 坐标 (gl_Position):

-.w <= .x, .y, .z <= .w

片段处理在 Rasterization 之后完成。
另见 Rendering Pipeline Overview