IBRNet: Learning Multi-View Image-Based Rendering学习基于多视图图像的渲染

23 篇文章 42 订阅

目录

IBRNet: Learning Multi-View Image-Based Rendering学习基于多视图图像的渲染

Abstract

1.Introduction

2.Related work

Image based rendering

Volumetric Representations

Neural scene representations

3.Method

3.1.视图选择和特征提取

3.2 RGB-σ prediction using IBRNet

3.2.1 Volume density prediction

3.2.2 Color prediction

3.3. Rendering and training

Hierarchical volume rendering分层体绘制

Training objective训练目标

Fine-tuning.

3.4. Implementation details

源视图和目标视图采样。

网络详情。

训练细节

4.实验

4.1.实验设置

训练数据集。

Evaluation datasets评估数据集。

基线。

4.2. Results

4.3. Ablations and analysis

消融研究。

对源视图密度的敏感度。

推断时的计算开销。

5.结论


IBRNet: Learning Multi-View Image-Based Rendering学习基于多视图图像的渲染

Abstract

我们提出了一种方法,通过插值一个稀疏的附近视图集来合成复杂场景的新视图。我们的方法的核心是一个网络架构,它包括一个多层感知器和一个射线变压器 ray transformer,它估计连续5D位置(三维空间位置和2D观看方向)的辐射和体积密度从多个源视图动态绘制外观信息。通过在渲染时绘制源视图,我们的方法又回到了基于图像的渲染(IBR)上的经典工作,并允许我们渲染高分辨率的图像。与神经场景表示工作优化每个场景功能的渲染不同,我们学习了一个通用的视图插值函数,它可以推广到新的场景。我们使用经典的体积渲染来渲染图像,这是完全可微的,并允许我们训练只使用多视图姿态图像作为监督。实验表明,我们的方法优于最近的新的视图合成方法,也寻求推广到新的场景。此外,如果在每个场景上进行微调,我们的方法将与最先进的单场景神经渲染方法相竞争。1 https://ibrnet.github.io/

1.Introduction

早期的新视图合成的工作集中在基于图像的渲染(IBR)

IBR方法通常通过扭曲、重采样和/或将源视图混合到目标视点来操作。这种方法可以允许高分辨率的渲染,但通常需要非常密集的输入视图或显式的代理几何图形,这很难高质量地估计,从而导致渲染中的伪影

NeRF使用通过MLPs的连续场景建模,而不是显式离散的体积[51]或多平面图像[12,65],允许更紧凑的表示和可扩展到更大的 viewing volumes

尽管像NeRF这样的神经场景表示可以忠实而紧凑地表示场景,但它们通常需要对每个新场景进行漫长的优化过程,才能合成该场景的任何新视图,这限制了这些方法在许多现实应用中的价值。

在这项工作中,我们利用IBR和NeRF的想法成为一种新的基于学习的方法,该方法从多个源视图动态生成一个连续的场景辐射场,以呈现新的视图.我们学习了一个通用的视图插值函数,它在渲染光线时同时执行密度/遮挡/可见性推理和颜色混合。这使得我们的系统能够在没有任何特定于场景的优化或预先计算的代理几何图形的情况下运行.

我们的方法的核心是一个轻量级的MLP网络,我们称之为IBRNet它沿着给定的射线聚合来自源视图的信息,以计算其最终的颜色。对于沿着射线采样的3D位置,网络首先从编码空间上下文的源视图中获取潜在的2D特征。然后,IBRNet为每个样本聚合来自源视图的二维特征,以生成一个密度特征,以捕获关于该特征是否在一个表面上的信息。然后,一个射线变压器模块通过考虑沿着整个射线的这些密度特征来计算每个样本的标量密度值,从而能够在更大的空间尺度上进行可见性推理。另外,一个颜色混合模块color blending module使用二维特征和来自源视图的视图方向向量来计算每个样本的与视图相关的颜色,它表示为源视图的投影颜色的加权组合。然后使用体渲染计算每条射线的最终颜色值

我们的方法是完全可微的,因此可以使用多视图图像进行端到端训练。我们的实验表明,当训练大量的数据,我们的方法可以渲染高分辨率的包含复杂几何和材料的看不见场景的新视图,我们的定量评估表明,它改进了最先进的新视图合成方法,设计为在一个单一的镜头推广到新的测试场景designed to generalize in a single shot to new test scenes 。此外,对于任何特定的场景,我们都可以微调IBRNet,以提高合成的新视图的质量,以匹配最先进的神经场景表示方法的性能,如NeRF[39]。综上所述,我们的贡献是:

  1. 一种新的基于学习的多视图基于图像的渲染方法 learning-based multi-view image-based rendering approach,在新的场景上优于现有的单镜头视图合成方法one-shot view synthesis methods,
  2. 一种名为IBRNet的新模型架构,它能够从多个视图 连续预测 空间中的颜色和密度,
  3. 一种每个场景的微调过程,实现了与仅为单场景推理设计的最先进的新颖的视图合成方法相当的性能。

2.Related work

Image based rendering

我们的方法以端到端的方式学习连续的体积密度,并为合成质量进行了优化,从而在具有挑战性的场景中获得更好的性能。

Volumetric Representations

我们的方法允许在连续的3D位置和2D查看方向上查询颜色和不透明度,而不需要存储完整的场景表示,并且可以很容易地缩放到渲染高分辨率的图像。我们的方法也可以处理比基于mpi的方法更大的查看量。

Neural scene representations

我们的方法可以推广到新的、高质量的真实场景。

3.Method

给定附近的源视图,我们的方法使用体积渲染来合成一个新的相机姿态下的目标视图。我们试图解决的核心问题通过聚合源视图中出现的信息来获得连续空间中的颜色和密度。 我们的系统管道(图1)可以分为三个部分:1)识别一组附近的源视图作为输入,并从每个源视图中提取密集的特征2)预测连续5D位置(三维空间位置和二维视图方向)的体积密度σ颜色c,3)通过体积渲染,沿着每个相机射线合成这些颜色和密度,生成一个合成图像。

图1:系统概述。1)为了渲染一个新的目标视图,我们首先识别一组相邻的源视图,并提取它们的图像特征。2)然后,对于目标视图中的每条射线,我们使用我们提出的IBRNet计算沿着射线的一组样本的颜色和密度。具体来说,对于每个样本,我们从相邻的源视图中聚合其相应的信息(图像颜色、特征和查看方向),以生成其颜色c和密度特征fσ(注意,这些特征还不是标量密度值)。然后,我们将我们提出的射线变压器应用于射线上所有样本的这些密度特征,以预测标量密度。3)最后,我们使用体积渲染来沿着光线积累颜色和密度来渲染其颜色。我们的方法可以用重建图像颜色的l2损失端到端训练

3.1.视图选择和特征提取

与试图将整个场景编码为单一网络的神经场景表示不同,我们通过插值附近的源视图来合成新的目标视图。虽然我们的网络(在下一节中描述)可以处理任意数量的相邻视图,但给定有限的GPU内存,我们选择少量的源视图作为呈现新视图的“工作集”。为了获得一个有效的工作集,我们识别空间上接近的候选视图,然后选择N个视图的子集,其查看方向与目标视图最相似

3.2 RGB-σ prediction using IBRNet

我们的方法基于经典的体绘制来合成图像:在3D场景中累积颜色和密度来绘制2D图像。我们建议IBRNet(如图2所示)通过聚合来自多个源视图的信息并结合沿射线的长程上下文long-range context along the ray来预测连续5D位置的颜色和密度。我们提出的IBRNet是置换不变的permutation-invariant ,并且接受可变数量的源视图。

 

3.2.1 Volume density prediction

我们在点(x,d)的密度预测包括两个步骤。首先,我们聚集(x,d)处的多视图特征以获得密度特征。然后,我们提出的射线转换器接受射线上所有样本的密度特征,并结合长程上下文信息long-range contextual information 来预测每个样本的密度,包括(x,d)。

Multi-view feature aggregation.聚合

我们观察到表面上的3D点比自由空间中的3D点更可能在多个视图中具有一致的局部外观。因此,推断密度的有效方法是检查给定点的特征{fi}Ni=1之间的一致性,一个可能的实现是类似PointNet[45]的体系结构,它接受多视图特性并使用方差作为全局池操作符。然而,对于存在遮挡的真实表面,这种简单的全局一致性检查可能会错误地失败。相反,我们构建了一个小网络,以实现更好的遮挡推理。

Ray transformer.

在获得一个密度特征fσ之后,可以用另一个MLP直接把它变成一个单一的密度σ。然而,我们发现这种方法不能预测具有复杂几何形状的新场景的精确密度。我们将此归因于这样一个事实,即孤立地查看单个点的特征不足以准确预测其密度,并且需要更多的上下文信息——类似于平面扫描立体方法在确定特定像素的深度之前考虑沿着整个光线匹配分数。

因此,我们引入了一个新的射线转换器模块使射线上的样本能够在预测它们的密度之前相互关注。光线转换器由经典转换器的两个核心组件组成[60]:位置编码和自我关注self-attention。给定沿射线的M个样本,我们的射线转换器将从近到远的样本视为一个序列,并将位置编码多头自注意应用于密度特征序列(fσ(x1),,fσ(xM))。然后根据其参与的特征预测每个样本的最终密度值σ。射线转换器模块允许可变数量的输入,并且仅引入了参数和计算开销的少量增加,同时显著提高了预测密度和最终合成图像的质量,如我们的消融研究所示。

Improving temporal visual consistency提高时间视觉一致

在合成目标视图时,我们的方法只考虑附近的源视图作为工作集。因此,当沿着平滑的摄像机路径生成视频时,由于摄像机移动时工作集的突然变化,我们的方法可能会受到暂时不一致的密度预测和闪烁伪像的影响。

为了缓解这个问题,我们采用了Sun等人[55]提出的池技术。我们用加权的平均值μw和方差vw代替{fi}Ni=1的平均值μ和方差v,加权以便减少工作集中最远图像的影响权重函数定义如下

其中s是可学习的参数。该技术在两个方面改进了我们的方法:1)它平滑了相邻帧之间的全局特征的变化,以及2)它通过向上加权工作集中的较近视图向下加权较远的视图来产生更合理的全局特征。我们观察到这种技术凭经验提高了合成的稳定性和质量

3.2.2 Color prediction

我们通过预测源视图中对应于5D点的图像颜色{Ci}Ni=1的混合权重来获得该点的颜色。与使用绝对观察方向的NeRF [39]不同,我们考虑相对于源视图的观察方向,即d和di之间的差异。d和di之间的差异越小,通常意味着目标视图处的颜色视图I处的相应颜色相似的机会越大,反之亦然

为了预测每个源颜色Ci混合权重,我们将特征fi∆di=d−di连接起来,并将每个连接的特征输入到一个小网络中,从而产生一个混合权重wic。这个5D位置的最终颜色是通过soft-argmax运算符c = Ni = 1[Ci exp(wic)/Nj = 1 exp(wjc)]混合的。

3.3. Rendering and training

前一节介绍的方法允许我们计算连续5D位置的颜色和密度值。为了渲染穿过场景的光线r的颜色,我们首先查询光线上M个样本的颜色和密度,然后执行经典的体积渲染[25],使用数值求积来近似积分[39]:

这里,从1到M的样本被排序为具有递增的深度值ck和σk分别表示射线上第k个样本的颜色和密度δk相邻样本之间的间隔

Hierarchical volume rendering分层体绘制

拥有连续的RGB-σ预测的一个好处是,它允许在空间中进行更具适应性和有效的采样。遵循NeRF [39],我们执行分层体积采样同时优化两个网络,一个粗IBRNet和一个细IBRNet,具有相同的网络架构。在粗尺度下,我们以等距视差(深度倒数)对一组Mc位置粗位置)进行采样sample a set of Mc locations at equidistant disparity (inverse depth),这导致像素空间中相邻点投影之间的间隔相等。给定粗略网络的预测,然后我们沿着每条射线对点进行更明智的采样,其中样本更可能位于用于渲染的相关区域。我们对额外的Mf位置进行采样,并使用所有Mc + Mf位置来呈现如NeRF [39]中的精细结果。在我们的网络中,我们将Mc和Mf都设置为64

Training objective训练目标

我们使用粗略和精细样本集来渲染每条光线的颜色,并最小化渲染颜色和用于训练的真实像素颜色之间的均方误差:

其中R是每个训练批次中的射线集。这允许我们同时训练特征提取网络以及粗略和精细IBRNet。

Fine-tuning.

经过大量数据的训练,我们的方法能够很好地推广到新的场景。我们的方法也可以在训练时使用相同的目标对每个场景进行微调(Eq. 4)但仅在特定场景上,从而提高该场景上的合成性能。

3.4. Implementation details

源视图和目标视图采样。

给定一个场景的多个视图,我们通过首先随机选择一个目标视图,然后采样N个附近的视图作为源视图,来构建源视图和目标视图的训练对。为了选择源视图,我们首先识别nN个附近视图的池(n是从[1,3]中均匀随机抽样的),然后从池中随机抽样N个视图这种采样策略在训练期间模拟了各种视图密度,因此有助于网络在视图密度之间进行归纳。在训练期间,我们从[8,12]中均匀随机地抽取N个样本。

网络详情。

我们使用类似U-Net的架构实现图像特征提取网络,其中ResNet34 [16]在层3之后被截断作为编码器,并且两个附加的具有卷积和跳跃连接的上采样层作为解码器。我们在最终解码层中解码两组特征图,分别用作粗略和精细IBRNet的输入粗略和精细特征图都具有d = 32维,并且是原始图像大小的1/4倍。对于IBRNet,密度特征fσ的维数是16,并且我们使用4个头用于射线转换器中的自关注模块。更多网络详情请参考补充资料。

训练细节

我们使用Adam [28]在多视图设定图像的数据集上端到端地训练特征提取网络和IBRNet。特征提取网络和IBRNet的基本学习速率分别为10-3和5×10-4,随着优化按指数规律衰减。在微调过程中,我们使用较小的基本学习速率(5×10-4和2×10-4)来优化我们的2D特征提取器和IBRNet本身。我们在八个V100 GPUs上进行训练,批量大小为3200到9600条射线,具体取决于图像分辨率和源视图的数量。

4.实验

我们以两种方式评估我们的方法:a)在所有测试场景上直接评估我们的预训练模型,而不进行任何微调(Ours)。请注意,我们只训练一个模型,并在所有测试场景上对其进行评估。以及b)在评估之前,在每个测试场景上微调我们的预训练模型(Oursft),类似于NeRF。

4.1.实验设置

训练数据集。

我们的训练数据包括合成数据和真实数据。对于合成数据,我们在谷歌扫描对象[46]中以不同的视图密度生成了1030个模型的以对象为中心的渲染。对于真实数据,我们使用RealEstate10K [65],Spaces数据集[12]和95个手持手机拍摄的真实场景(36个来自LLFF [38],59个来自我们自己)。RealEstate10K是一个大型的室内场景数据集,具有来自大约80K视频剪辑的相机姿势,其中相机位于1D相机轨迹上。Spaces数据集包含100个场景,其中每个场景都是由16个摄像机的装备在3到10个不同的装备位置捕获的。每个手机拍摄的场景都有20-60张由前置摄像头拍摄的图像,大致分布在2D网格上[38]。我们使用COLMAP [49]来估计相机姿态、内在参数和捕捉的场景边界。我们的训练数据包括各种相机设置和场景类型,这使得我们的方法可以很好地推广到看不见的场景。

Evaluation datasets评估数据集。

我们使用物体的合成渲染和复杂场景的真实图像进行评估,如NeRF [39]。合成数据包括来自深度体素DeepVoxels[51]数据集的四个具有简单几何形状的Lambertian对象,以及来自NeRF合成数据集八个具有复杂几何形状和真实材料的对象深度体素中的每个对象都有479个训练视图和1,000个测试视图,分辨率为512 × 512,在上半球采样NeRF合成数据集中的对象有100个训练视图和200个测试视图,分辨率为800 × 800,在上半球或整个球体上采样真实数据集包含8个复杂的真实世界场景,这些场景由来自NeRF的大致向前的图像捕获。每个场景由20到62幅图像以1008 × 756的分辨率捕捉。八分之一的图像被拿出来测试

基线。

我们从两个方面将我们的方法与当前的最佳视图合成方法进行了比较:基于MPI的方法神经绘制方法。对于基于MPI的方法,我们将我们的方法与最先进的方法LLFF [38]进行比较,该方法使用3D卷积神经网络来预测每个输入图像的离散化网格,并将附近的MPI融合到新的视点中。我们的和LLFF的设计都是为了概括新奇的场景。我们将Oursft与神经渲染方法进行比较:神经体积(NV) [35],场景表示网络(SRN) [52]和NeRF [39]。这些方法为每个场景或每类场景训练单独的网络,或者根本不进行归纳,或者仅在对象类别内进行归纳。当针对这些神经场景表示方法进行评估时,我们对每个场景的模型进行微调,基线也是如此。

4.2. Results

为了渲染每个测试视图,我们从所有评估数据集的训练集中抽取了10个源视图。我们使用PSNR、SSIM和LPIPS [64]评估了我们的方法和基线。结果可以在Tab. 1和图3中看到。

图3:Real-Forward-Facing data的定性比较。我们的方法可以更准确地恢复几何形状和外观上的细节,并产生出在感知上更类似于地面真相的图像LLFF[38]很难恢复干净和准确的边界(兰花中的重影影和角中的重复边缘),也不能捕捉到薄结构(霸王龙中的肋骨)或部分封闭的起源(蕨类植物中的叶子)。NeRF[39]渲染的图像在兰花中显示出不现实的噪声。同时,花瓣上的纹理缺失,花瓣边界附近的区域也没有被很好地恢复。我们的方法在霸王龙和蕨类植物的精细结构上也略优于NeRF,并且可以重建角中玻璃上反射的更多细节

表1:对合成图像和真实图像数据集的定量比较。我们的评估指标是PSNR/SSIM(越高越好)和LPIPS[64](越低越好)我们的[38]和LLFF的[38]都在大量的训练数据上进行训练,然后在所有的测试场景上进行评估,而无需对每个场景进行任何调整。我们的数据在所有数据集上始终优于LLFF[38]。我们还将我们的方法与神经渲染方法(SRN[52],NV[35]和NeRF[39])进行了比较,这些方法为每个场景训练一个单独的网络。为了与这些方法公平竞争,我们还对每个场景上的预训练模型进行了微调(Oursft)。经过微调后,Oursft可以与最先进的方法NeRF[39]相竞争。

Tab. 1表明,我们的预训练模型可以很好地推广到新的场景,并在所有测试场景中始终优于LLFF [38]。经过微调后,我们的模型的性能可与NeRF [39]等最先进的神经渲染方法相媲美:

我们在漫射合成360°Diffuse Synthetic 360◦和真实前向Real Forward-Facing[38]上均优于NeRF,在真实合成360°上仅低于PSNR和SSIM。我们在真实合成360°上表现不如NeRF的一个原因是该数据对于具有非常复杂几何形状的场景具有非常稀疏的训练视图。因此,局部源视图的有限集合中包含的信息可能不足以合成新视图,在这种情况下,使用所有视图优化全局辐射场的方法(如NeRF)可能更适合。

在真实的前向数据[38]上,Oursft实现了比NeRF [39]好得多的SSIM和LPIPS,表明我们的合成图像看起来更逼真。NeRF的一个关键部分是使用位置编码[56],这有助于生成高频细节。但是位置编码也可能导致图像中不希望的高频伪像(见图3 ),这降低了感知质量。相比之下,我们的模型不使用位置编码来回归颜色,而是混合来自源视图的颜色,这使我们的合成图像看起来更像自然图像。我们的方法产生了合理的代理几何,并且可以用于产生暂时连续的视频。详情请参阅补充材料。

4.3. Ablations and analysis

消融研究。

表2:真实正向[38]数据的消融研究。我们报告了每个消融的预先训练模型的指标,没有每个场景的微调。

我们进行消融研究(表。2)使用我们在真实的前向数据[38]上预先训练的模型,调查我们方法的关键方面的个人贡献。对于“无射线转换器”,我们删除射线转换器,以便对每条射线上的样本的密度预测是独立的和局部的。移除该模块会导致网络无法预测精确的密度,从而导致“黑洞”假象和模糊(参见定性比较的补充材料)。对于“无视角方向”,我们移除网络中的视角方向输入。这包括去除Eq.1中的加权池并重新移动观察方向作为颜色预测的网络输入。这降低了我们的模型再现 视图依赖的效果view-dependent effects 的能力,如推测,但并没有像在NeRF中看到的那样显著地降低性能,因为我们的模型混合了附近的输入图像(它们本身包含视图依赖的效果)。

对源视图密度的敏感度。

我们研究了当源视图在漫射合成360°数据上变得稀疏时,我们的方法如何退化。原始数据中的每个场景提供了随机分布在上半球的479个训练视图。我们通过因子2、4、6、8、10对训练视图进行统一的亚采样,以创建不同的视图密度。我们在图4中报告了预训练模型Ours微调模型Oursft的PSNR。我们看到,随着所提供的视图变得越来越稀疏,我们的方法也相应地降级了。

图4:对源视图密度的敏感性。我们通过{2、4、6、8、10}对扩散合成360◦[51]中提供的视图进行子采样,以创建上半球从479到47不等的源视图密度。

推断时的计算开销。

在这里,我们研究了IBRNet与其他方法相比所需的计算量。我们用于渲染目标视图的推理管道可以分为两个阶段:我们首先从所有感兴趣的源视图中提取图像特征,这只需要做一次,因为特征可以重复用于渲染。给定这些预先计算的特征,我们使用我们提出的IBRNet来产生沿着每个相机光线的样本的颜色和密度。因为图像特征可以预先计算,所以主要的计算成本是由IBRNet产生的。由于我们的方法从一组源视图中插入新视图,IBRNet的#FLOPs取决于本地工作集的大小,即源视图的数量(#Src.Views)。我们在表3中报告了在不同数量的源视图下渲染单个像素所需的IBRNet和#FLOPs的大小。

表3:网络规模和推理时的计算成本。我们的MLP的网络规模比NeRF[39]要小得多。对于NeRF[39]和Oursft,我们都报告了渲染单个像素所需的#FLOPs。这两种方法都采用了分层的体积采样。NeRF的Mc,Mf分别设置为64,128,Oursft的设置为64,64。对于我们的方法,#FLOPs的数量与源代码视图的数量大致呈线性关系(#Src.Views)

我们看到,IBRNet所需的#FLOPs不到NeRF [39]所需的20%,同时实现了相当的性能对于为什么IBRNet可能比NeRF更有效,有两种可能的解释。首先,NeRF使用单个MLP对整个场景的辐射场进行编码。要查询场景中的任何点,必须“接触”MLP的每个参数随着场景变得更加复杂(例如,城市规模),NeRF需要更多的网络容量,这导致每个查询的#FLOPs更大。相比之下,我们的方法在本地插值附近的视图,因此#FLOPs不会随着场景的规模而增长,而只会随着本地工作集的大小而增长。这一特性也使我们的方法更具动态性,能够实现诸如流式传输长场景和动态调整计算成本以适应设备等应用。第二,我们将场景编码为摆好姿势的图像和特征,这是一种比NeRF中使用的MLP更结构化和更易解释的表示一个简单的投影操作允许我们从源视图中获取最相关的信息,用于估计空间中某一点的辐射亮度。网络必须只学习如何组合这些信息,而不是如何从零开始综合它们。

5.结论

我们已经提出了一种基于学习的多视图基于图像的渲染框架,该框架通过将来自附近图像的像素与由包括MLP和射线转换器的网络推断的权重和体积密度混合来合成场景的新视图。这种方法结合了IBR和NeRF的优点,在复杂场景上产生最先进的渲染质量,而不需要预先计算几何形状(不像许多IBR方法),存储昂贵的离散化体积(不像神经体素表示),或为每个新场景进行昂贵的训练(不像NeRF)。

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
cd C:\Program Files\FlightGear fgfs --fg-root=C:\Program Files\FlightGear\data --aircraft=ufo --in-air --fdm=null --telnet=5501 --telnet=5502 --telnet=5503 --disable-ai-traffic --disable-real-weather-fetch --disable-random-objects --disable-terrasync --disable-clouds --disable-sound --disable-panel --disable-hud --disable-specular-highlight --timeofday=noon --prop:/sim/rendering/multi-sample-buffers=1 --prop:/sim/rendering/multi-samples=2 --prop:/sim/rendering/draw-mask-clouds=false --prop:/sim/rendering/draw-mask-terrain=true --prop:/sim/rendering/draw-mask-objects=true --prop:/sim/rendering/draw-mask-lights=true --prop:/sim/rendering/draw-mask-internal=true --prop:/sim/rendering/draw-mask-cockpit=true --prop:/sim/rendering/draw-mask-effects=true --prop:/sim/rendering/draw-mask-overlay=true --prop:/sim/rendering/draw-mask-world=true --prop:/sim/rendering/draw-mask-panel=true --prop:/sim/rendering/draw-mask-vr=true --prop:/sim/rendering/draw-mask-2d=true --prop:/sim/rendering/draw-mask-3d=true --prop:/sim/rendering/draw-mask-sky=true --prop:/sim/rendering/draw-mask-shadows=true --prop:/sim/rendering/draw-mask-cabin=true --prop:/sim/rendering/draw-mask-weather=true --prop:/sim/rendering/draw-mask-stereo=true --prop:/sim/rendering/draw-mask-internal-cockpit=true --prop:/sim/rendering/draw-mask-internal-windows=true --prop:/sim/rendering/draw-mask-internal-instruments=true --prop:/sim/rendering/draw-mask-internal-overlay=true --prop:/sim/rendering/draw-mask-internal-effects=true --prop:/sim/rendering/draw-mask-internal-lights=true --prop:/sim/rendering/draw-mask-internal-world=true --prop:/sim/rendering/draw-mask-internal-panel=true --prop:/sim/rendering/draw-mask-internal-3d=true --prop:/sim/rendering/draw-mask-internal-sky=true --prop:/sim/rendering/draw-mask-internal-cabin=true --prop:/sim/rendering/draw-mask-internal-weather=true --prop:/sim/rendering/draw-mask-internal-stereo=true --prop:/sim/rendering/draw-mask-internal-shadow=true --prop:/sim/rendering/draw-mask-internal-stall=true --prop:/sim/rendering/draw-mask-internal-aoa=true --prop:/sim/rendering/draw-mask-internal-thermal=false --prop:/sim/rendering/draw-mask-internal-ice=false --prop:/sim/rendering/draw-mask-internal-glass=true --prop:/sim/rendering/draw-mask-internal-dead=true --prop:/sim/rendering/draw-mask-internal-reflection=true --telnet=127.0.0.1:5501 --disable-panel --disable-hud --disable-specular-highlight --disable-clouds --disable-sound --timeofday=noon --enable-hud-3d=no --enable-hud-2d=yes --enable-panel=no --enable-sound=no程序显示错误
05-10
这个命令有些问题。你需要在命令行中输入这个命令,并且将其中的双引号去掉。此外,你需要确保FlightGear已经安装在C:\Program Files\FlightGear目录下,并且你已经选择了一个可用的飞行器(例如: ufo)。最后,如果你需要使用telnet,你需要指定不同的端口。以下是更正后的命令: ``` cd C:\Program Files\FlightGear fgfs --fg-root=C:\Program Files\FlightGear\data --aircraft=ufo --in-air --fdm=null --telnet=5501 --telnet=5502 --telnet=5503 --disable-ai-traffic --disable-real-weather-fetch --disable-random-objects --disable-terrasync --disable-clouds --disable-sound --disable-panel --disable-hud --disable-specular-highlight --timeofday=noon --prop:/sim/rendering/multi-sample-buffers=1 --prop:/sim/rendering/multi-samples=2 --prop:/sim/rendering/draw-mask-clouds=false --prop:/sim/rendering/draw-mask-terrain=true --prop:/sim/rendering/draw-mask-objects=true --prop:/sim/rendering/draw-mask-lights=true --prop:/sim/rendering/draw-mask-internal=true --prop:/sim/rendering/draw-mask-cockpit=true --prop:/sim/rendering/draw-mask-effects=true --prop:/sim/rendering/draw-mask-overlay=true --prop:/sim/rendering/draw-mask-world=true --prop:/sim/rendering/draw-mask-panel=true --prop:/sim/rendering/draw-mask-vr=true --prop:/sim/rendering/draw-mask-2d=true --prop:/sim/rendering/draw-mask-3d=true --prop:/sim/rendering/draw-mask-sky=true --prop:/sim/rendering/draw-mask-shadows=true --prop:/sim/rendering/draw-mask-cabin=true --prop:/sim/rendering/draw-mask-weather=true --prop:/sim/rendering/draw-mask-stereo=true --prop:/sim/rendering/draw-mask-internal-cockpit=true --prop:/sim/rendering/draw-mask-internal-windows=true --prop:/sim/rendering/draw-mask-internal-instruments=true --prop:/sim/rendering/draw-mask-internal-overlay=true --prop:/sim/rendering/draw-mask-internal-effects=true --prop:/sim/rendering/draw-mask-internal-lights=true --prop:/sim/rendering/draw-mask-internal-world=true --prop:/sim/rendering/draw-mask-internal-panel=true --prop:/sim/rendering/draw-mask-internal-3d=true --prop:/sim/rendering/draw-mask-internal-sky=true --prop:/sim/rendering/draw-mask-internal-cabin=true --prop:/sim/rendering/draw-mask-internal-weather=true --prop:/sim/rendering/draw-mask-internal-stereo=true --prop:/sim/rendering/draw-mask-internal-shadow=true --prop:/sim/rendering/draw-mask-internal-stall=true --prop:/sim/rendering/draw-mask-internal-aoa=true --prop:/sim/rendering/draw-mask-internal-thermal=false --prop:/sim/rendering/draw-mask-internal-ice=false --prop:/sim/rendering/draw-mask-internal-glass=true --prop:/sim/rendering/draw-mask-internal-dead=true --prop:/sim/rendering/draw-mask-internal-reflection=true ``` 请注意,如果你需要使用telnet连接到FlightGear,你需要在另一个命令行窗口中输入telnet命令,例如: ``` telnet localhost 5501 ``` 这将连接到FlightGear的第一个telnet端口。如果你想连接到其他端口,你需要相应地更改端口号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值