前言
原本开头介绍了几种实现方式,结论就是各有优缺点。。。也就是全是废话。。。既然是废话,就全删了吧 (ʃƪ ˘ ³˘)
其他不多说,原因有一大堆,结论就是想自己写个球 (ノ´▽`)ノ♪
一开始写起来特别顺,就是那种遇到bug感觉可能是这里的问题,然后随便改改想先定位问题,结果运行下发现修复了ヽ●*´∀`*●ノ
直到加载真实的DEM数据,无论怎么修复永远都有缝隙,泪流满面啊 (╥╯﹏╰╥)ง
一步步排查:卷积核没问题,卷积没问题,加载没问题,坐标变换没有问题,shader没有问题~~最后没办法直接从显存数据中看,当然使用了取巧的办法:运行,选取两张相邻瓦片,提取显存数据到本地,丢到PS里比对,修正采用参数,重复以上步骤~~终于在第3152*3152/(197*197)-11=245次修正后消除了缝隙,再以此特解反推出通解,搞定第一步。第二步叠加残差时又对不上,懒得搞了直接加了个遮罩反正底图已经无缝o(´^`)o。。。于是乎,uv偏了10/197≈0.05。。。。后面再说吧,改DEM就已经改了一个月了 (`ȏ´)
已知问题及优化方向
-
海拔
修完DEM后发现海拔与视频号发布的不一样,比如视频号里台湾山的高度都快超过台湾最宽处了。。。研究了半天发现都没问题,搜了下发现台湾东西宽度最宽有144公里,最高点是海拔高度3952米的玉山主峰,也就是说山的高度放大36.437倍才能有视频的效果。。。所以,被坑了啊 ~~o(>_<)o ~~
缺点:由于偷懒,没修正残差,导致uv偏了大约0.05,等换管线时再一起改了。还有个比较严重的问题,内陆许多地方海拔低于海平面,导致地面被海洋覆盖,需要地形编辑功能调整下。
-
植被
目前在 geometry shader 里加了9个点,简单搞了个面片树。。。是不是太敷衍了 φ(>ω<*) 。其实在这基础上移除低于海平面的树,位置加点随机偏移好像还凑合。
优点:写起来太快了;
缺点: geometry shader会降低地形性能,特别是复杂3D树;
路线:从地形中抽离,专门添加植被层&#