PICO-8调色板及颜色映射算法
这段代码定义了PICO-8游戏机的16色调色板,并提供了多种颜色距离计算方法(欧几里得距离、加权RGB距离、HyAB距离及其变体),以及一个将图像像素映射到最接近的调色板颜色的函数。它利用NumPy高效地处理颜色数据,并允许用户自定义距离函数以实现不同的颜色匹配策略。 这对于像素艺术游戏开发和图像颜色量化非常实用。
阅读更多
这段代码定义了PICO-8游戏机的16色调色板,并提供了多种颜色距离计算方法(欧几里得距离、加权RGB距离、HyAB距离及其变体),以及一个将图像像素映射到最接近的调色板颜色的函数。它利用NumPy高效地处理颜色数据,并允许用户自定义距离函数以实现不同的颜色匹配策略。 这对于像素艺术游戏开发和图像颜色量化非常实用。
阅读更多
本文介绍了作者在任天堂64上实现实时光照和法线贴图的惊人技术。通过巧妙地利用调色板纹理和CPU端着色,作者绕过了N64硬件的限制,实现了令人印象深刻的视觉效果。该技术涉及将漫反射和法线信息压缩到共享调色板中,并在运行时通过CPU更新调色板以模拟光照效果。虽然该方法存在一些局限性,例如不支持点光源和阴影,但其创新性令人瞩目,为N64平台上的图形渲染开辟了新的可能性。
阅读更多
本文是“解开 PVS 神秘面纱”系列的第一篇,探讨了 Quake 游戏引擎如何通过预计算可见性集 (PVS) 来优化渲染性能。在 90 年代中期,软件渲染的局限性使得减少过度绘制成为关键。Quake 使用门户系统和 PVS 来解决这个问题。门户将世界划分为多个单元,游戏引擎只渲染摄像机可见的单元及其通过门户可见的其他单元。PVS 算法在游戏地图预编译阶段计算每个单元可见的其他单元列表,从而在运行时避免了复杂的可见性测试,显著提高了渲染效率。本文深入探讨了 PVS 算法的实现细节,包括门户的定义、BSP 树的作用以及算法的三步流程:基准可见性、完整可见性以及结果整合。
阅读更多
本文探讨了如何缩放像素艺术游戏以获得最佳的复古外观。作者分析了CRT显示器和VGA连接的特性,指出水平方向的轻微模糊可以模拟这些旧式显示技术的效果。文章建议采用垂直方向最近邻整数缩放,然后水平方向线性缩放的方法,并通过对比不同缩放方法的效果图以及实际的VGA连接实验,证明了该方法的有效性。该方法尤其适用于将低分辨率游戏放大到较高分辨率的场景,例如将320x200分辨率的游戏画面放大到现代显示器上。
阅读更多
本文回顾了经典3D游戏中使用的各种阴影技术,从简单的2D阴影图像、斑点阴影到更复杂的平面阴影、投影纹理阴影和阴影贴图。文章详细介绍了每种技术的实现方式、优缺点以及应用案例,例如《超级马里奥64》的斑点阴影、《毁灭战士3》的模板阴影和《半条命2》的阴影贴图等。还探讨了现代游戏中的阴影技术,包括级联阴影贴图、光照探针和光线追踪阴影,并指出即使是光线追踪也需要进行近似处理。
阅读更多