上古卷轴吧 关注:1,627,805贴子:28,310,894

远景生成指南【2023.2/xLODGen/DynDOLOD 3】

只看楼主收藏回复


截图镇楼。


IP属地:广东1楼2023-02-27 21:33回复
    最近花了不少时间折腾我esp数已经破千的老滚,而这其中主要的精力又是花在了动态远景相关上头。在费尽千辛万苦终于折腾出差不多满意的远景效果之后,我决定随手写几点我觉得值得分享的经验,供滚吧诸位参考。本人不是什么资深modder,对于各类相关工具也仅能算是勉强会用的地步,机制原理方面则是所知甚少,如果哪里说错,还请大佬指正。


    IP属地:广东2楼2023-02-27 21:34
    收起回复
      1. 首先严格来说,本文内容仅适用于本文写作时远景工具套装的最新版本——在2023年2月27日,DynDOLOD 3最新版本为118,xLODGEN最新版本为98。虽说远景工具作者Sheson的大部分更新是以修复bug为主,但时不时加入的新功能依旧可能在将来某一天让本文部分内容过期,希望读者留心。


      IP属地:广东3楼2023-02-27 21:35
      收起回复
        2. 以及,本文不是什么无微不至的DynDOLOD使用教程,我假定读者是比较熟练的mod使用者,对于远景生成有着基本的认识,有一定的英文阅读(或者机翻使用)能力,而且掌握特殊的上网方式来下载相关工具与mod。不过我还是在这里简单说一下基本流程:安装前置mod/运行库>安装DynDOLOD Resources 3与DynDOLOD DLL NG and Scripts>使用No Grass InObjects生成草地缓存>使用xLODGen生成地形远景>使用TexGen生成远景生成所需材质>使用DynDOLOD生成物体/树木/草地远景与occlusion。当然这些步骤里面有些并非必须,顺序的话其实也只要保证在有必要前置的情况下先安装Resources再运行TexGen,先运行TexGen再运行DynDOLOD就行。


        IP属地:广东4楼2023-02-27 21:36
        回复


          IP属地:湖北来自手机贴吧5楼2023-02-27 21:36
          回复
            3. 有读者此时或许已经意识到,我这份流程仅适用于1.5.97版本(也就是所谓“特别版”)的老滚,因为No Grass In Objects并不支持1.6版本(也就是所谓“周年版”)。1.6版本生成草地缓存需要一些额外步骤,我没有仔细研究过。同样,最新的远景生成工具套装专门为Seasons of Skyrim(也就是四季mod)做了适配,但是我对这方面也没有了解。这两方面的内容我就不献丑了。


            IP属地:广东6楼2023-02-27 21:37
            收起回复
              4. 本文提到的大部分mod和工具都可通过在Nexus上搜索对应名称寻找到。部分无法在Nexus上找到的mod/工具我会专门说明。


              IP属地:广东7楼2023-02-27 21:37
              回复
                5. 本文面向的是具有2023年中高配置的用户。远景(尤其是草地远景和树木远景)堪称性能无底洞,只要你愿意,你完全可以刷出来一套4090都没法4K下稳60帧的远景。因此,如何在观感和性能当中取得平衡是需要着重考虑的。尤其值得思考的是,一般的超高面模型和超高清材质已经常常被斥为浪费性能,但好歹只要镜头凑得够近,你总能看出它们带来的提升(那些滥竽充数的低质量模型和材质除外)。然而远景却不一样:视角靠近时,再精细清楚的远景模型和材质也会被替换为完整的模型和材质。正常游玩当中,它们只会出现在远处,占据着屏幕上头微不足道的几个像素点。也就是说,到达临界点之后,你往这些远景上投入的渲染能力完全就是打了水漂,除非你是TFC爱好者。千万要抗拒把xLODGen和DynDOLOD中的每一个选项都拉满的诱惑,无论你的显卡有多强:给Solitude的窨井盖上8K材质都比这来的划算!


                IP属地:广东8楼2023-02-27 21:38
                回复
                  6. 我个人使用的树木mod是Happy Little Trees,草地mod是Qw’s Grass Patch。Happy Little Trees(和大名鼎鼎的Majestic Mountains是同一个作者)的好处在于它比较新,观感上不会太夸张,性能消耗相对适中,而且它有着比较完备的DynDOLOD 3支持——相关文件在Happy Little Trees Add-On - DynDOLOD 3页面里。远景资源有质量和性能两个版本,其中后者只支持Happy Little Trees原版材质。切记,不要下载安装Happy Little Trees本身页面上的billboard文件,DynDOLOD 3能用TexGen生成所需要的billboard!这一规则对于任何树木mod都适用:如果你使用的是DynDOLOD 3,不要下载安装billboard,而是寻找mod有没有提供用于3D/混合树木远景生成的资源。


                  IP属地:广东9楼2023-02-27 21:39
                  回复
                    7. 至于草地mod,我使用的是Qw’s Grass Patch。顾名思义,这其实是几个比较流行的草地mod的兼容补丁。Mod作者选取的草种都比较精致,不会显得过于突兀。(如果有人喜欢Origins Of Forest那种跟人一样高的“草”的话可以试一试Qw’s Grass Patch 2,反正我接受不来)。Qw’s Grass Patch安装起来比较麻烦,简单来说需要先安装它汇总的几个草地mod,排好顺序,在SSEEdit里压缩Form ID转ESL,再安装上Grass Patch本身才算成功。这里就不说明如何使用SSEEdit了。


                    IP属地:广东10楼2023-02-27 21:41
                    回复
                      8. 如果你希望使用草地远景,那么许多草地mod都还需要你做一件事:进入Creation Kit去recalc bounds。同样这里也不提供使用CK的教程。对于Qw’s Grass Patch来说是Folkvangr和Veydosebrom需要进行这一步。另外,如果你使用比较新的ENB核心,你可能会需要支持complex grass的材质。ENB Complex Grass - Patch Compendium for various grass mods里汇总了许多草地mod的complex grass材质,推荐下载。这个mod的作者在mod简介里声称生成远景的时候不要启用这些材质,否则会引发bug,这个建议已经过时了。最新版的DynDOLOD 3可以根据complex grass材质生成效果更好的草地远景,所以务必保持complex grass材质时刻启用。


                      IP属地:广东11楼2023-02-27 21:42
                      收起回复
                        9. 使用No Grass In Objects时推荐确保设置文件中的OverwriteMinGrassSize=-1(也就是不启用覆盖)。这一选项控制草地密度,但同一个数字对于不同的草地mod来说可能意味着天差地别的密度,况且不少草地mod(和Grass FPS Booster)本来就自带ini文件以将这一数据调整到合适的级别。以及,记得在设置文件里启用UseGrassCache、ExtendGrassDistance和OnlyLoadFromCache。


                        IP属地:广东12楼2023-02-27 21:43
                        收起回复
                          10. No Grass In Objects设置里另一个值得注意的地方就是DynDOLOD Grass Mode。如果你希望用DynDOLOD生成草地远景,那么就要设置成1或者2,并且切记在DynDOLOD程序里使用对应的Grass Mode。就我所知,只要启用了DynDOLOD模式,上面那些GrassDistance/GrassFadeRange之类的条目(包括其对应的ini设置)就可以统统无视——草地远景的延伸距离将由其他设置接管。两个模式的具体含义留到生成动态远景本身时再详细说明。


                          IP属地:广东13楼2023-02-27 21:44
                          回复
                            11. 这里插播一条关于DynDOLOD Resources的冷知识:它的安装选项里有一条是显示Whiterun城外的草地。如果你选择了它,那么日后生成的DynDOLOD.esp会专门把Whiterun世界“no grass”的flag给去掉。然而,草地缓存生成在先,DynDOLOD插件生成在后;如果你本来的游戏数据里Whiterun世界依旧像原版那样有着no grass的flag,那No Grass In Objects就不会为它生成草地缓存,DynDOLOD就算想为Whiterun城外显示草地也是有心无力。因此,在生成草地缓存前,先用SSEEdit查看Whiterun世界是否有no grass的flag。如果有,那就自己创建一个新插件把这条数据覆盖掉!


                            IP属地:广东14楼2023-02-27 21:45
                            回复
                              12. 到这里终于进入生成草地缓存的环节了。众所周知这一过程耗时耗力,不时发生的跳出也总是让人心惊胆战。而要加快进展,减少跳出,你可以做这么几件事:1)在skyrimprefs.ini里把分辨率设置成800*600之类的小数字;2)下载Worldspaces with Grass SSEEdit Script for No Grass In Objects脚本,在SSEEdit中使用。它会列出含有草地的世界列表,将这一列表拷贝至No Grass In Objects设置里的OnlyPregenerateWorldSpaces一栏,这样就能直接跳过无需生成草地的世界;3)下载Visualize Vanilla散装版并用其覆盖一切其他mod。Visualize Vanilla其实是一个半开玩笑性质的mod,它把一切原版材质都替换成了四色方块,其“原本用法”是加载在mod列表的最开头,让玩家知道自己的游戏里有哪些地方用的是未被替换的原版材质。在这里,这些简单的方块材质能显著降低生成草地缓存期间的显存占用,减少跳出。我不知道草地缓存会不会记录材质数据(我猜不会),但就算它会,绝大多数草地mod都不会使用原版材质路径,所以这么做应该是安全的。这一套下来,草地缓存的生成应该就会轻松许多。记得在生成完毕之后把分辨率调回来并且取消启用Visualize Vanilla!


                              IP属地:广东15楼2023-02-27 21:47
                              收起回复