创建场景和赛道——总结

总结

在这一章中你学到了很多关于渲染复杂3D物体的知识,如场景、赛道和在赛车游戏中创建关卡。希望也可用于其他游戏,当为游戏创建场景时你要记得下列几件事:

  • 总是先判断玩家是如何看场景的。看上去很棒的场景其实没多大意义,这种场景只在近距离看时很棒,这种场景在策略游戏、RPG游戏或赛车游戏中只覆盖了50米2面积。而在这类游戏中你需要面积更大,这意味着你要么重复纹理或有更好的渲染技术将细节纹理整合成一个大纹理,或使用splatting“绘制”场景地面。

  • 对于创建巨型场景,Splatting是一个很好的技术。大多数游戏使用纹理splatting,使用不同的地面纹理和额外的特殊纹理、赛道等等以构成看上去很棒的地形。如果你没有太多的开发时间,或者如果你不需要巨大的地形,你可以使用如上一章的简单解决方法,对射击游戏来说这个方法很不错。
  • 附加层,shader和特效,特别是水面shader和阴影映射,是一个非常耗时的任务。我特意不在游戏中使用水面效果,因为在过去几个项目里,总是要花费几个星期的时间才能获得满意的水面效果,我了解我自己——我会不停地修改它直到我满意,但往往没有这么多的时间。
  • 你可以从其他人身上学到许多技巧和窍门,互联网上的教程和诸如Game Programming GemsShaderX系列的书上有很多很好的资源。

生成赛道有类似的规则,首先创建单元测试是很重要的。始终测试性能,特别是当你创建了一个有很多多边形的区域时,在本章中场景使用了130000个左右的多边形,赛道多达24000个多边形,还有额外的50000多个多边形用于赛道护栏,隧道和支持赛道的水泥柱。这意味着即使没有任何额外的场景物体,每帧也要渲染超过200000个多边形,也就是说在帧速率为每秒100帧的情况下光渲染场景和赛道就需要把2000多万个多边形在一秒内传递给GPU。汽车大约有25000个多边形而场景物体有几千多个,这意味如果有1000个场景物体,每帧仍要渲染数百万个多边形。听起来很多,但如果看看TestRenderLandscape单元测试中的截图,你会发现大概有2000个物体在场景中。

你可能会想到,Xbox 360游戏机的GPU也许无法在一帧时间内处理2-3万多边形且仍保持超过每秒60帧的帧速率。在PC更糟的是,75赫兹是最常用的屏幕刷新率而大多数玩家的GPU太慢,导致无法在一帧中处理所有三维几何数据。为了确保游戏在中档或低档电脑上仍能运行良好,使用了以下技巧:

  • 不要渲染看不见的东西。场景和赛道总是可见的,所以你不能忽略它们。但许多场景模型可能在你身后或超出你的视野,可简单地忽略它们。另一个诀窍是忽略任何太遥远的模型,特别是100米开外的较小的3D模型。这是提升游戏性能的最大技巧。看一下Model类和Render方法以了解更多关于这一技巧的知识。

  • 在每帧开始时渲染GPU的大量数据。通过这种方式,你可以在GPU仍在处理场景和赛道多边形的同时,准备好场景模型和其他渲染数据。

  • 总是通过shader排序渲染。在前面的一些游戏中你已看到MeshRender是如何被使用的,以及它是如何极大地提高性能的。在对赛车游戏的性能测试(见Model类)中我不断提高MeshRenderManager类的性能。特别是对同一类型的大量物体使用相同的shader,性能是令人诧异的。查看TestRenderManyModels单元测试,它将超过1亿个多边形传递给Xbox 360的GPU(也可以是你的PC,如果你的GPU足够快的话)。

  • 使用简单的shader!在原始版本的Rocket Commander游戏中所有物体都使用ParallaxShader,相对NormalMapping shader来说只是添加了几条额外的指令,但它仍然需要花费比NormalMapping更多的时间。为此,在赛车游戏中只使用法线映射,而且视觉效果并没有多大差别。只有场景采用了更复杂的shader来添加细节映射效果(见图12-7;这确实是值得的)。

好吧,在这一切新知识让你的大脑爆炸前,先放松一会儿。第13章是关于物理学的,会涉及很多数学知识。当你阅读第14章时,你将最终能把所有东西都整合到一起。

转载于:https://www.cnblogs.com/AlexCheng/archive/2010/10/08/2120195.html

### 道建模的概念与方法 #### 数学建模比中的道建模技术 数学建模比中,道建模通常涉及利用人工智能助手来推荐并自动实现适合特定场景的算法或模型。这些工具能够通过融合修改现有模型,显著降低重复劳动的时间成本[^1]。例如,在实际应用中,可以借助AI比助手快速筛选出适用于当前问题的最佳模型组合,并提供诸如准确率、召回率以及F1值等性能指标的即时反馈,从而帮助参者更高效地完成模型优化。 #### Blender在道建模中的基础操作 对于具体的道设计任务来说,Blender是一款非常强大的三维建模软件,它被广泛应用于创建复杂的几何结构或者环境模拟当中。特别是在智能车竞领域里,当面对像讯飞组这样的特殊需求时,可以通过将已知地图尺寸导入到Blender内部作为构建参照物来进行精准复制或是创新改造工作[^2]。这种做法不仅提高了工作效率还增强了最终成果的真实感表现力。 #### intel oneAPI框架下的道建模实践案例 另外,在某些大型事如Intel OneAPI 2023 黑客松大第二条道上,则采用了更加系统化的建模策略——即先自行划分训练集与验证集比例(比如常见的75% vs. 25%)再基于此开展深入研究分析过程; 同时选用Accuracy这一经典度量标准衡量整体效果优劣程度 [^3]. 此外值得注意的是该项目充分利用到了Modin库加快大数据处理速度的同时保持原有Pandas API兼容性优势, 结合SkLearnEx进一步提升机器学习模块运行效率最后辅以XGBoost强化预测能力形成了一套完整的解决方案链条. ```python import modin.pandas as pd from sklearn.model_selection import train_test_split from sklearnex.metrics import accuracy_score from xgboost.sklearn import XGBClassifier # 数据加载阶段 data = pd.read_csv('dataset.csv') # 划分数据集 train_data, test_data = train_test_split(data, test_size=0.25) # 初始化分类器实例对象 classifier = XGBClassifier() # 训练环节执行命令语句序列化表达形式如下所示: classifier.fit(train_data.drop(columns=['target']), train_data['target']) predictions = classifier.predict(test_data.drop(columns=['target'])) print(f'Accuracy Score: {accuracy_score(test_data["target"], predictions)}') ``` 以上代码片段展示了如何运用上述提到的技术栈完成一次典型的监督型学习项目全流程管理活动.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值