Supreme Commander   堂吉参谋   画面   研究
Supreme Commander 堂吉参谋 画面 研究Supreme Commander我自己 定了个译名 翻译 为堂吉参谋 rts 游戏我感觉 也许 此文 还是 有点 用……2015年6月23 日原文地址你的英语水平 如果好的话强烈建议阅读原文原文 对于rts, 俯视图的图形渲染 使用 图形 表达的更加 清晰superme 光辉总督总督湮灭在我心中有一个特别的地方因为它是我玩的第一个RTS; 这是“ CommandConquer”和“ 星际争霸”是90年代末发布的最好的RTS之一。10年后 - 在2007年 - 其继任者被释放堂吉参谋…… 或 超级指挥……随着克里斯·泰勒作为设计师乔纳森·马弗 负责引擎 编程duixiang 此处可能有误……和杰里米·索尔的作曲一些背后的 原 “横扫千军”的 主要人物音乐吧……玩家 的 期望 很高。最高指挥官原来被评论家 和玩家 高度赞扬具有诸如“战略放大”或物理上现实的弹道之类的好功能。所以让我们来看看Moho引擎为 SupCom 提供动力呈现出一个游戏框架由于RenderDoc不支持 DirectX 9 游戏因此使用旧的PIX进行逆向工程。地形结构在我们挖掘框架渲染之前首先要谈谈 SupCom中 如何 构建 地形 以及 使用 哪种 技术。以下是“Finns Revenge”的 概述1对1 地图。左侧是整个地图的 顶视图就像在迷你地图上出现的游戏中一样。下面是从另一个角度看的相同的地图首先从高度图计算地形的几何。高度图 描述了地形的高程。白色表示高空黑色表示低空。对于我们的地图使用513x513单通道图像它代表了游戏中10x10公里的地形。SupCom 堂吉参谋 支持更大的地图 高达81x81公里。高度图镶嵌地形所以 我们 有一个 代表 我们 地形 的 网格。然后游戏应用 与 正常纹理 结合的反照率纹理 来覆盖 所有 这些 多边形。对于每个地图海平面也被指定所以游戏 调制海面下的 像素 的 反照率 颜色 给它们一个 蓝色的色调。线框 地形反照率 正常纹理海平面色调以前下一个123好的所以有 高度的纹理 是很好的 但它的限制 相当 快。我们如何在 地图 上添加 更多 细节 和 变体所使用的技术称为“ 纹理拼接 ”游戏画一系列 附加的 反照率正常 纹理。每个步骤都将 所谓的“层”添加 到 地形。我们已经有层次0具有 原始反照率颜色纹理 的 地形。要应用下一层我们需要一些额外的信息一个“splat map”告诉我们在哪里绘制 新的反照率正常更重要的是 不绘制的地方没有这样一个“地图”也称为 阿尔法地图应用一个新的层次将完全覆盖以前的层次。反照率和正常纹理在 应用于 网格 时 都 具有 自己的 缩放因子。基层0没有Splatmap反照率正常应用层1Splatmap反照率正常应用层2Splatmap反照率正常应用层3Splatmap反照率正常应用层4Splatmap反照率正常以前下一个1234五所以我们 应用层次1,2,3和4每个依赖于3个独立的纹理。反照率和正常纹理每个使用3个通道RGB但是 拼图 仅使用一个通道。因此作为 优化将4个 拼贴图 组合成 单个 RGBA 纹理。组合拼图好的所以我们的地形 有更多的 纹理变化。它从 远处 看起来 不错但 如果你放大你快速注意到 缺乏高频率的细节。这是在贴花时使用的这些 像是在本地修改反照率颜色和 像素法线的小精灵。这个地形有861个实例有21个独特的贴花。贴花​​以前贴花​​之后贴花亮点以前下一个123好多了一些植被 呢下一步是 添加 到 地形引擎 称之为“道具”树 或 摇滚模型。对于这张 地图有23个独特模型的6026个实例。道具之前道具之后道具突出显示以前下一个123现在最后一触海面。它是几个正常的 地图 和 沿着不同方向的 UV滚动 的 组合一个用于 靠近 岸边的 波浪的反射 和 精灵的 环境地图。海面以前海面之后以前下一个12我们的地形现在已经准备好了。为 地图设计师 创建好的 高度图和 拼图 可能是具有挑战性的但幸运的是有几个 工具 可以帮助 您 完成 任务官方的“Supcom Map Editor”或World Machine具有更高级的功能。所以现在我们知道SupCom地形背后的理论我们来看一下实际的游戏框架。框架细分这是我们将剖析的游戏框架果肉剔除翻译可能有误……游戏在RAM中是从高度图创建的地形网格由CPU镶嵌每个顶点的位置是已知的。当缩放级别变化时CPU会重新计算地形的镶嵌。我们的相机专注于靠近岸边的场景。渲染整个地形将是浪费计算因此引擎提取整个地形的子网仅提供播放器可见的部分并将该小部分提供给GPU进行渲染。果肉剔除之前果肉剔除之后 翻译 可能 有误……以前下一个12正常地图首先只计算法线。第一遍计算由5个层5个法线贴图和4个拼贴图的组合产生的法线。不同的法线贴图混合在一起所有的操作都是在切线空间中完成的。子网法线x5Splatmaps正常地图这是在一个具有6个纹理提取的单个绘图调用中完成的。你会注意到结果是相当“淡黄色”与其他普通的地图往往是 蓝色 相反。事实上这里的蓝色通道 根本就不用只有 红色和绿色。但是等一下一个正常的是一个3分量的矢量怎么只能存储2个组件它实际上是一种压缩技术在帖子结尾解释。现在让我们假设红色和绿色通道 包含我们所需要的关于法线的所有信息。地层已经完成了现在是贴花的轮到添加 地形贴花 和 建筑贴花 来调节地层法线。基础基地地形贴花基地地形贴花单位贴花以前下一个123我们还没有使用我们的渲染目标的蓝色和Alpha通道。所以游戏从512x512纹理中读取代表 地形的 全部法线从 原始高度图中 ​​烘焙并使用 双三次插值 计算 每个像素 的 正常值。结果存储在蓝色和Alpha通道中。正常地图存储在蓝色和阿尔法的双三次插值。红色和绿色地层/贴花法线蓝色和阿尔法基础地形正常然后游戏将这两组法线 地层/贴花法线和 地形法线组合到 用于计算照明 的 最终 法线 中。最终法定地图这次没有压缩法线 使用 3个RGB 通道每个 组件一个。它可能看起来很绿但这是因为场景相当平坦结果是正确的您可以通过做任何像素并计算其法线矢量colorRGB * 2.0 - 1.0还可以检查矢量的范数为1。阴影贴图用于渲染阴影的技术是“Light Space Perspective Shadow Maps”或LiSPSM技术。在这里我们只是把太阳当成一个方向的光。渲染场景的每个 网格并将其与太阳的距离 存储 在1024×1024纹理的 红色通道 中。LiSPSM技术 计算 最佳投影空间 以最大化 阴影贴图 的 精度。以前下一个123如果我们停在这里我们只能画出阴影。当渲染单位时游戏实际上会尝试通过使用一些PCF采样来平滑阴影的边缘。但即使是PCF也没有办法获得我们在屏幕截图上看到的美丽的平滑阴影特别是地面上建筑物的平滑轮廓......那么这样做是如何实现的呢即使在 游戏开发 过程的 最后部分似乎 阴影的 实施 仍然 是一个持续的努力。这是Jonathan Mavor在游戏公开发布前11个月所说的话这些镜头的阴影 还没有完成我们还有一点点工作要做。[...]在这一点上我们还没有以任何方式 完成游戏。2006年2月24日Jonathan Mavor在宣布一个月后出现了一个新的 开创性 的 阴影贴图 技术差异阴影贴图或 VSM。它能够非常有效地呈现华丽的柔和阴影。似乎SupCom团队试图 尝试 这种 新技术反编译D3D 字节码揭示了对DepthToVariancePS()计算阴影贴图的模糊版本的函数的引用。在VSM发明之前阴影贴图不能也不会模糊。这里SupCom执行影子贴图的5x5 高斯模糊水平和垂直通过。LiSPSM高斯模糊模糊阴影贴图然而在D3D字节码中没有关于存储深度和平方深度VSM技术所需的信息的 指令。它似乎只是一个部分实现也许没有 时间来 完善 技术在 开发的 最后阶段但无论如何代码 原样可以产生 好的结果。注意伪VSM映射 仅用于在地面上 产生 软阴影。当阴影必须 被绘制到 一个单元上时它是通过使用 PCF采样的 LiSPSM 图 进行的。您可以在下面的 截图中 看到差异PCF在阴影边框上有块状工件不同的 阴影贴图 技术阴影地形由于生成的 正常地图 和 阴影贴图可以最终开始渲染地形带有 照明和阴影 的 纹理网格。SplatMaps水深图反照率纹理阴影正常灯光与阴影贴花绘制 贴花的 反照率分量 使用 正常信息 计算 照明方程。基础基地地形 贴花基地 地形贴花 单位贴花以前下一个123水反射我们在我们现场的右边有海所以如果机器人坐在水中我们应该能够看到它在海面上的反射。渲染表面的反射是一个经典的技巧执行一个附加的过程在应用相机变换之前垂直轴被缩放-1所以整个场景就水面而言是对称的就像一个镜像这正是 渲染反射 所需的 转换。SupCom堂吉参谋 使用 这种技术并将所有 镜像单元网格 渲染成 反射图。反射图网格渲染所有单位 然后 逐一 呈现。对于 植被几何实例化用于 在一个 绘图 调用 中 渲染 多个树。大海 使用 单个四面体 渲染像素着色器 提取 几个 法线贴图折射图直到 现在 呈现的 场景反射图 刚刚 生成的和一个 天空盒 进行 额外 的 反射。网格0网格30网格60网格100以前下一个1234在最后一幅图像中注意到屏幕边界附近的小黑色文物这是因为水面的取样 被 打乱造成 运动 错觉。有时中断会在 视口内 从 视口外部 导出 纹素但是这样的 信息 不存在因此黑色区域。此句翻译可能有误……在 游戏 过程 中UI实际上会隐藏在覆盖视口边缘的薄边框下的这些工件。网格结构SupCom中的每个 单元 都在 单个 绘图调用 中 呈现。模型 由一组 纹理 定义反照率地图一个正常的地图一个“镜面地图”实际上包含比镜面更多的信息。这是一个RGBA纹理红色反思 反映出多少环境地图。绿色高光。关于阳光。蓝色亮度 以后用于控制绽放。Alpha团队颜色 它根据 团队 颜色 调整 单位反照率。反照率地图正常地图粒子然后 渲染 所有 颗粒并且 还添加 每个 单元 的 健康条。基础场景基础场景粒子基础场景粒子健康酒吧此句翻译可能有误……以前下一个123盛开时间让事情闪耀但是由于我们使用LDR缓冲区我们如何获得“亮度信息” 亮度图实际上包含在Alpha通道中它同时被绘制在先前的网格上。创建帧的缩小版本使用alpha通道仅使亮区域突出并执行两个连续的高斯模糊。Alpha通道亮度模糊然后 将模糊的缓冲区用 添加剂混合画在 原始场景的 顶部。布卢姆以前布鲁姆之后以前下一个12用户界面我们完成了主要场景。UI终于被渲染它被精美优化单次绘制调用来渲染整个界面。1158个三角形立即被推送到GPU。UIUI线框高光以前下一个12像素着色器从单个1024x1024纹理读取其效果类似于纹理图集。当选择另一个单位时UI被修改纹理图集将被即时重新生成以包装一组新的精灵。我们完成了框架补充笔记详细程度由于SupCom支持缩放级别的巨大变化所以依赖于细节级别或LOD。如果玩家从地图上缩放可见单元的数量将迅速增加为了跟上GPU负载的增加需要渲染更简单的几何图形和更小的纹理。由于机组距离很远发动机可以随之消失机型更换为低多模型细节更少但在屏幕上显示的很小玩家几乎看不到与高分辨率楷模。LOD高LOD低LOD低线框LOD高线框以前下一个1234LOD不仅关注单位阴影贴花和道具停止超出一定距离。战争迷雾由于战争之雾每个单位都有一条视线只有靠近这个单位的地方才是完全可见的。不存在单位的区域是灰色以前访问过或黑色尚未开发。游戏将雾信息存储在128x128单声道纹理中其定义了雾的强度1表示无可见度而0表示完全可见。以前下一个123正常压缩如所承诺的这里是关于SupCom中用来压缩法线的技巧的简短解释。法线通常是三分量矢量但是在切线空间中矢量相对于表面切线表示X和Y在切线平面内而Z分量总是远离表面。默认情况下正常情况(0, 0, 1)是为什么当正常情况不受干扰时大多数正常地图显示为蓝色。所以假设正常是一个单位矢量它的长度是一个X² Y² Z² 1。如果你知道X和Y的值那么Z只能有两个可能的值Z ±√(1 - X² - Y²)。但是由于Z总是偏离表面所以必须是积极的所以我们有Z √(1 - X² - Y²)。这就是为什么只有在红色和绿色通道中存储X和Y就足够了Z可以从它们派生出来。在本文中可以找到更详细更好的解释。正常混合由于我们正在谈论法线SupCom 在法线贴图之间使用splatmaps作为因素来执行某种类型的语言。实际上有两种方法可以混合两个普通的地图不同的结果这不是一个简单的问题就像这篇文章解释一样。更多链接Jonathan Mavor 的博客有很多技术见解和关于TA Graphics Engine的非常好的帖子。TA发展背后的故事。非常有趣的阅读从1998年存档在Wayback机。有关SupCom地图编辑和修改的详细信息。关于这个主题的更多讨论Slashdot Hacker News Reddit。此外本文的打印副本已由Hacker Monthly提供。

相关新闻

2026.7.28总结

2026.7.28总结

今日总结:今天回到租房都十点多了,感觉自己一天的精力都要耗尽,看了35分钟的书,这个过程中,差点想睡着,拖着疲惫的大脑,干了今天最后一件事:写总结。副业:最近买虚拟资料&#xff0c…

2026/7/29 1:18:50 阅读更多 →
2026一站式AI电商创作平台推荐 全链路能力测评指南

2026一站式AI电商创作平台推荐 全链路能力测评指南

2026AI电商创作平台测评速览本次测评覆盖3款主流一站式AI电商创作平台,从功能覆盖、流程连贯、数据打通、易用性四个维度展开,纳米P视频在电商专属场景适配度上表现突出一站式平台可解决多工具切换带来的成本高、数据不通、学习门槛高三大痛点&#xff0…

2026/7/29 1:17:49 阅读更多 →
ServerPackCreator:5大核心功能打造终极Minecraft服务器包自动化部署方案

ServerPackCreator:5大核心功能打造终极Minecraft服务器包自动化部署方案

ServerPackCreator:5大核心功能打造终极Minecraft服务器包自动化部署方案 【免费下载链接】ServerPackCreator Create a server pack from a Minecraft Forge, NeoForge, Fabric, LegacyFabric or Quilt modpack! 项目地址: https://gitcode.com/gh_mirrors/se/Se…

2026/7/29 1:17:49 阅读更多 →

最新新闻

2026 年 7 月商用咖啡供应链推荐指南:国内靠谱店中店咖啡服务商与主流赋能项目解析

2026 年 7 月商用咖啡供应链推荐指南:国内靠谱店中店咖啡服务商与主流赋能项目解析

进入 2026 年,实体门店咖啡副业增收、茶水间品质升级,已成为国内便利店、电竞棋牌、餐饮酒店、商务政企的核心升级需求。依托店中店轻植入模式、全自动智能设备、数字化托管运营、源头精品供应链体系,商用咖啡项目可帮助门店盘活闲置场景、新…

2026/7/29 1:24:51 阅读更多 →
大模型调用实战指南:从API使用到企业级部署

大模型调用实战指南:从API使用到企业级部署

1. 大模型调用基础认知第一次接触AI大模型时,我被它"黑盒"般的特性困扰了很久——输入一段文字就能得到智能回复,但完全不知道背后发生了什么。直到亲手调试过API才明白,调用大模型本质上是在与一个经过海量数据训练的复杂函数进行…

2026/7/29 1:24:51 阅读更多 →
保姆级数字人注册安装教程,0基础也能跟着做

保姆级数字人注册安装教程,0基础也能跟着做

什么是数字人? 数字人(Digital Human),说白了就是一个"活在屏幕里的人"——有真人的长相,能开口说话,还能跟你一来一回地互动。背后是 AI 在驱动,你说什么它听得懂,回答你…

2026/7/29 1:24:51 阅读更多 →
Project Graph:如何用这款免费跨平台工具高效构建可视化思维导图

Project Graph:如何用这款免费跨平台工具高效构建可视化思维导图

Project Graph:如何用这款免费跨平台工具高效构建可视化思维导图 【免费下载链接】project-graph A node-based visual tool for organizing thoughts and notes in a non-linear way. 项目地址: https://gitcode.com/gh_mirrors/pr/project-graph 如果你正在…

2026/7/29 1:24:51 阅读更多 →
ALB 5XX 告警被扫描器刷爆?3步定位 + OpenSearch 接口级聚合实战(附完整查询)

ALB 5XX 告警被扫描器刷爆?3步定位 + OpenSearch 接口级聚合实战(附完整查询)

凌晨收到 P0 告警:ALB Target 5XX 飙升到 625/5min。15 分钟定位根因:不是业务故障,是一个 DigitalOcean VPS 在扫描。本文记录完整排查链路:CloudWatch 指标 → OpenSearch 日志聚合 → client_ip 定位 → 扫描器识别 → WAF 处置。 前言 凌晨告警炸了: 🔴 ALARM: pr…

2026/7/29 1:24:51 阅读更多 →
Processing创意编程:用玫瑰线方程实现数学可视化与动态艺术

Processing创意编程:用玫瑰线方程实现数学可视化与动态艺术

1. 从“玫瑰”到“代码”:一个迷人的数学可视化项目如果你对创意编程感兴趣,或者正在学习Processing,那么“玫瑰线”绝对是一个不容错过的经典项目。它不像那些复杂的3D渲染或物理模拟,需要深厚的数学和图形学功底。玫瑰线项目的美…

2026/7/29 1:23:51 阅读更多 →

日新闻

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

一、本文介绍 🔥本文在RT-DETR多模态融合目标检测中引入RLAB残差线性注意力模块,可在不同模态特征交互阶段进行多次残差细化,使可见光、红外等特征在尺度、语义和空间位置上更好对齐;随后将细化特征与解码器输出拼接并生成Q、K、V,通过线性注意力自适应强化关键通道、目…

2026/7/29 0:00:23 阅读更多 →
AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础 在上一期「AI编程系列」中,我们学习了如何构建一个基础的 AI 问答系统,通过简单的输入输出让模型回应问题。但现实世界中的 AI 应用往往需要处理更复杂的场景:…

2026/7/29 0:00:23 阅读更多 →
AI智能体开发实战:从工具调用到企业级部署

AI智能体开发实战:从工具调用到企业级部署

1. 从被动问答到主动执行:AI Agent的范式转变过去两年,大语言模型最显著的应用形态是聊天机器人——用户提问,AI回答。但真正的生产力革命发生在2023年下半年:当AI学会主动调用工具完成任务时,生产力工具的历史被彻底改…

2026/7/29 0:00:23 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻