news 2026/5/31 8:50:01

1992 年《Comanche》画面领先时代 3 年,揭秘体素空间引擎渲染算法及优化技巧

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
1992 年《Comanche》画面领先时代 3 年,揭秘体素空间引擎渲染算法及优化技巧

历史

让我们回到 1992 年。当时的 CPU 速度比现在慢 1000 倍,而且通过 GPU 进行加速的技术要么不为人知,要么成本高昂。3D 游戏完全依靠 CPU 进行计算,渲染引擎只能渲染单一颜色的填充多边形。就在这一年,NovaLogic 发布了游戏《Comanche》。在当时,这款游戏的画面令人惊叹,其画面水平领先了那个时代 3 年。你可以看到更多的细节,比如山脉和山谷的纹理,而且首次出现了精细的阴影效果。当然,画面是有像素感的,但那个年代的所有游戏都是如此。

渲染算法

《Comanche》采用了一种名为体素空间的技术,其原理与光线投射类似。因此,体素空间引擎是一种 2.5D 引擎,它并不具备常规 3D 引擎所拥有的全部自由度。

高度图和颜色图

表示地形最简单的方法是使用高度图和颜色图。在游戏《Comanche》中,使用了一个 1024 * 1024 的单字节高度图和一个 1024 * 1024 的单字节颜色图,你可以在本网站下载这些地图。这些地图是周期性的,这种地图将地形限制为“地图上每个位置只有一个高度”,像建筑物或树木这样的复杂几何形状无法用这种方式表示。不过,颜色图的一个巨大优势是,它已经包含了阴影效果,体素空间引擎只需直接使用这些颜色,无需在渲染过程中计算光照。

基本算法

对于 3D 引擎来说,体素空间引擎的渲染算法出奇地简单。它通过对高度图和颜色图进行光栅化处理,然后绘制垂直线。具体步骤如下:清屏;为了保证遮挡效果,从后往前进行渲染,这就是所谓的画家算法;确定地图上与观察者视距相同的线,同时考虑视野范围和透视投影(物体越远看起来越小);对这条线进行光栅化处理,使其与屏幕的列数相匹配;从二维地图中获取与线段对应的高度和颜色;对高度坐标进行透视投影处理;根据透视投影得到的高度,绘制具有相应颜色的垂直线。该核心算法的最简形式仅包含几行代码(Python 语法)。

添加旋转功能

使用上述算法,我们只能朝北看。若要改变视角,需要多写几行代码来旋转坐标。

提升性能

当然,有很多技巧可以提高性能。可以从前往后绘制,而不是从后往前。这样做的好处是,由于遮挡效果,不必每次都将线绘制到屏幕底部。不过,为了保证遮挡效果,需要一个额外的 y 缓冲区,用于存储每列的最高 y 位置。因为是从前往后绘制,下一行的可见部分只会比之前绘制的最高线更高。采用细节层次技术,在近处渲染更多细节,远处则减少细节。

链接

- [网页项目演示](https://s-macke.github.io/VoxelSpace/VoxelSpace.html) 页面
- [体素地形引擎介绍](https://web.archive.org/web/20131113094653/http://www.codermind.com/articles/Voxel-terrain-engine-building-the-terrain.html)
- [个人网站](http://www.simulationcorner.net)

地图

- [颜色图](/VoxelSpace/maps/C1W.png),[高度图](/VoxelSpace/maps/D1.png)
- [颜色图](/VoxelSpace/maps/C2W.png),[高度图](/VoxelSpace/maps/D2.png)
- [颜色图](/VoxelSpace/maps/C3.png),[高度图](/VoxelSpace/maps/D3.png)
- [颜色图](/VoxelSpace/maps/C4.png),[高度图](/VoxelSpace/maps/D4.png)
- [颜色图](/VoxelSpace/maps/C5W.png),[高度图](/VoxelSpace/maps/D5.png)
- [颜色图](/VoxelSpace/maps/C6W.png),[高度图](/VoxelSpace/maps/D6.png)
- [颜色图](/VoxelSpace/maps/C7W.png),[高度图](/VoxelSpace/maps/D7.png)
- [颜色图](/VoxelSpace/maps/C8.png),[高度图](/VoxelSpace/maps/D6.png)
- [颜色图](/VoxelSpace/maps/C9W.png),[高度图](/VoxelSpace/maps/D9.png)
- [颜色图](/VoxelSpace/maps/C10W.png),[高度图](/VoxelSpace/maps/D10.png)
- [颜色图](/VoxelSpace/maps/C11W.png),[高度图](/VoxelSpace/maps/D11.png)
- [颜色图](/VoxelSpace/maps/C12W.png),[高度图](/VoxelSpace/maps/D11.png)
- [颜色图](/VoxelSpace/maps/C13.png),[高度图](/VoxelSpace/maps/D13.png)
- [颜色图](/VoxelSpace/maps/C14.png),[高度图](/VoxelSpace/maps/D14.png)
- [颜色图](/VoxelSpace/maps/C14W.png),[高度图](/VoxelSpace/maps/D14.png)
- [颜色图](/VoxelSpace/maps/C15.png),[高度图](/VoxelSpace/maps/D15.png)
- [颜色图](/VoxelSpace/maps/C16W.png),[高度图](/VoxelSpace/maps/D16.png)
- [颜色图](/VoxelSpace/maps/C17W.png),[高度图](/VoxelSpace/maps/D17.png)
- [颜色图](/VoxelSpace/maps/C18W.png),[高度图](/VoxelSpace/maps/D18.png)
- [颜色图](/VoxelSpace/maps/C19W.png),[高度图](/VoxelSpace/maps/D19.png)
- [颜色图](/VoxelSpace/maps/C20W.png),[高度图](/VoxelSpace/maps/D20.png)
- [颜色图](/VoxelSpace/maps/C21.png),[高度图](/VoxelSpace/maps/D21.png)
- [颜色图](/VoxelSpace/maps/C22W.png),[高度图](/VoxelSpace/maps/D22.png)
- [颜色图](/VoxelSpace/maps/C23W.png),[高度图](/VoxelSpace/maps/D21.png)
- [颜色图](/VoxelSpace/maps/C24W.png),[高度图](/VoxelSpace/maps/D24.png)
- [颜色图](/VoxelSpace/maps/C25W.png),[高度图](/VoxelSpace/maps/D25.png)
- [颜色图](/VoxelSpace/maps/C26W.png),[高度图](/VoxelSpace/maps/D18.png)
- [颜色图](/VoxelSpace/maps/C27W.png),[高度图](/VoxelSpace/maps/D15.png)
- [颜色图](/VoxelSpace/maps/C28W.png),[高度图](/VoxelSpace/maps/D25.png)
- [颜色图](/VoxelSpace/maps/C29W.png),[高度图](/VoxelSpace/maps/D16.png)

许可

该仓库中的软件部分遵循 MIT 许可协议。如需了解更多信息,请阅读许可文件。请记住,体素空间技术在某些国家可能仍受 [专利](https://patents.justia.com/assignee/novalogic-inc) 保护。颜色图和高度图是从游戏《Comanche》逆向工程而来,因此不在许可范围内。本网站是开源的。[改进此页面](https://github.com/s-macke/VoxelSpace/edit/gh-pages/README.md)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/31 8:42:42

消费级EEG硬件与视觉认知解码技术解析

1. 低成本EEG硬件的崛起与视觉认知解码新机遇 作为一名长期从事脑机接口研究的工程师,我见证了EEG技术从实验室走向消费市场的全过程。传统研究级EEG系统(如64通道ActiChamp)虽然能提供高质量的神经信号,但其高昂的价格&#xff…

作者头像 李华
网站建设 2026/5/31 8:40:51

快手图片去水印软件多端使用方法与不同场景下完整实操指引

在日常浏览、素材整理过程中,常会遇到快手图片带有平台水印的情况,水印会影响图片整体观感与后续使用。结合 2026 年当下主流的使用方式,本篇为系统梳理快手图片去水印软件的全品类使用方式、操作流程、适配人群以及对应场景,帮助…

作者头像 李华
网站建设 2026/5/31 8:40:48

豆包如何去水印全场景官方功能与第三方合规解析方法汇总

在使用豆包AI生成图片、视频素材时,水印是影响素材使用的主要问题之一。为满足用户高清保存、正常使用素材的需求,本文系统讲解豆包去水印方法,全面拆解官方原生功能与合规第三方工具操作流程,同时详细介绍豆包去水印功能介绍&…

作者头像 李华