← 全部标签
# 着色器
8 篇页面
页面
图形学像素着色器Pixel Shader像素着色器(OpenGL 里叫片元着色器)对光栅化产生的每个片元运行,用插值后的顶点数据算出颜色,也可以输出不透明度、修改深度或直接丢弃片元。多渲染目标让它一次输出多组数据,催生了延迟着色。它通常只能写自己所在的像素,但能通过 2×2 quad 拿到相邻像素的导数。图形学可编程着色器与 GPU 管线Programmable Shaders & GPU PipelineGPU 把第 2 章的概念管线实现为一组硬件阶段,分为完全可编程、可配置但不可编程、完全固定三类。现代 GPU 采用统一着色器架构:各类着色器共用同一套编程模型和核心,由 GPU 自行分配负载。着色器用 HLSL、GLSL 等类 C 语言编写,输入分为 uniform 和 varying 两类。图形学曲面细分与几何着色器Tessellation & Geometry Shader曲面细分、几何着色器和流输出是顶点着色器之后的三个可选阶段。曲面细分把曲面描述按需生成合适数量的三角形;几何着色器能把图元变成别的图元,但效率不好、实际用得少;流输出把处理后的顶点写回内存以便复用。图形学计算着色器Compute Shader计算着色器是 DirectX 11 引入的一种 GPU 计算方式:它不固定在图形管线的某个位置,但由图形 API 调用,和其他着色器共用统一着色器核心。它暴露了线程组和组内共享内存,最大的优势是能直接处理 GPU 上生成的数据,不用来回传给 CPU。图形学顶点着色器Vertex Shader顶点着色器是程序员直接控制的第一个管线阶段,逐个处理输入顶点,至少要输出顶点在齐次裁剪空间里的位置。它不能创建或删除顶点,顶点之间也不能传递结果,正因如此可以大规模并行。游戏开发 · GodotGodot Shaders 社区库索引Godot Shaders Library Indexgodotshaders.com 是社区驱动的 Godot 着色器库:按 Canvas Item / Spatial / Particle / Sky 等浏览与下载片段。本 wiki 只建索引与抽样要点,不镜像上千源码。游戏开发 · GodotGodot 常见着色技巧对照Common Godot Shader Techniques把社区与教程里反复出现的 2D/3D 技巧对照到图形学概念:溶解、描边、风摆、水面、后处理边缘——实现细节以 raw 抽样与官方为准,公式见图形学页。游戏开发 · GodotGodot 着色器入门Godot Shading LanguageGDShader 是面向 Godot 的 GLSL 简化方言。shadertype 决定用途:canvasitem(2D)、spatial(3D)、particles、sky、fog。材质引用 Shader;uniform 暴露参数。理论公式见图形学页;此处只谈引擎形态与入门路径。