<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Graphics on PlumePHP</title><link>https://plumephp.com/categories/graphics/</link><description>Recent content in Graphics on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Tue, 01 Sep 2026 12:00:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/categories/graphics/index.xml" rel="self" type="application/rss+xml"/><item><title>Vulkan 描述符集与着色器编程：资源绑定与 SPIR-V 实战</title><link>https://plumephp.com/vulkan-descriptor-shader/</link><pubDate>Tue, 01 Sep 2026 00:00:00 +0000</pubDate><guid>https://plumephp.com/vulkan-descriptor-shader/</guid><description>&lt;p&gt;资源绑定是现代图形 API 中最核心的操作之一。OpenGL 的隐式状态机隐藏了太多细节，开发者只需调用 &lt;code&gt;glUniformMatrix4fv&lt;/code&gt; 就能将数据送入着色器，但背后驱动层做了大量隐式工作。Vulkan 将这一切暴露出来，以显式控制换取极致性能。理解 &lt;strong&gt;Descriptor Set&lt;/strong&gt;（描述符集）的设计哲学，是掌握 Vulkan 编程的分水岭。&lt;/p&gt;</description></item><item><title>OpenGL Core Profile 与管线：现代OpenGL编程指南</title><link>https://plumephp.com/opengl-core-profile-pipeline/</link><pubDate>Tue, 01 Sep 2026 12:00:00 +0800</pubDate><guid>https://plumephp.com/opengl-core-profile-pipeline/</guid><description>&lt;p&gt;OpenGL 是计算机图形学领域最历史悠久、应用最广泛的跨平台图形 API 之一。然而，许多开发者对 OpenGL 的印象仍然停留在二十年前——&lt;code&gt;glBegin&lt;/code&gt;/&lt;code&gt;glEnd&lt;/code&gt; 的即时模式、&lt;code&gt;glVertex3f&lt;/code&gt; 的固定管线顶点提交、以及 &lt;code&gt;glMatrixMode(GL_PROJECTION)&lt;/code&gt; 的矩阵栈操作。&lt;strong&gt;这种基于 OpenGL 1.x 固定管线（Fixed Pipeline）的编程方式早已被淘汰&lt;/strong&gt;。自 OpenGL 3.2 引入 Core Profile 以来，现代 OpenGL 已经演变为一套以着色器为核心、以顶点缓冲对象为数据载体、以显式状态管理为特征的渲染 API。&lt;/p&gt;</description></item><item><title>OpenGL VAO/VBO/EBO 与顶点管理：高效顶点数据传输</title><link>https://plumephp.com/opengl-vertex-buffer-management/</link><pubDate>Tue, 01 Sep 2026 12:00:00 +0800</pubDate><guid>https://plumephp.com/opengl-vertex-buffer-management/</guid><description>&lt;h2 id="概述"&gt;概述&lt;/h2&gt;
&lt;p&gt;在现代 OpenGL（Core Profile，3.3+）中，顶点数据的组织与传输是图形渲染管线中最基础也最核心的环节。从最初的 &lt;code&gt;glBegin&lt;/code&gt;/&lt;code&gt;glEnd&lt;/code&gt; 即时模式到现代基于缓冲对象（Buffer Object）的状态机驱动方式，OpenGL 的顶点管理经历了彻底的变革。本文将系统性地深入解析 &lt;strong&gt;VAO（Vertex Array Object）、VBO（Vertex Buffer Object）、EBO（Element Buffer Object）&lt;/strong&gt; 三大核心对象的内部机制，并覆盖 &lt;code&gt;glVertexAttribPointer&lt;/code&gt; 顶点属性布局、Interleaved 与 Separate 存储策略、Buffer Usage Hint 语义、动态顶点更新、Instanced Rendering、Vertex Pulling、Uniform Buffer Object（UBO）以及 Multi-Draw Indirect 等高级主题。&lt;/p&gt;</description></item><item><title>Vulkan 纹理与帧缓冲：从加载到渲染的完整流程</title><link>https://plumephp.com/vulkan-texture-framebuffer/</link><pubDate>Tue, 01 Sep 2026 11:00:00 +0800</pubDate><guid>https://plumephp.com/vulkan-texture-framebuffer/</guid><description>&lt;p&gt;纹理与帧缓冲是图形渲染管线中最基础也最关键的两个数据载体。理解Vulkan在这两个领域的实现细节，对于构建高性能渲染引擎至关重要。&lt;/p&gt;
&lt;h2 id="一image-对象的完整创建流程"&gt;一、Image 对象的完整创建流程&lt;/h2&gt;
&lt;p&gt;Vulkan中的Image对象承载了GPU显存中的图像数据。与Buffer不同，Image支持多维度的内存布局、多种采样格式以及丰富的使用场景。创建Image时需要指定一系列关键参数，这些参数共同决定了Image在GPU内部的存储方式和可用性。&lt;/p&gt;</description></item><item><title>GLSL 着色器编程：从入门到高级技巧</title><link>https://plumephp.com/opengl-glsl-shader-programming/</link><pubDate>Tue, 01 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/opengl-glsl-shader-programming/</guid><description>系统讲解 GLSL 着色器编程全栈：从基础语法、顶点/片段着色器，到几何/计算/细分着色器，深入 Uniform Block、SSBO、SPIR-V 互转，覆盖 OpenGL 3.3/4.5/ES 3.0 核心差异。</description></item><item><title>Vulkan 初始化与渲染管线：从零画一个三角形</title><link>https://plumephp.com/vulkan-init-rendering-pipeline/</link><pubDate>Tue, 01 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/vulkan-init-rendering-pipeline/</guid><description>&lt;p&gt;Vulkan 是 Khronos 推出的新一代低开销、跨平台图形与计算 API。与 OpenGL 的隐式驱动管理不同，Vulkan 将内存分配、同步控制、命令提交等职责完全交给开发者，换来的是对 GPU 硬件的极致掌控与多线程友好特性。然而，这种显式设计也意味着极高的初始化复杂度 —— 从一个空白的操作系统窗口到屏幕上出现一个简单三角形，需要跨越二十余个 API 调用步骤。本文将完整拆解这一过程，覆盖从 Instance 创建到 Swap Chain 呈现的全链路，并附带一个内嵌 SPIR-V 着色器字节码的完整可运行 C++ 程序，编译后不依赖任何外部着色器文件即可直接渲染出彩色三角形。&lt;/p&gt;</description></item><item><title>Vulkan 命令缓冲与同步机制深度解析</title><link>https://plumephp.com/vulkan-command-buffer-synchronization/</link><pubDate>Tue, 01 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/vulkan-command-buffer-synchronization/</guid><description>&lt;p&gt;Vulkan 作为现代低开销图形 API，将同步职责从驱动层完全移交给了开发者。与 OpenGL 的隐式同步不同，Vulkan 要求你显式地管理命令缓冲的生命周期、GPU 执行顺序以及内存可见性。这篇文章将系统性地拆解 Vulkan 同步体系中的每一个核心组件，从 Command Pool 的分配策略到 Timeline Semaphore 的高级用法，帮助你彻底掌握这块最难啃的骨头。&lt;/p&gt;</description></item><item><title>Vulkan 高级渲染技术：延迟渲染、光追与计算着色器</title><link>https://plumephp.com/vulkan-advanced-rendering/</link><pubDate>Tue, 01 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/vulkan-advanced-rendering/</guid><description>深入解析 Vulkan 高级渲染管线：从 Deferred Rendering 到实时光追，涵盖 Shadow Map、SSAO、Compute Shader、Mesh Shader 与后处理特效，构建现代图形引擎的核心技术栈。</description></item></channel></rss>