<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Cpp]]></title><description><![CDATA[Obsidian digital garden]]></description><link>http://github.com/dylang/node-rss</link><image><url>site-lib/media/favicon.png</url><title>Cpp</title><link></link></image><generator>Webpage HTML Export plugin for Obsidian</generator><lastBuildDate>Mon, 26 Oct 2026 20:14:45 GMT</lastBuildDate><atom:link href="site-lib/rss.xml" rel="self" type="application/rss+xml"/><pubDate>Mon, 26 Oct 2026 20:14:40 GMT</pubDate><ttl>60</ttl><dc:creator></dc:creator><item><title><![CDATA[pipeline]]></title><description><![CDATA[几何处理阶段（geometry processing）计算顶点的位置计算的结果会被送到光栅化进行插值计算那些开发人员想要作为顶点数据进行输出的任何参数，例如法线（normal）和纹理坐标（texture coordinate）实现 MVP 变换后，会对位于标准立方体外的顶点进行裁剪曲面细分（tessellation）：为一个曲面生成数量合适的三角形，兼顾质量和效率几何着色器（geometry shader）：对图元（不是单个顶点）进行扩增、丢弃等操作。为近处的物体增加更多的三角形，确保近处物体的细节质量更高选择将这些处理好的数据输入到一个缓冲区中，而不是将其直接输入到渲染管线的后续部分，可以让这些数据被 CPU 读回使用或被GPU后续的步骤使用将完全位于可视空间内部的图元原样传递给下一阶段裁剪之后会生成新的顶点，用来替代可视空间之外的那个顶点，新顶点位于线段和可视空间的交点处对于部分位于可视空间内部，部分位于可视空间外部的图元进行额外的裁剪工作使用投影变换生成的四维齐次坐标来完成剪切操作，由于齐次坐标的插值通常不是线性的，这里会用到透视除法（perspective division）将完全位于可视空间之外的图元舍弃，不传递给下一阶段例如，原本的坐标是 ,视口宽 800 像素、高 600 像素，经过屏幕映射后输出：。
单个方向上，0 号像素的范围是 , k 号像素的范围是 （注意我们对像素的编号从 0 开始数，0 号像素是第一个像素）。
因此，此坐标会对应横向上 540 号像素，纵向上 376 号像素。图元进入这一阶段时，坐标还是三维的。 其中 坐标和 坐标会被转换为屏幕坐标（screen coordinate）， 坐标会被映射到 的范围中（OpenGL里是 ）对图元进行裁剪操作流式输出（stream out）可选的一些对顶点的处理顶点着色（vertex shading）有一些任务会使用计算着色器（compute shader），运行在 GPU 上。由应用程序进行驱动的，它在软件中进行实现，通常运行在 CPU 上应用阶段（Application）光栅化阶段（rasterization）被处理好的待渲染图元（如三角形）光栅化的核心问题：有哪些像素被这个图元覆盖屏幕映射（screen mapping）三角形遍历（triangle traversal）：对每个被三角形覆盖的像素进行逐个检查，并生成一个对应的片元（fragment）图元装配（primitive assembly）：把顶点着色器输出的顶点，按照指定的图元拓扑（点 / 线 / 三角）打包组装成一个个独立图元会根据三角形三个顶点的属性进行插值，获得每个片元的属性片元着色（fragment shading）：通过片元着色器（像素着色器）设置每个片元的颜色值合并（merging）：进行各项测试（模版测试、深度测试等）与混合（blending），并把内容写入帧缓冲片元处理阶段（fragment processing）片元（位于三角形内部的像素）几何图元（点、线、三角形）MVP 矩阵可能在 CPU 里计算，也可能放到 GPU 里计算从这个角度来讲，帧缓冲（frame buffer）就是颜色、深度、模版等各个缓冲区的总和MSAA（多重采样处理）解析如果开了也会在这里进行]]></description><link>pipeline.html</link><guid isPermaLink="false">cg/pipeline.canvas</guid><pubDate>Mon, 26 Oct 2026 20:08:56 GMT</pubDate></item></channel></rss>