<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>GPU on PlumePHP</title><link>https://plumephp.com/tags/gpu/</link><description>Recent content in GPU 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/tags/gpu/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>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>GPU 架构与并行计算：从 SIMT 到 GPGPU 编程</title><link>https://plumephp.com/gpu-architecture-compute/</link><pubDate>Tue, 01 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/gpu-architecture-compute/</guid><description>本文系统讲解 GPU 的 SIMT 执行模型、Warp / Wavefront 调度机制、完整显存层次（寄存器 → Shared Memory → L1 → L2 → 全局显存），深入分析 Warp Divergence、Occupancy、Memory Coalescing 等性能瓶颈，并对比 Vulkan Compute Shader 与 CUDA 两种 GPGPU 编程范式，涵盖归约、前缀和、矩阵乘法等经典并行算法实现。</description></item><item><title>Vulkan 内存与资源管理：显式控制的性能艺术</title><link>https://plumephp.com/vulkan-memory-resources/</link><pubDate>Tue, 01 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/vulkan-memory-resources/</guid><description>&lt;p&gt;在 Vulkan 的显式控制哲学下，开发者需要直接面对 GPU 内存模型。与 OpenGL 等隐藏内存分配细节的 API 不同，Vulkan 要求开发者显式管理 &lt;code&gt;Device Memory&lt;/code&gt;、&lt;code&gt;Buffer&lt;/code&gt;、&lt;code&gt;Image&lt;/code&gt; 以及它们之间的绑定关系。这种设计虽然增加了代码复杂度，却为极致性能优化打开了大门。本文将深入探讨 Vulkan 的内存架构，从底层物理内存堆到高层 VMA 封装，帮助你掌握这门性能艺术。&lt;/p&gt;</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 架构设计概述：从零理解现代图形API的设计理念</title><link>https://plumephp.com/vulkan-overview-architecture/</link><pubDate>Tue, 01 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/vulkan-overview-architecture/</guid><description>&lt;p&gt;Vulkan 是 Khronos Group 推出的新一代底层图形与计算 API，用显式控制替代驱动的隐式魔法，让应用层直接管理资源、同步与调度，从而在多核 CPU 和复杂 GPU 上榨取极限性能。&lt;/p&gt;</description></item><item><title>WebGPU vs OpenGL vs Vulkan vs Metal vs DX12：现代图形API选型指南</title><link>https://plumephp.com/graphics-api-modern-comparison/</link><pubDate>Tue, 01 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/graphics-api-modern-comparison/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;一句话总结&lt;/strong&gt;：如果你在 2026 年启动一个新图形项目，WebGPU 是跨平台/Web 场景的首选；Vulkan 是追求极致性能引擎的答案；DirectX 12 锁定 Windows/Xbox；Metal 专注 Apple 生态；OpenGL 则逐渐成为&amp;quot;兼容遗留&amp;quot;的标签。&lt;/p&gt;</description></item><item><title>图形学与 GPU 编程专题: Vulkan、OpenGL、WebGPU 与着色器深度实践</title><link>https://plumephp.com/posts/graphics/</link><pubDate>Tue, 01 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/posts/graphics/</guid><description>&lt;p&gt;计算机图形学与 GPU 编程是现代游戏引擎、虚拟现实、科学可视化、影视渲染和 AI 推理加速的核心技术领域。本专题系统覆盖 Vulkan、OpenGL、WebGPU 三大主流图形 API，从渲染管线架构、着色器编程语法到 GPU 并行计算模型，再到图形学数学基础与跨平台 API 选型，构建完整的图形渲染知识图谱。无论你是游戏开发者、图形学工程师，还是希望深入理解现代 GPU 硬件与渲染管线的高级开发者，本专题都能提供从入门到进阶的系统性指南。&lt;/p&gt;</description></item><item><title>图形学数学基础：向量、矩阵、坐标变换与投影推导</title><link>https://plumephp.com/graphics-math-foundations/</link><pubDate>Tue, 01 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/graphics-math-foundations/</guid><description>&lt;p&gt;图形学的本质是用数学描述三维世界并在二维屏幕上呈现。无论是 OpenGL、Vulkan 还是 DirectX，底层都依赖同一套线性代数体系。本文从向量与矩阵基础出发，完整推导坐标变换链、投影矩阵、四元数旋转以及法线变换等核心内容，并附带 C++ 与 GLSL 代码实现。&lt;/p&gt;</description></item><item><title>Godot 移动端导出与性能：从编辑器流畅到真机稳定</title><link>https://plumephp.com/godot-mobile-export-performance-2026/</link><pubDate>Mon, 18 May 2026 11:45:00 +0800</pubDate><guid>https://plumephp.com/godot-mobile-export-performance-2026/</guid><description>&lt;h2 id="编辑器里流畅不代表手机上稳定"&gt;编辑器里流畅不代表手机上稳定&lt;/h2&gt;
&lt;p&gt;Godot 在桌面编辑器里跑得很顺，不代表导出到手机也顺。移动端有完全不同的约束：GPU 带宽、纹理格式、内存上限、发热降频、后台生命周期、触控延迟、安装包大小。很多问题只有真机导出后才暴露：第一帧黑屏太久，某些材质变粉，低端机切场景崩溃，玩十分钟后帧率下降。&lt;/p&gt;</description></item><item><title>Godot 可见性裁剪：让离屏对象安静下来</title><link>https://plumephp.com/godot-visibility-notifier-culling-2025/</link><pubDate>Sun, 09 Nov 2025 10:05:00 +0800</pubDate><guid>https://plumephp.com/godot-visibility-notifier-culling-2025/</guid><description>&lt;h2 id="背景可见性裁剪为什么会变成真实问题"&gt;背景：可见性裁剪为什么会变成真实问题&lt;/h2&gt;
&lt;p&gt;横版关卡做压力测试时，帧率掉得很奇怪。屏幕里只有三四个敌人，Profiler 却显示 &lt;code&gt;_process&lt;/code&gt; 调用数量接近两百。原因是关卡设计把整张地图的机关、敌人、环境动画都提前放进场景树，镜头外的风车仍然在转，远处敌人仍然寻路，离屏粒子还在模拟。玩家看不见，但 CPU 和 GPU 都在付账。美术一开始以为只能靠减少对象数量解决，后来我们用 Godot 的可见性通知、处理开关和分层加载，把同一张图的低端机帧率稳定了下来。&lt;/p&gt;</description></item></channel></rss>