欧洲卡车模拟2吧 关注:240,624贴子:4,589,341

【三屏设置】欧卡2多屏自定义设置原理与实例

只看楼主收藏回复

作者:xueyrcn,首发于百度贴吧,转载请注明出处
《欧洲卡车模拟2》(以下简称《欧卡2》)于2013年1月发售,在2013年7月的1.4.1版本更新中,加入了三屏显示的支持,提供了平板、环绕等多种预设设置,在其官网也给出了设置接口的简要说明。然而许多玩家的三屏显示系统并非严格按照平板或环绕方式布置,出现了画面变形以至于玩家头晕等现象。本文针对此问题,详细介绍《欧卡2》多屏显示模型结构,并通过实例讲解具体计算与设置步骤。


IP属地:黑龙江1楼2018-05-31 22:22回复
    1《欧卡2》多屏显示模型
    如下图所示,《欧卡2》的多屏显示模型由 3D场景中的摄像机、虚拟显示器、显卡逻辑显示器、物理显示器,共四个层次构成。

    摄像机是通过小孔成像原理进行三维到二维投影的虚拟设备,可参考3DS MAX等软件中的相同概念。摄像机的参数有摄像机中心位置三维坐标、偏航、俯仰、翻滚三个角度、横向与纵向视场角。在《欧卡2》无设置或多屏的平板模式中,仅使用一个摄像机,而在环绕或自定义模式中需要使用多个摄像机从不同角度分别成像。
    游戏虚拟显示器是对每个摄像机成像后的二维图像空间取一块矩形子区域,进行实际的渲染。设置参数有左下角的相对坐标和相对的宽度、高度,取值范围均为0到1。
    显卡逻辑显示器是在显卡驱动程序的设置中,通过AMD Eyefinity等技术将多个物理显示器拼接而成的显示设备。此显示器的显示范围是可以容纳排列好的物理显示器所有像素的一个矩形,其像素数大于或等于物理显示器像素之和。对于《欧卡2》而言,这就是它的最终显示设备。


    IP属地:黑龙江2楼2018-05-31 22:23
    收起回复
      2预设的多屏设置
      《欧卡2》针对几种较为简单和典型的多屏配置,提供了预设的设置。用Notepad++等文本编辑器打开 <文档>\Euro Truck Simulator 2\config.cfg 文件,修改r_multimon_mode后的数字即可启用。

      r_multimon_mode为0或1时,是平板模式,即三屏摆在同一平面上。不同的是模式1中用户界面元素都显示在中间屏幕上。此时游戏内只使用1个摄像机。玩家视线正对中间屏幕中心。

      r_multimon_mode为2时,是环绕模式。此模式中使用3个摄像机,摄像机原点重合,都在游戏内设置的视角原点,但左右两个摄像机分别设置了偏航角,角度等于一个屏幕的水平可视角度。此时玩家视点应同时处于三个屏幕的中垂线上。

      r_multimon_mode为3时,是在环绕模式的基础上添加了一台下方的显示器,用来显示车辆仪表等内容。相应地增加了一个摄像机,并设置了等于屏幕垂直可视角度的俯仰角。
      r_multimon_mode为4时开启自定义模式,是本文的重点,在下文中介绍。
      在使用预设模式时,可以调整其他r_multmon_xxx参数,例如r_multimon_fov_horizontal设置水平可视角度,r_multimon_border_fov_left设置左侧屏幕边框对应的视角等。


      IP属地:黑龙江3楼2018-05-31 22:25
      回复
        3 三屏系统设置实例
        常用的三屏系统一般不符合上述平板或环绕的布置方式。以作者自用的三屏系统为例,三台戴尔E2214Hv并排,两侧向内转20°,显示宽度475mm,单侧边框17.5mm。在中间显示器水平视场角为65°时,两侧显示器水平视场角约为37.61°。

        单台显示器分辨率1920*1080,通过显卡驱动程序提供的AMD Eyefinity技术组成一台5760*1080的逻辑显示器。NVIDIA显卡也有类似设置。
        用Notepad++等文本编辑器打开 <文档>\Euro Truck Simulator 2\config.cfg设置文件,设置r_multimon_mode为4,开启自定义多屏设置,设置r_multimon_fov_horizontal(水平视场角)为65,设置g_console(控制台)为1,设置g_developer(开发者模式)为1,开启游戏控制台功能。
        进入游戏,设置分辨率为5760*1080,进入驾驶模式可以看到三屏都有显示,此时为默认的平板模式。按~键(一般在主键盘区1键左边)打开控制台,输入命令multimon init three回车,初始化为默认环绕三屏模式。再输入命令multimon save保存设置文件,此时 <文档>\Euro Truck Simulator 2\ 目录中出现multimon_config.sii文件,即多屏设置文件。

        在环绕模式中,右侧屏幕应与玩家到屏幕中心的视线垂直,若按照此约束,则实际的右侧屏幕应是上图蓝线所在的虚拟显示器视野中一个梯形区域经射影变换拉伸变形得到。但《欧卡2》并没有关于射影变换的设置选项,因此这个思路不可取。

        借鉴移轴摄影的思路,使主轴(摄像机中心到图像平面的垂线)离开画面中心,可以构造上图蓝色线所示的显示器。此显示器相当于将右侧显示器左边界向左大幅延伸,而高度保持不变,使玩家视点处在成像平面中心点的垂线上,以符合摄像机小孔成像模型。然后从此摄像机成像中提取右侧所需部分作为游戏虚拟显示器的实际渲染区域。
        此时可以构造摄像机模型,用文本编辑器打开multimon_config.sii文件,找到第三段monitor_config,其中name应为right,即右侧显示器。修改:
        heading_offset(偏航角)为-20,
        horizontal_fov_override(水平可视角度)为108.22,
        vertical_fov_override(垂直可视角度)按atan(475/2*(9/16)/437.53)*2计算得33.958,
        frustum_subrect_width(视场子区域宽)按475/1209.23计算得0.392812,
        frustum_subrect_x(视场子区域左下角x坐标)按1-0.392812计算得0.607188。
        另有normalized_xxx参数用于设置从虚拟显示器到显卡逻辑显示器的映射关系,本次由于三台显示器分辨率相同,不需改动。保存multimon_config.sii文件,在游戏内控制台输入multimonreload载入配置文件,可以看到右侧显示器可以正常显示。
        类似地,修改第二段monitor_config,其中name应为left,即左侧显示器。各项参数参照右侧显示器,其中heading_offset为20,frustum_subrect_x为0。保存后控制台输入multimon reload命令即起效。

        最终效果如上图,可以看到在两侧边框的位置有画面断层,对应的是显示器边框遮挡的部分,此例中左侧显示器边框正好处在左后视镜边框位置。从右侧远处树丛轮廓也能看出不同屏幕因为摄像机偏航角导致的透视关系不同。图中游戏使用了创意工坊MOD:minimal adviser interface for ATS & ETS2。


        IP属地:黑龙江4楼2018-05-31 22:27
        回复(6)
          为方便大家计算,我用Excel写了一个三屏参数计算器,放在网盘里了。
          链接: https://pan.baidu.com/s/15qP9D_Y1M7pUnq2CF61sgA 密码: uw5b


          IP属地:黑龙江5楼2018-05-31 22:31
          回复
            辛苦写个技术贴被秒删,我说个图。


            IP属地:黑龙江7楼2018-05-31 22:38
            回复(2)
              好贴,社区上有设置的指引,但没有楼主这么详细的计算公式。
              我也是双屏双摄像机,参数是一点一点调试出来的。如果不清楚原理,是比较难调到满意的效果的。


              IP属地:广东8楼2018-05-31 23:03
              收起回复
                我把第二个摄像机移到了副驾驶的位置,不转动视角就能看到右边后视镜


                IP属地:广东9楼2018-05-31 23:06
                收起回复
                  更新了双屏和偏置单屏的设置方法,链接见7楼。



                  IP属地:黑龙江11楼2018-06-01 19:50
                  收起回复
                    技术贴,干货满满!


                    IP属地:山东来自Android客户端13楼2018-06-02 22:03
                    回复
                      严重马克!


                      IP属地:湖北14楼2018-06-03 16:54
                      回复


                        来自iPhone客户端15楼2018-06-04 16:34
                        回复
                          牛比


                          IP属地:北京16楼2018-06-12 11:02
                          回复
                            技术帝🐮🍺


                            IP属地:北京来自iPhone客户端17楼2018-06-19 18:07
                            回复
                              貌似A卡对多屏有神秘力量支持。


                              IP属地:广东19楼2018-08-26 22:43
                              回复(3)