古剑奇谭吧 关注:814,282贴子:31,945,053

回复:愿我中华游戏,星火世传,奋飞不辍——从技术角度浅谈古剑3

只看楼主收藏回复

666


来自Android客户端45楼2020-02-20 14:54
回复
    这个是莲中境的水面。
    包含了水面波纹、折射、水下部分、水-岸交互等。


    IP属地:天津46楼2020-02-20 14:58
    回复
      2026-01-12 00:27:50
      广告
      不感兴趣
      开通SVIP免广告
      精华帖啊,支持


      IP属地:四川来自iPhone客户端47楼2020-02-20 15:02
      回复
        水这一块,其实我完全不知道咋做,水太深了
        大概说一下就是:
        水面波纹可以用至少3层的水波函数去叠。最简单的可以是Perlin Noise(做云的),或者是Voronoi(做山脉的),也有可能是其他函数。反正哪个都不好写。加上曲面细分就更难了。
        水体的颜色一般是用一个渐进查找表去做,输入参数是水的深度,输出颜色和透明度。
        折射一般是使用一个单独的RenderPass,在渲染后根据水体表面法线方向进行折射。
        水下部分一般就是加个指数雾。从水面开始向下,雾的浓度呈指数上升。
        当然,要加个优化——离摄像机太远的水底物体,一律剔除掉。
        水与岸的交互这块....emmmm....完全不会


        IP属地:天津48楼2020-02-20 15:07
        回复
          技术dalao支持一下


          IP属地:北京来自Android客户端49楼2020-02-20 15:08
          回复
            除了水体之外,古剑3还做了雨滴和积水的交互效果。

            雨下的太大了所以不知道雨滴和波纹是否是一一对应的。
            同样,这个雨和地面波纹的牛逼之处就在于——它不是通过粒子系统喷射出来的(那样会特别吃CPU),而是靠显卡算出来的。


            IP属地:天津50楼2020-02-20 15:12
            收起回复
              另外一个****的点就是——在集泷之战,如果把摄像机朝天看,镜头上会沾水。
              这个不稀奇,厉害的是,每个水滴都是有折射的!

              大概就是,每个雨滴都是一个凸透镜,所以要在Post Processing阶段对雨滴专门进行一次后处理,且要在Bloom(光晕/辉光)等操作前面。

              其实这个不是太难写,主要是如何让这玩意能高效运行。因为我个人测试,沾水和不沾水,区别不大。


              IP属地:天津51楼2020-02-20 15:24
              收起回复
                这就是古吧带佬吗,i了i了


                IP属地:湖北来自Android客户端52楼2020-02-20 15:27
                回复
                  2026-01-12 00:21:50
                  广告
                  不感兴趣
                  开通SVIP免广告
                  厉害了(ง •̀_•́)ง点赞!!!


                  IP属地:广东来自Android客户端54楼2020-02-20 15:38
                  回复
                    另外说一个我不是很确定烛龙做没做的东西:次表面散射(Subsurface Scattering)。
                    次表面散射指的是,当强光穿过某些半透明物体,比如皮肤(不是羽林大哥那种老皮)或者是薄片的玉时,入射到物体中的光会有一部分反射回表面。
                    典型的应用就像是...白里透红的皮肤、树叶。
                    我没有找到强光直射皮肤的地方,不过我在天鹿城找到了个树叶,不知道是不是用上了次表面散射。


                    IP属地:天津56楼2020-02-20 16:01
                    收起回复
                      厉害了大佬


                      IP属地:上海来自Android客户端57楼2020-02-20 16:02
                      回复
                        搬板凳等更


                        IP属地:河南来自Android客户端58楼2020-02-20 16:06
                        回复
                          在很久很久以前,次表面散射只在电影中出现,因为需要Path Tracing。
                          直到某位神人用Mipmap的方式(从统计学意义上)把次表面散射给实时化了。
                          https://pdfs.semanticscholar.org/328e/1f1e0751e41f26eedcee684eac2e431ab049.pdf


                          IP属地:天津59楼2020-02-20 16:12
                          回复
                            🐮🍺。。。。


                            IP属地:宁夏来自Android客户端60楼2020-02-20 16:16
                            回复
                              2026-01-12 00:15:50
                              广告
                              不感兴趣
                              开通SVIP免广告
                              次表面散射的原理如图:

                              当光线入射皮肤后,主要的部分被反射,形成了少女皮肤的基本颜色,或者是老男人皮肤的全部颜色。
                              对于“吹弹可破”的皮肤而言,一部分光会在角质层、胶原蛋白层这两个半透明的层被反射出去。
                              还有一部分会穿过角质层和胶原蛋白,入射皮下血管。由于血管和肉是红色的,所以反射回去的颜色是红色,这样,才有了“白里透着红”的感觉。


                              IP属地:天津61楼2020-02-20 16:19
                              回复