把联通内网ip改公网投诉改成公网以后,上网会不会卡。我怪物猎人世界联机错误,能不能解决?

热点资讯||&figure&&img src=&https://pic2.zhimg.com/v2-e97bfd5fb98fde7b54c6014116ade2e9_b.jpg& data-rawwidth=&630& data-rawheight=&272& class=&origin_image zh-lightbox-thumb& width=&630& data-original=&https://pic2.zhimg.com/v2-e97bfd5fb98fde7b54c6014116ade2e9_r.jpg&&&/figure&&h2&&b&雾&/b&&/h2&&figure&&img src=&https://pic3.zhimg.com/v2-c43d9fba1f2bac7c44f0_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic1.zhimg.com/v2-c43d9fba1f2bac7c44f0_b.jpg& class=&content_image& width=&333&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-df56ebe7f5bb0a956415_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic2.zhimg.com/v2-df56ebe7f5bb0a956415_b.jpg& class=&content_image& width=&333&&&/figure&&p&通过线框绘制模式可以看出“雾”是由几个缓慢移动的自旋透明片构成(始终绑定在摄像机上),很寻常的做法。去掉纹理过滤后会更容易看出来。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-937d42b4f9bbe5a7addc_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic2.zhimg.com/v2-937d42b4f9bbe5a7addc_b.jpg& class=&content_image& width=&333&&&/figure&&p&&br&&/p&&h2&云&/h2&&figure&&img src=&https://pic2.zhimg.com/v2-d47ced389e1d6ce_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic3.zhimg.com/v2-d47ced389e1d6ce_b.jpg& class=&content_image& width=&333&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-a47ed05ce7b976dd56184_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&356& data-rawheight=&250& data-thumbnail=&https://pic1.zhimg.com/v2-a47ed05ce7b976dd56184_b.jpg& class=&content_image& width=&356&&&/figure&&p&云实际实际上是Billboard片,出现时有缩放和透明度变化做过渡。&/p&&p&但是这样做只能显示云的侧面贴图,无法处理云在头顶的情况。所以游戏里视角通常是不能朝上看的。&/p&&p&但在第一人称视角时必须允许朝上看,所以它做了以下处理:&/p&&ul&&li&所有Billboard片的方向并不是固定朝上,而是朝向头顶中心点。朝上看的时候,所有云都指向天空中心,这样就不会出现视野旋转而云不转的情况。&/li&&li&但云在接近天空中心的时候朝向不对的问题依然不能解决,而且通过中心的时候还会旋转180度。所以它选择让云接近中心时执行消隐逻辑,任何时候头顶区域注定没有云存在(即使是暴雨天气)。&/li&&/ul&&figure&&img src=&https://pic1.zhimg.com/v2-61e7a24bdeef4a410a38435_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic2.zhimg.com/v2-61e7a24bdeef4a410a38435_b.jpg& class=&content_image& width=&333&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-813add82ec893d1653caba2_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&356& data-rawheight=&250& data-thumbnail=&https://pic3.zhimg.com/v2-813add82ec893d1653caba2_b.jpg& class=&content_image& width=&356&&&/figure&&h2&&b&光&/b&&/h2&&figure&&img src=&https://pic2.zhimg.com/v2-79aaaef8d53d373d7be2d1_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic2.zhimg.com/v2-79aaaef8d53d373d7be2d1_b.jpg& class=&content_image& width=&333&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-f7bfe978c83bb913e713a76c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic1.zhimg.com/v2-f7bfe978c83bb913e713a76c_b.jpg& class=&content_image& width=&333&&&/figure&&p&众所周知,点光源的渲染成本远高于平行光。&/p&&p&风之杖的所有点光源都能照亮场景,并体现出点光源的球形范围特征,更重要的是,它并没有灯光数量上限(第二张图两个灯光区域叠加了)。&/p&&p&虽然点光源说起来也就是逐像素计算和灯光的距离,算一次向量自点乘,但在场景光源较多的时候,剔除掉范围外的光源也需要很多计算——而且实际上是做不到的,因为塞尔达每个Renderer都很大,只有不同Renderer才能选择不同的光源组,然后又不可能用延迟渲染或者Tile-base按屏幕范围拆分。&/p&&p&&br&&/p&&p&风之杖用的是一个很hack的做法。它的每个光源都是一个多边形的球体。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-2ddbcb9f6548060bba263_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&542& data-rawheight=&479& class=&origin_image zh-lightbox-thumb& width=&542& data-original=&https://pic4.zhimg.com/v2-2ddbcb9f6548060bba263_r.jpg&&&/figure&&p&然后设成Cull Front(正面剔除),以及ZTest Creater(被遮挡时才显示),就成了这样:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-c7bd0ba37501acd192b4d5763094dda2_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&491& data-rawheight=&462& class=&origin_image zh-lightbox-thumb& width=&491& data-original=&https://pic3.zhimg.com/v2-c7bd0ba37501acd192b4d5763094dda2_r.jpg&&&/figure&&p&所以它的光照投影才不是个正圆,而是个微妙的Low Poly风格多边形。这并不是故意而为之,单纯是不想给这个光照球太多顶点。这样做并不用专门剔除光照,也不会有任何额外绘制,但表现力就到此为止了,最多也就是用多个不同大小的光照球叠加来制照一些“光照边缘”,因为在光照球的shader里其实是不知道墙面和球的交点在哪的。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-51aed29df6b05ce21460_b.jpg& data-size=&normal& data-rawwidth=&519& data-rawheight=&501& class=&origin_image zh-lightbox-thumb& width=&519& data-original=&https://pic1.zhimg.com/v2-51aed29df6b05ce21460_r.jpg&&&figcaption&3个不同大小的光照球叠加&/figcaption&&/figure&&p&但是如果有不透明物体的深度缓存,就能在屏幕上求出其交点,换算回世界坐标并和光照中心求距离,并算出正确的点光源光照来。而这其实就是延迟渲染中对光照部分的处理,所以现在看也不完全是个hack的技术了。&/p&&p&&br&&/p&&p&此外,人物的光照和投影为求效率也使用的是平行光。对于多光源的处理,它采取的是接近后“捕获”的做法,在公共区域用的则是最后一个接触的光源,在光源切换的时候是直接对两个光源的位置做插值,以避免切换时的突变。(请仔细观察人物投影方向和光照方向变化的瞬间)&/p&&figure&&img src=&https://pic2.zhimg.com/v2-66ca0b40da33e61e55b0_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic1.zhimg.com/v2-66ca0b40da33e61e55b0_b.jpg& class=&content_image& width=&333&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-f7bfe978c83bb913e713a76c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic1.zhimg.com/v2-f7bfe978c83bb913e713a76c_b.jpg& class=&content_image& width=&333&&&/figure&&h2&&b&影&/b&&/h2&&p&罐子和金币等物体的影子采用了常见的透明圆片的设计(角度由下方碰撞箱的法线决定),所以可以看到这个明显的显示错误:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-a982cdc6f05a3dad92a9e113ce529621_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&175& data-rawheight=&199& class=&content_image& width=&175&&&/figure&&p&但是从上面看的时候,超出平台的阴影却能被隐藏。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-ad75aaa24c67b405e1780e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&189& data-rawheight=&176& class=&content_image& width=&189&&&/figure&&p&由下图隐藏了一部分的阴影可以判定,这个阴影实际上是通过Offest将自身的深度检测向后位移了一段距离,然后设定为ZTest Greater(被遮挡)才允许显示。这是个相当“实用”的贴花技巧。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-d2af3e6343bef1eb746d5c47c9779113_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&229& data-rawheight=&231& class=&content_image& width=&229&&&/figure&&p&&br&&/p&&p&至于动态阴影部分,&/p&&figure&&img src=&https://pic1.zhimg.com/v2-97d089afce7db965f5f8c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&473& data-rawheight=&516& class=&origin_image zh-lightbox-thumb& width=&473& data-original=&https://pic1.zhimg.com/v2-97d089afce7db965f5f8c_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-5eebcdbffd9_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&441& data-rawheight=&482& class=&origin_image zh-lightbox-thumb& width=&441& data-original=&https://pic2.zhimg.com/v2-5eebcdbffd9_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-b5d3d6bb08d1bbf298e6b888_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&197& data-rawheight=&268& class=&content_image& width=&197&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-4cbd8bfc47c4d223ece7ef4305bc12ca_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&371& data-rawheight=&245& class=&content_image& width=&371&&&/figure&&p&个人认为是每个人物单独生成ShadowMap,然后从脚底附近的简化Mesh碰撞箱筛选三角形动态创建Receiver(依据是与人的距离,法线与光照方向的夹角,所以从崖上往下的阴影无法在悬崖上显示出来)。&/p&&p&因为是每个人物单独生成ShadowMap,每张贴图都可以比较小,内存占用较小。但就算只渲染一个人,这张贴图依然精度极低,锯齿不明显是对边缘半透部分step的结果。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-20b6a35c2f87702cecba50f9d671609f_b.jpg& data-size=&normal& data-rawwidth=&528& data-rawheight=&591& class=&origin_image zh-lightbox-thumb& width=&528& data-original=&https://pic4.zhimg.com/v2-20b6a35c2f87702cecba50f9d671609f_r.jpg&&&figcaption&最终锯齿部分近似为斜线&/figcaption&&/figure&&p&这个游戏还有个特殊的设计:一旦人物悬空,或者在梯子和挂边的时候,阴影就会固定到人物正下方。个人觉得这是为了表示人物的落点位置,单纯是为了游戏性考虑。但这样的设计确实也方便了Receiver的筛选,远处的物体将永远不可能被筛选到,而且也避免了ShadowMap精度低,拉长后过于明显的纹理走样问题。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-ff1ecd44c3f6b52fca0d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&458& data-rawheight=&475& class=&origin_image zh-lightbox-thumb& width=&458& data-original=&https://pic2.zhimg.com/v2-ff1ecd44c3f6b52fca0d_r.jpg&&&/figure&&p&&br&&/p&&h2&&b&雨&/b&&/h2&&figure&&img src=&https://pic2.zhimg.com/v2-01fd8c75_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&332& data-rawheight=&250& data-thumbnail=&https://pic2.zhimg.com/v2-01fd8c75_b.jpg& class=&content_image& width=&332&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-93049d5fcc2e2c7a5600_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&332& data-rawheight=&250& data-thumbnail=&https://pic1.zhimg.com/v2-93049d5fcc2e2c7a5600_b.jpg& class=&content_image& width=&332&&&/figure&&p&相比大片纹理产生的overdraw,大量粒子生成的多边形更加合算。雨实际上是由大量狭窄雨点三角面渲染而成的。&/p&&p&但由于雨点的下落速度一致,并不需要每个雨点单独作为粒子,将十几个雨点绑定成一个整体,随机水平位置生成向下位移即可。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-b822b7f270dbdfa0b9a383d0aa03fd1a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&736& data-rawheight=&550& class=&origin_image zh-lightbox-thumb& width=&736& data-original=&https://pic3.zhimg.com/v2-b822b7f270dbdfa0b9a383d0aa03fd1a_r.jpg&&&/figure&&p&除了雨点本身外,还需要生成落在地面溅起的水花。用物理检测实现是不可能的。通过反复观察水花生成的“错误”,风之杖的水花应该只是简单地在低于视角的范围随机生成(高于视角看到的是Mesh背面,即使生成了也看不到),但是用的是ZTest Greater,也就是只有当水花被建筑遮挡的时候才会显示。这样水花就不会出现在空中。&/p&&p&但是当地面高低差较大的时候,由于水花范围没有那么广,无法落在建筑下方,就无法显示出来。&/p&&p&此外,这也会错误地导致墙面上出现水花,但因为墙壁的水花和视线几乎平行,是一个极扁的圆,错误生成了也不是很明显。&/p&&p&&br&&/p&&h2&气流扭曲&/h2&&figure&&img src=&https://pic1.zhimg.com/v2-ae1393aaf03c3fb5643bc_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic1.zhimg.com/v2-ae1393aaf03c3fb5643bc_b.jpg& class=&content_image& width=&333&&&/figure&&p&风之杖中广泛使用了这个效果。做法很常规:在绘制完其他全部物体后,Grab Pass,最后绘制扭曲部分(不用Grab Pass直接取上一帧图像会采样扭曲效果本身,导致越偏越远)&/p&&figure&&img src=&https://pic1.zhimg.com/v2-b03ef81fabc2ddc403d380_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic1.zhimg.com/v2-b03ef81fabc2ddc403d380_b.jpg& class=&content_image& width=&333&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-eb88f2ac9ef0af948bc1be_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic3.zhimg.com/v2-eb88f2ac9ef0af948bc1be_b.jpg& class=&content_image& width=&333&&&/figure&&p&扭曲效果的本体是一个普通的半透圆片贴图粒子,除了透明部分外,色彩部分直接用的Grab Pass的贴图再加一个噪波贴图位移产生扭曲。并没有什么可说的。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-c49b758e73f94f20da34d3a785c8ed3e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&32& data-rawheight=&32& class=&content_image& width=&32&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-fccf0303f2bca2e95e54876c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&64& data-rawheight=&64& class=&content_image& width=&64&&&/figure&&p&&br&&/p&&p&但是在一些特殊情况下,“全屏”+“高速”,它则用了一个更近似的方案&/p&&figure&&img src=&https://pic1.zhimg.com/v2-8a709a0b9cafe43fd4cb701ae98d41b1_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic2.zhimg.com/v2-8a709a0b9cafe43fd4cb701ae98d41b1_b.jpg& class=&content_image& width=&333&&&/figure&&p&GrabPass还是依旧,但这个效果并没有用噪波纹理,甚至没有用透明纹理,而是疯狂甩出了大量高速移动的带Grab贴图的不透明粒子。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-9b230cbdc33b7_b.jpg& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic3.zhimg.com/v2-9b230cbdc33b7_b.jpg& class=&content_image& width=&333&&&figcaption&偏移摄像机后&/figcaption&&/figure&&p&取一帧查看&/p&&figure&&img src=&https://pic1.zhimg.com/v2-8ad3c3bff78d6a115da3bc_b.jpg& data-caption=&& data-size=&small& data-rawwidth=&642& data-rawheight=&481& class=&origin_image zh-lightbox-thumb& width=&642& data-original=&https://pic1.zhimg.com/v2-8ad3c3bff78d6a115da3bc_r.jpg&&&/figure&&p&它只是稍微偏移了下采样的坐标,然后靠不透明片随机叠加,单帧的效果其实有一定破绽,但在连续画面中是看不出来的。而因为不透明物体重叠会正常pixel kill,性能不差。&/p&&p&非要这样做而不是用正常的后处理,应该主要还是为了体现出气流运动的方向,用噪波的效果未必比这个好。运算量也确实要少一些,就像上图的情况,其实有一部分屏幕根本没绘制,而后处理至少要绘制一屏。省掉的噪波纹理那方面就更不用说了。&/p&&p&&br&&/p&&h2&&b&岩浆&/b&&/h2&&figure&&img src=&https://pic1.zhimg.com/v2-0feb71dd97af5a12d33f2c5be0c620e7_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic4.zhimg.com/v2-0feb71dd97af5a12d33f2c5be0c620e7_b.jpg& class=&content_image& width=&333&&&/figure&&p&这个岩浆效果的特点是:有实际高度变化,且足够随机(并且符合岩浆的特征)&/p&&p&有经验的人很快能看出,岩浆的颜色=水面高度(取世界坐标Z作为依据lerp),不需要纹理。剩下的问题就是如何生成这样的一个岩浆高度场。&/p&&p&正弦波叠出来的都比较接近波浪,而岩浆池的波形特点则是“沸腾”,简而言之是个混沌系统,这是简单的周期波模拟不出来的。虽然FFT理论上可能能模拟出来(但这就扯远了)&/p&&p&实际上是这样的:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-05d88cf65fc_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic3.zhimg.com/v2-05d88cf65fc_b.jpg& class=&content_image& width=&333&&&/figure&&p&看不明白就再放一个比较“稀疏”的例子&/p&&figure&&img src=&https://pic4.zhimg.com/v2-d01fc2fd64f372dbab0fc58ed27e5fba_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic3.zhimg.com/v2-d01fc2fd64f372dbab0fc58ed27e5fba_b.jpg& class=&content_image& width=&333&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-cfbce0d583fa0e61bd6297d8_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic1.zhimg.com/v2-cfbce0d583fa0e61bd6297d8_b.jpg& class=&content_image& width=&333&&&/figure&&p&说白了,还是随机“粒子”。&/p&&p&每个粒子是个两层的8边形,中间凸起。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-1faad8db9a25eccd1875f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&447& data-rawheight=&424& class=&origin_image zh-lightbox-thumb& width=&447& data-original=&https://pic4.zhimg.com/v2-1faad8db9a25eccd1875f_r.jpg&&&/figure&&p&随机位置生成粒子后,从水平面下凸起来,然后再沉回去,作一个周期,然后移动到下一个随机地点再次出现。&/p&&p&粒子依然是不透明物体以减少OverDraw,因为颜色是由高度决定的并不需要半透过度,产生和消失都在“水面”以下,也不需要半透渐隐。&/p&&p&叠加得越多,效果越自然。&/p&&p&顶点数看上去很夸张,但也只是看上去而已(线段长,交叉多)。实际上一个粒子也就16个顶点,而一个湖有50个粒子效果就已经不错了,随便一个水面需要的顶点数其实很轻松就能超过它。&/p&&p&效率问题反而在OverDraw上,虽然是不透明物体,依然还是有概率重复计算的。按Z排序后能缓解,但边界处依然存在。&/p&&p&不过基本没啥问题的,毕竟风之杖只是个NGC游戏,这个能跑还有啥不能跑。&/p&&p&&br&&/p&&p&很容易联想到,是否普通的水体,或者海是否也能用类似的方法实现……&/p&&p&理论上是可以的,只是需要处理法线连续,所以必须先把高度场渲染到纹理处理,然后再映射到网格上。&/p&&p&神海4用到的Wave Particles听说就是类似的技术。&/p&&p&&br&&/p&&h2&&b&水体&/b&&/h2&&p&水的部分内容较多,分成多个小节描述&/p&&p&&b&(一)边缘&/b&&/p&&p&水是透明的,人对水的感知更多依附于水与其他物体的交界面。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-449cca1c62d0b5598ca58_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic1.zhimg.com/v2-449cca1c62d0b5598ca58_b.jpg& class=&content_image& width=&333&&&/figure&&p&这个游戏中大部分水都是一张纯蓝色的贴图,然后在边缘处单独拉一个Renderer,使用特殊材质,拉好UV。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-bf66a77ddcf3_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&302& data-rawheight=&204& class=&content_image& width=&302&&&/figure&&p&使用两张贴图,4次采样。同种贴图UV展开方向是相反的,相加后saturate,这样出来的纹理看上去并没有那么重复。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-1aef50d9ed9ecf3634d7_b.jpg& data-size=&normal& data-rawwidth=&151& data-rawheight=&89& class=&content_image& width=&151&&&figcaption&白沫&/figcaption&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-675692aeb9d1e5699acd868c_b.jpg& data-size=&normal& data-rawwidth=&151& data-rawheight=&74& class=&content_image& width=&151&&&figcaption&深色倒影&/figcaption&&/figure&&p&&b&(二)海浪拍岸&/b&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-bd304b23aa0ce8bcf37e73a4241be96a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic3.zhimg.com/v2-bd304b23aa0ce8bcf37e73a4241be96a_b.jpg& class=&content_image& width=&333&&&/figure&&p&这里取了个巧,任何位置的拍岸节奏都是一样,只有UV x轴的步进速度不同。&/p&&p&海岸分3层,由下至上是:&/p&&p&1.波浪退去时潮湿的部分:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-62ca8a951d72db1d93b66edc_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&145& data-rawheight=&147& class=&content_image& width=&145&&&/figure&&p&UV并不是位移,而是直接贴边对y轴缩放,y轴像素拉伸产生的模糊模拟了湿边的扩散。&/p&&p&2.有实体的海浪,在图示范围正弦摆动,一个完整周期要摆动两次。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-88d3c7eb90dcbfc0b4e55c9f62ed3462_b.jpg& data-caption=&& data-size=&small& data-rawwidth=&634& data-rawheight=&474& class=&origin_image zh-lightbox-thumb& width=&634& data-original=&https://pic3.zhimg.com/v2-88d3c7eb90dcbfc0b4e55c9f62ed3462_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-10a203b861f91eda11c5cd_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&128& data-rawheight=&128& class=&content_image& width=&128&&&/figure&&p&这个波还有个不易察觉的细节:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-1be17c7dccb_b.jpg& data-size=&normal& data-rawwidth=&388& data-rawheight=&320& class=&content_image& width=&388&&&figcaption&接近岸边倒极限的时候会显示一个水面纹理,二次采样,相反方向运动&/figcaption&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-3af9c3dd9e8aaa9fbab115aee011604b_b.jpg& data-size=&normal& data-rawwidth=&128& data-rawheight=&128& class=&content_image& width=&128&&&figcaption&使用的纹理&/figcaption&&/figure&&p&除了提供细节外,还提供了一点软边缘的效果:接近岸边的部分变亮了,更像沙滩的颜色。&/p&&p&3.从深处来的浪花:看着像海浪,其实只有白沫,看着同时存在两个波,其实是通过repeat方式复制出来的。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-1e6def46eaf9af92a2e4b97dd3e77ba3_b.jpg& data-caption=&& data-size=&small& data-rawwidth=&628& data-rawheight=&470& class=&origin_image zh-lightbox-thumb& width=&628& data-original=&https://pic4.zhimg.com/v2-1e6def46eaf9af92a2e4b97dd3e77ba3_r.jpg&&&/figure&&p&这个浪花一直保持匀速推进。&/p&&p&整个设计巧妙的地方在于,两个波有一段时间是重合的。而第二种波的频率比第三种大,它推到最内侧之后,还会时间回来,再去接下一个波。重合期间由于一个是匀速,一个是正弦波,所以会错开一点,使得白沫的变化更多。&/p&&p&正因为这个波只有白沫没有蓝色的海水部分,才能和下层的白沫重合在一起。&/p&&p&不过回退的时候处理不好就会出现这个状况:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-a06841b33cbd19f79e37c_b.jpg& data-size=&normal& data-rawwidth=&561& data-rawheight=&358& class=&origin_image zh-lightbox-thumb& width=&561& data-original=&https://pic4.zhimg.com/v2-a06841b33cbd19f79e37c_r.jpg&&&figcaption&波2回退的时候,波3还没有完全消失&/figcaption&&/figure&&p&波3的覆盖范围需要比波2稍短一些。波3的白沫需要在波2回退之前滚动出网格外。&/p&&p&&b&(三)海平面交界线&/b&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-fabfab08dbe78e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&633& data-rawheight=&477& class=&origin_image zh-lightbox-thumb& width=&633& data-original=&https://pic1.zhimg.com/v2-fabfab08dbe78e_r.jpg&&&/figure&&p&这是不太容易注意到但是非常重要的细节。海水靠近地平面的地方应该变亮,并逐渐过渡到接近天空的颜色,也就是一种类似菲涅尔的现象。&/p&&p&我们肯定不愿意在frag上正常算一次viewDir点乘法线。但这整个海只是一个Quad,也没法交给顶点去算,那怎么才能让远处的颜色发生变化呢?&/p&&p&用远景雾确实可以,但这还是要算。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-dbaf8fd721d734bcdb387e3_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&957& data-rawheight=&421& class=&origin_image zh-lightbox-thumb& width=&957& data-original=&https://pic4.zhimg.com/v2-dbaf8fd721d734bcdb387e3_r.jpg&&&/figure&&p&调整镜头后,我们可以俯瞰整个海的Quad的形状。可以看到这个Quad并不是纯色,并且其图像在任何方向观察都一样,所以它很可能是贴了个这样的贴图:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-5a8921beb34d0bb9fc0a0346ebc3b240_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&394& data-rawheight=&398& class=&content_image& width=&394&&&/figure&&p&放大到足够大,以接近水平的角度观察,视觉上就产生了这样的效果。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-7efb1a69c0ffcb9b69fe_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&758& data-rawheight=&306& class=&origin_image zh-lightbox-thumb& width=&758& data-original=&https://pic3.zhimg.com/v2-7efb1a69c0ffcb9b69fe_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-7fbd2da5ebd45e993523_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&758& data-rawheight=&250& class=&origin_image zh-lightbox-thumb& width=&758& data-original=&https://pic4.zhimg.com/v2-7fbd2da5ebd45e993523_r.jpg&&&/figure&&p&&b&(四)波浪&/b&&/p&&p&在大陆附近,海面是由一个Quad组成的,这多半是为了性能。为了表现海浪,风之杖就搞了个Billbroad粒子糊弄事。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-d47ced389e1d6ce_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic3.zhimg.com/v2-d47ced389e1d6ce_b.jpg& class=&content_image& width=&333&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-9d21c0aa90e26af48b062f099d37fc70_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&291& data-rawheight=&94& class=&content_image& width=&291&&&/figure&&p&一眼就能看出来简单实现方法,却不得不说效果还成。&/p&&p&但是一旦进入深海,大陆的资源被释放掉后,就会换成一个正规的海浪模拟。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-fbd6fae5f9c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic1.zhimg.com/v2-fbd6fae5f9c_b.jpg& class=&content_image& width=&333&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-ebb7658eefa92f2d2c27dc_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic1.zhimg.com/v2-ebb7658eefa92f2d2c27dc_b.jpg& class=&content_image& width=&333&&&/figure&&p&没有用尖波(Gerstner),海浪也不大,应该就是两个不同频率的正弦波的叠加,在顶点上直接计算。&/p&&p&海浪模拟为了节约计算成本,按说会做LOD,不过移动摄像机后发现LOD层级是一样的,只是到最远处变回了最初的Quad海面。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-395db45d3781bde73c9e5e20ace1d09b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic4.zhimg.com/v2-395db45d3781bde73c9e5e20ace1d09b_b.jpg& class=&content_image& width=&333&&&/figure&&p&为了方便视域裁剪按说要对海面分块,规则是近处分块密,远处分块稀疏,这样才能在满足裁剪的情况下减少DrawCall。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-26fe0d9a1fa50d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&527& data-rawheight=&514& class=&origin_image zh-lightbox-thumb& width=&527& data-original=&https://pic4.zhimg.com/v2-26fe0d9a1fa50d_r.jpg&&&/figure&&p&不过它LOD都没做,估计就是最大粒度按扇形随便分了下下吧。&/p&&p&另外这游戏整个海面是跟着主角一起移动的(意外地破绽不大),不需要动态创建销毁,其实很容易做分块。&/p&&p&&br&&/p&&p&进入深海后海面也有了纹理&/p&&figure&&img src=&https://pic1.zhimg.com/v2-662ddd034f9d0fab3d0e3ae_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&256& data-rawheight=&256& class=&content_image& width=&256&&&/figure&&p&两次采样,第二次UV翻倍,而且染成黑色纹理。同时还要做一次随机扰波增加波纹细节。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-f9ca2bf8c30ff6b1fdc23f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&64& data-rawheight=&64& class=&content_image& width=&64&&&/figure&&p&越远纹理则越淡。&/p&&p&&br&&/p&&p&&b&(五)船只尾迹&/b&&/p&&p&其实就是个随时间变宽的MeshTail,但是带了一个偏移每一段UV的正弦摆动效果(两个不同频率的正弦波叠加)&/p&&figure&&img src=&https://pic3.zhimg.com/v2-89b8316dded939efacf217_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic4.zhimg.com/v2-89b8316dded939efacf217_b.jpg& class=&content_image& width=&333&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-495e15ecce315d77d75c7fa_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&333& data-rawheight=&250& data-thumbnail=&https://pic3.zhimg.com/v2-495e15ecce315d77d75c7fa_b.jpg& class=&content_image& width=&333&&&/figure&&p&&br&&/p&&p&贴图:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-08b4d3c86be53c30bdbeead_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&128& data-rawheight=&64& class=&content_image& width=&128&&&/figure&&p&&/p&&p&&/p&&p&&/p&
雾通过线框绘制模式可以看出“雾”是由几个缓慢移动的自旋透明片构成(始终绑定在摄像机上),很寻常的做法。去掉纹理过滤后会更容易看出来。 云云实际实际上是Billboard片,出现时有缩放和透明度变化做过渡。但是这样做只能显示云的侧面贴图,无法处理云在…
&p&如果存在这个模拟器的话,那这个在PS4上的模拟器,应该&b&能模拟到PS3原机性能的10~15%&/b&。&/p&&p&下面给一个简单公式:&/p&&ol&&li&【公式1】异构指令集,且异构操作系统,的虚拟机,(宿主机)大概需要原机(目标机)&b&10x到40x&/b&的CPU算力,才能做到(目标机的)性能还原。&/li&&li&【公式2】异构指令集,且同构操作系统,的虚拟机,(宿主机)大概需要原机(目标机)&b&3X到5X&/b&的CPU算力,才能做到(目标机的)性能还原。&/li&&li&【公式3】同构指令集,且同构操作系统,的虚拟机,(宿主机)大概需要原机(目标机)&b&1X到1.2X&/b&的CPU算力,才能做到(目标机的)性能还原&/li&&/ol&&p&上述说的都是在使用高级优化技术的情况下。即什么多线程并行计算、什么JIT(运行编译)或DBT(动态二进制翻译)或Dynarec(动态重编译)等等,都优化到极限的情况下。&/p&&hr&&p&然后我们可以举几个例子,来证明上述公式的正确性:&/p&&h2&关于公式1:&/h2&&p&我们拿N64的模拟器来举例子。&/p&&p&答主&a class=&member_mention& href=&//www.zhihu.com/people/bda13dd5084& data-hash=&bda13dd5084& data-hovercard=&p$b$bda13dd5084&&@玉米&/a&在本帖中提到的n64模拟器ultra64,在Pentium2 400mhz +voodoo上可以全速模拟N64。我认为,描述的情况完全符合公式一。&/p&&p&但主要功劳,并不是答主认为的ultra64是HLE高阶模拟器,而是因为,Pentium2(400)的性能正好超过N64性能10倍。而且N64的图形系统基本不需要CPU参与模拟,N64的PPU是缩水版OGL系统。&/p&&p&这要归功于,N64的硬件方案是SGI帮助任天堂设计的。实际上,N64的图形模块是一个超级简化版IRIS-GL系统(我一家公司的老板就参与了SGI N64的项目,而且就负责图形模块)。而voodoo也是IRIS-GL的简化版(要知道voodoo创始团队统统是SGI出来的全班人马,而且SGI也投资了他们)。题外话,实际上OpenGL是IRIS-GL的一个扩展版,而在90年代中早期,SGI是这两个GL系统的唯一缔造者。&/p&&p&所以用voodoo去模拟N64图形模块,这些模拟基本上不消耗CPU性能。而N64的CPU 是66mhz处理器,其性能,正好是Pentium2 400mhz性能的1/10(去看specint92跑分吧)。&/p&&p&所以完全满足我们上述10×~40x的模拟器性能公式。所以,ultra64模拟器只要10x性能的PC就可以全速模拟,这与HLE模拟器毫无关系,完全是因为架构问题。这就像PS2模拟器要全速运行需要大于40x性能的PC,而不是10x性能的PC,也是同样因为PS2那奇葩的架构问题。总之,统统符合我们的公式。&br&&br&&/p&&h2&关于公式2:&/h2&&p&我们拿骁龙835 ARM版Windows笔记本举例子。&/p&&p&&a href=&//link.zhihu.com/?target=http%3A//news.mydrivers.com/1/556/556677.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&华硕骁龙835笔记本跑分现身:赛扬都不如-华硕,骁龙835,笔记本,GeekBench-驱动之家&/a&&/p&&p&在ARM版本的Windows中,微软内置了一个X86模拟器,利用这个模拟器,用户可以让X86版的各种程序,包括文中的Geekbench程序,都无缝运行在ARM处理器上。我们可以对比,&/p&&ul&&li&在手机上,骁龙835运行ARM版的Geekbench,在不降频的情况下,可以得到2000+。&/li&&li&而笔记本上,骁龙835通过微软Win10内置的X86模拟器运行X86版的Geekbench,只能达到850分。&/li&&/ul&&p&基本满足我们的公式2,但宿主机仅仅用了2.3倍(850/20000)的性能,就可以完美实现目标机的模拟。这源于微软超NB的优化技术!&/p&&p&&br&&/p&&h2&关于公式3:&/h2&&p&如果你有兴趣,自己装一个Virtualbox吧,然后装一个Windows,看看会是什么结果。你会眼见为实!&/p&&hr&&h2&为什么有些系统只要10倍性能就能流畅模拟,而有些却需要40倍甚至更多的性能才能流畅模拟?&/h2&&p&首先,如果需要40x性能,你可以认为,这个虚拟机每执行1条原机的CPU指令,都需要翻译成40条本地CPU指令。而对于“特权指令”的模拟,翻译后的指令数量往往还要加N倍。所以,如果没有硬件加速,这开销是巨大巨大的。&/p&&p&其次,就拿模拟PS2系统为例。按照Specint92的数据,PS2的R5900 CPU跑分只有8,等效的Geekbench整数跑分不会超过55。但是像PCSX2需要60~70倍原机的性能才能跑满帧,即你的i5 CPU需要Geekbench跑分达到3500左右,才能跑满帧。而号称全球最快的DamonPS2也需要40倍原机的性能,即你必须有一台Geekbench跑分2500的骁龙845,才能跑满帧。&/p&&p&为什么如此难以模拟?&/p&&ul&&li&首先,对于PS2这种上古游戏机来说,其图形系统需要CPU参与模拟,无法完全用GPU加速。&/li&&li&其次,对于PS2这种64位CPU的游戏机来说。如果用32位指令去模拟,代码一下子膨胀至少四倍。也就是说如果原来模拟一条目标机64位指令,需要宿主机10条64位指令,那如果改32位指令的话,指令数量将一下子膨胀到40条。&/li&&li&再次,专用IC芯片太多,都需要CPU参与模拟器。在PS2中一个CPU内包含了八个不同的处理器。这些都需要消耗额外的指令。&/li&&li&最后,指令计算结果是非标准化IEEE格式。这会导致指令再次膨胀3~5倍。&/li&&/ul&&p&这就是为什么像模拟PS2需要40倍原机性能,而模拟PS3只要需要10倍原机性能的原因。所以,这些问题,都不会出现在PS3模拟器中,因为PS3已经是一个标准计算机系统了。&/p&&hr&&h2&为什么上述提到的都是CPU算力,那图形部分的模拟开销不用考虑在内么?&/h2&&p&&b&的确不用!&/b&&/p&&p&&b&至少,对于PS3这种标准OES (OpenGL ES)系统来说,答案是非常肯定的&/b&。 (关于PlayStation 3专用的图形API软件“LibGCM”和PSGL,是索尼委托nVIDIA开发的,是对OES API和CG shading Language的一种封装) 当然,对于PS2、PS1、NDS等,这些纯日本工程师设计的,且非标准OGL(OpenGL)系统,要模拟他们图形模块,那就是另外一回事儿了。这模拟开销绝对是大大大大大的,这里甚至可以单独写一篇文章。就不展开了。&/p&&hr&&h2&总结一下,PS4可以流畅模拟PS3么?&/h2&&p&所以,不要在想什么内置PS3模拟器了,PS4的单核性能之比PS3高了30%。如果要硬上模拟器,按照10倍定律,只能模拟出原机性能的15%。这些性能只能玩一些PS3上面的2D游戏。&/p&&hr&&h2&那PS4可以流畅模拟什么?&/h2&&p&在PS4中,能流畅运行PS2模拟器,就已经是个奇迹了。&/p&&ul&&li&&b&因为PS4整数性能(单核心)只有PS2整数性能(单核心)的30倍都不到。就这点性能像要模拟PS2,这需要非常顶尖的优化技术&/b&。&/li&&/ul&&p&为什么?我们对比一下其他模拟PS2的模拟器:&/p&&ul&&li&实际上,&b&PCSX2在优化了15年之后&/b&,也只做到了&b&70~80X性能才能流畅模拟大部分PS2&/b&。实际上你需要Geekbench4跑分2700分以上的PC,才能用PCSX2勉强的流畅模拟PS2游戏。狠多游戏甚至要3500分以上的PC才能流畅模拟,这实际上等于说,&b&PCSX2需要100倍PS2的原机性能,才能流畅模拟全部PS2游戏。&/b&&/li&&li&而&b&手机端的DamonPS2(呆萌PS2模拟器)也需要40倍性能才能完美模拟PS2&/b&,才能流畅运行战神2。&/li&&/ul&&p&所以说,索尼的模拟器优化技术是业内非常顶尖的。&/p&&p&当然,PS2本身也不好被模拟。由于PS2包含了八个不同的计算处理单元,尤其是包含了两个向量处理器作为图形中的TnL的计算模块。这使得模拟它变得极其困难。&/p&&p&所以,当很多人质疑为什么PS3里面要奇葩的塞4个向量处理单元的时候,他们忘记了PS2里面就有2个向量处理单元,索尼日本本部设计出来的机器,从PS2到PS3,都是一脉相承的。&/p&&hr&&h2&未来什么设备能流畅模拟PS3、PS4?&/h2&&p&按照手机端CPU性能每年增长26%来计算,&/p&&ul&&li&预计2023年的手机性能,肯定是足以流畅模拟PS3游戏。&/li&&li&预计2024年的手机性能,肯定是足以流畅模拟PS4游戏。&/li&&/ul&&hr&&h2&而关于有些人问道说,为什么Xbox One可以模拟Xbox初代?&/h2&&p&那么因为xbox one与xbox都是同构指令集+同构操作系统(x86+win),所以模拟器开销特别小。但是,Xbox One中文诶什么无法模拟xbox360?那是因为Xbox one单核整数性能只有Xbox360单核整数性能的1.3倍,并没有达到3倍以上。&/p&&hr&&h2&模拟器的未来是什么?&/h2&&p&我相信,&b&在未来移动端(主要指Android)会逐渐代替PC端成为模拟器的主要阵地&/b&。移动端的处理器的单核整数性能(&b&注意,单核整数性能&/b&)会在5年内完全超越PC端的主流配置。模拟器所依托的性能将不是问题,如果预测,&b&5年内,移动端会流畅的运行PS3模拟器、WiiU模拟器、3DS模拟器、Wii模拟器、PS2模拟器,甚至Switch模拟器&/b&。&/p&&p&当然,现在&b&安卓上以及收集齐了从1970年到PS2时代的大部分游戏机的模拟器&/b&。有兴趣的可以参考这里,下面这个帖子对安卓端的游戏机模拟器做了一个简单的汇总。&/p&&a href=&https://www.zhihu.com/question//answer/& data-draft-node=&block& data-draft-type=&link-card& class=&internal&&Google Play 有哪些冷门但逆天的 app?&/a&&hr&&h2&为什么我们一直在强调CPU单核性能或单核整数跑分?&/h2&&p&游戏&b&模拟器,最主要就是吃单核性能&/b&,Dolphin、PPSSPP、DrasticDS、Cemu等等都是单线程的模拟器。所以,对大多模拟器来说,当移动端单核性能和PC端单核性能没有差别的时候,结局会是什么,这不显而易见么。&/p&&p&当然,&b&模拟器的多线程化是未来的趋势&/b&,包括PPSSPP、PCSX2、DamonPS2也有多线程的版本,其中&b&PPSSPP和PCSX2已经支持2个线程,&/b&但多线程功能默认都是关闭的,而&b&DamonPS2更为先进一些,其支持了4个线程,并且默认开启了多线程&/b&的。但实际上,现有的多线程模拟器,其计算瓶颈还在单一的主线程上,而不是额外的图形线程或其他线程上。所以,多线程模拟器的技术提升还有很长的路要走,当然,移动端处理器的多核性能也有很长的路要走,现在移动端多核睿频还不能像PC端那样,做到每个核心都按需分配性能,而且移动端的温控也是个大问题。&/p&&p&不管怎么样,从目前的种种迹象看来,模拟器的工程技术复杂度在逐年提高,而&b&现有模拟器&/b&还停留在“&b&作坊阶段&/b&”,完全是的&b&野鸡开源项目&/b&,根本和Linux、GCC、LLVM这样“工业化开源”项目有本质区别。像&b&LLVM、Linux都是“工业化开源项目”&/b&,都是有像IBM、Google、Apple等商业公司支撑的,可以保证项目稳定的开发进度与产品迭代,所以&b&“工业化开源项目”可以持久运作,而“野鸡开源项目”只要牵头的主程开发者退出项目,这项目基本就废了&/b&,这在模拟器界太常见了,比如PCSX2比如Desmume。所以,随着技术复杂度不断地提高,&b&商业化的模拟器将是未来的方向&/b&,并且一定会超越开源工程。就像传统的PC模拟器领域的中,VMware超越Virtualbox一样。要知道,模拟器、仿真器、虚拟机、容器,都只是虚拟机的不同层次而已。并且,&b&早已不存在法律问题。&/b&&/p&&p&当然,对于有人说搞个多线程不是很容易么,之类的言论我实在无话可说。我就反问一句,把模拟器改为多线程容易,还是把游戏改为多线程更容易?很明显,游戏机模拟器的多线程难度,要比游戏多线程的难度,高一到两个数量级。而现在又有几个游戏把多线程用好的呢?知乎里就有讨论游戏多线程的帖子,可以自行搜索。所以 ,对于模拟器来说,其多线程,又是多高难度的挑战呢?&/p&&p&&br&&/p&&p&到此为止,我们的讨论范围已经严重脱离本帖。&/p&&hr&&h2&未来,索尼下一代主机,PS5,会使用模拟器的方式,去兼容PS4或PS3么?&/h2&&p&当然,这里又引申出另外一个问题,每个世代主机之间,为什么很少实现CPU指令集的向下兼容?这个趋势,未来会改变么?这对模拟器,又有什么影响呢?这可以参考这个帖子:&/p&&a href=&https://www.zhihu.com/question//answer/& data-draft-node=&block& data-draft-type=&link-card& class=&internal&&你对PS5有什么看法或者预测?&/a&
如果存在这个模拟器的话,那这个在PS4上的模拟器,应该能模拟到PS3原机性能的10~15%。下面给一个简单公式:【公式1】异构指令集,且异构操作系统,的虚拟机,(宿主机)大概需要原机(目标机)10x到40x的CPU算力,才能做到(目标机的)性能还原。【公式2】…
&blockquote&PSN采用的是&a href=&//link.zhihu.com/?target=http%3A//www.baidu.com/s%3Fwd%3D%25E4%25BA%259A%25E9%25A9%25AC%25E9%ie%3Dgbk%26tn%3DSE_hldp00990_u6vqbx10& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&亚马逊&/a&的&a href=&//link.zhihu.com/?target=http%3A//www.baidu.com/s%3Fwd%3D%25E5%2585%25AC%25E6%259C%%25BA%2591%26ie%3Dgbk%26tn%3DSE_hldp00990_u6vqbx10& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&公有云&/a&服务,主机房设置在美国&a href=&//link.zhihu.com/?target=http%3A//www.baidu.com/s%3Fwd%3D%25E5%259C%25A3%25E5%259C%25B0%25E4%25BA%259A%25E5%%26ie%3Dgbk%26tn%3DSE_hldp00990_u6vqbx10& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&圣地亚哥&/a&(金坷垃的故乡),本质上是托管给第三方运营,而且只有一个主机房,也就是说,不管玩家注册的最后是哪个服务器,最终的网络连线请求都是达到圣地亚哥并反馈的。&br&&a href=&//link.zhihu.com/?target=http%3A//www.baidu.com/s%3Fwd%3D%25E4%25BA%259A%25E9%25A9%25AC%25E9%ie%3Dgbk%26tn%3DSE_hldp00990_u6vqbx10& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&亚马逊&/a&的&a href=&//link.zhihu.com/?target=http%3A//www.baidu.com/s%3Fwd%3D%25E5%2585%25AC%25E6%259C%%25BA%2591%26ie%3Dgbk%26tn%3DSE_hldp00990_u6vqbx10& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&公有云&/a&服务对大陆IP的支持非常不友好,网络的速度、稳定性都欠佳,这导致PSN的下载速度在大陆非常不稳定,好的时候可以满速,差的时候每秒4KB到16KB。&/blockquote&&br&解决方法:&br&1.挂VPN或者SSH;(最近R星更新了GTA V的抢劫模式,服务器爆炸,只有SSH能流畅,挂VPN效果都不好)&br&2.改DNS设置,看地区,对登入速度有改善,对联机稳定性改善不大;&br&韩国DNS:168.126.63.1/168.126.63.2,可提升下载速度;&br&谷歌DNS:8.8.8.8/8.8.4.4,较为稳定,可以作为联机用;&br&国内玩家自行架设DNS:106.185.46.149,可以尝试用这个,提供针对PSN线路的优化&a href=&//link.zhihu.com/?target=http%3A//bbs.a9vg.com/thread--1.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&【公益性DNS】自架设DNS服务器,解决psn部分问题(1月31日更新)&/a&;&br&3.等国服开放,sony已经架设国内CDN节点,在一月份测试过,速度很快,后来因为某些原因又关闭了,应该会随着3月20号的国行机器发售而再次开放。&br&======================================================================&br&3.18更新:今天索尼重新开放了PSN的国内节点,目前来看应该是会长期开放,请按WIN+R调出运行命令,输入ping &a href=&//link.zhihu.com/?target=http%3A//gs2.ww.prod.dl.playstation.net& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&gs2.ww.prod.dl.playstation.net&/span&&span class=&invisible&&&/span&&/a&,看返回的IP地址是否是国内的,如果延迟很低,那恭喜你,以后就不用改DNS了,直接设成自动就好了,下载会很快的(我在公司测试返回的是本省IP,延迟低到20ms以内,但是在家里测试的两次是东北的IP,一次是本地,延迟都在100ms左右)。&br&当然了,目前来说仅针对下载和登录,对于联网状况改善可能不大,另外更正一个误区:并不是网速越快联网就越稳定,这个跟每个地区的网络状况有关的。&br&======================================================================&br&联机不行还有一种可能:&br&你是NAT 3的网络。&br&请打开PS4的网络测试,看测试结果,里面有NAT类型,如果是NAT 3的话,基本上只能单机了。&br&&br&简单解释一下:&br&NAT类型1就是网线直接插在PS4上面,在PS4上直接拨号上网。&br&NAT类型2是PS4通过路由器连接,大多数玩家都是NAT 2,这两种联机一般都是没问题的。&br&NAT类型3是受限制的连接,经过两层路由转换,这种类型很多游戏没法直接联机,或者说联机很差,比如GTA V基本上搜不到玩家,连接不上或者战局里只有自己,顶多有两三个人,过一会儿就全没了。&br&&br&造成NAT 3网络的原因大多是因为运营商(尤其是电信)给你分配了内网IP,为什么呢?因为现在IPV4的地址快用完了!所以为了缓解IP地址紧缺,有很多地方的运营商会用NAT技术自己组一个大局域网,比如某个小区用一个或几个公网IP,然后给你分配的是这个局域网的内网IP。前一段好像运营商大规模的给用户换了内网IP,有些用户根本不知情。&br&内网IP一般上传受限制,上网高峰期容易拥堵,并且很多事情都不能做,对于PS4来说最要命的就是经过两层转换变成NAT 3网络,联机困难。&br&&br&检查方法:在路由器查看自己的WAN口IP地址,然后百度“IP”,如果不一致那么就是内网IP,一般内网地址会以“100”开头。&br&&br&解决办法:&br&1.挂VPN,但还是不太稳定,我试过。&br&2.打电话,喷运营商!&br&一定要拿出理直气壮的气势,就说自己在家弄了个远程监控,内网IP根本没法用,游戏也玩不成。如果没效果就威胁往工信部投诉,再没效果就真去工信部投诉,一般情况下能够解决。
PSN采用的是的服务,主机房设置在美国(金坷垃的故乡),本质上是托管给第三方运营,而且只有一个主机房,也就是说,不管玩家注册的最后是哪个服务器,最终的网络连线请求都是达到圣地亚哥并反馈的。 的服务对大陆IP的支持…
一种很流行的说法是,现在流行moba游戏、快餐游戏,所以rts游戏不流行了,所以sc2没落了。&br&也许这在中国可能说得通,&b&但是在韩国&/b&,完全是因果倒置。&br&&br&dota早在2004年就有了第一次职业比赛,当时版本是5.84&br&2005年左右,6.27稳定的时候,dota已经在国内流行起来了,我也是这个时候开始接触了dota&br&2006年,随着6.3x的出现,dota在国内发展的非常迅速&br&随后一路经历了6.32、6.38、6.41、6.43、6.48、6.51、6.56、6.61、6.67,到2010年的时候已经是6.77。&br&这期间dota的玩家遍布各地,dota的比赛如火如荼,很多经典比赛诞生。&br&&br&然而,年,在韩国是什么情况?sc1独霸天下,dota几乎无人问津。&br&2010年暴雪过来扯皮,sc1收到致命影响&br&2012年,磨来磨去暴雪终于把sc1彻底搞熄火&br&2012年,韩国正式停止sc1的比赛,全面拥抱sc2&br&&b&结果,大家发现sc2根本不行,但是sc1已经没有了,于是整个产业需要一个新的承载,dota1那么多年都没碰落后太多,dota2还没有出(2013年下半年才有),lol正好赶上这个潮流,于是整个韩国选择了lol,彻底放弃了sc2。&/b&&br&&br&多少年来,在韩国,几乎从来没有过dota的职业比赛&br&在韩国网吧占有率排行榜上,sc1一直名列前茅,dota时至今日也从未进入人们的眼帘&br&以年这段时间作为分界线,sc2从最初在前十(刚开始大家放下sc1全面拥抱sc2)到现在的2030开外,而lol从默默无闻迅速占领榜首并遥遥领先,再看看sc1,今天依然在前五。&br&&br&说因为moba导致rts不流行的人,无法解释,&b&在韩国&/b&&br&为什么dota从未流行?&br&为什么sc1结束之后,&b&几乎前后脚&/b&,lol就崛起了?&br&
补充细节:&br&1. lol的美服是2009年初开服的,韩服具体开服时间不确定但应该不会晚太多;&br&2. ,虽然sc1还在运行,但由于暴雪来回扯皮,已经是风烛残年,而在2011年底2012年初的时候,lol在韩国网吧排行榜仅仅第8,只有3%左右占有率。在这个时候韩国人还是喜欢rts?不那么喜欢moba?&br&3. 2012年之后,sc1彻底熄火,lol迅速爬到第一。难道突然之间韩国人就不喜欢rts了,就喜欢moba了?&br&4.为什么sc2曾经短暂的火过然后迅速不行了?&br&&br&把这个脉络理清楚就会非常明白,&b&是因为sc2根本无法继承sc1,才导致韩国转向去搞lol,而不是因为韩国去搞lol导致了sc2不行&/b&。&br&&br&韩国从职业选手到民间玩家,在年都能接受rts接受sc1主宰电竞行业,dota看都不看一眼,然后自从sc2正式取代sc1之后,就&b&突然的&/b&”喜欢moba游戏、快餐游戏,不再喜欢rts游戏”了,扶着lol登上王座?&br&&br&&br&=============================================&br&日,GSL主持人宣布,2016年的比赛还会继续,但是主办方和直播方将不再是GOM eXP(即GomTV),将由韩国AfreecaTV接手。&br&&br&不胜唏嘘,和kespa争斗那么多年,现在gomtv自己挂掉了,而接手的areecaTV就是承办各种sc1业余比赛起家的。&br&&br&如果是像dota1和dota2那样,两个游戏都很火,都很精彩,也都有几乎一样的深度。这时候你说喜欢dota1是因为情怀,这没有问题。&br&&br&而像sc1和sc2这样,&br&sc1统治电竞行业十几年,sc2从不温不火到GSL的主办方都办不下去;&br&sc1十年出了5个统治级选手,sc2五年1个统治级选手都没有,这难道不是游戏深度不足的直接体现?一个有足够深度的竞技游戏必然在一段时间内会出现统治级的选手,如同围棋的吴清源和象棋的胡荣华。如果深度不够,胜负会更偏向于随机,则很难出现统治级的选手。&br&再看看韩国网吧排行榜,现在sc1依然稳居前十(第五),而sc2呢?2030名开外了。&br&所以,这样的对比下,再用说支持sc1是情怀偏见,就说不通了。&br&&br&我身边很多人都是从war2就经历过来的,没谁会说war3不如war2,因为war3确实做得很好;&br&同样,没人会说大菠萝2不如大菠萝1,因为大菠萝2确实比大菠萝1更优秀;但是,大菠萝3不如大菠萝2,这也是公认的事情。&br&&br&怎么到了说sc2不如sc1的时候,就要用情怀、遗老遗少来解释了?&br&========================================&br&2014年1月,新年了,码点字吧。&br&&br&1. 暴雪设计sc1和sc2的完全是两个团队,sc1的团队理念是做最好的游戏,sc2的团队之前是做红警的!理念是做最赚钱的游戏。&br&&br&2. sc1三个种族,六种不同对抗,每一种都有不同的变化特点,是sc1深刻的游戏内涵重要的因素。&br&简单说几句:zvz:剪子包袱锤的开局选择,循环相克,操作是决定胜负的关键&br&
tvt:下围棋式的战略思维,关键点位的争夺是胜负关键&br&
pvp:介于zvz和tvt的极端之间,操作和意识并重&br&
tvz:最容易出经典比赛的对抗,林臻录,李双录,oov和july,nada和gorush,哪怕ipx和midas都有值得回味的地方。t和z的强势期不断变化,操作和战略提升到最极致的对抗。&br&
pvz:相对而言最不平衡的对抗,p容易吃亏特别在番战,但也最容易打出特别华丽的比赛,比如ra的天空宇宙流,比如bisu的钢丝流,比如july的十队流,场面十分过瘾。&br&
tvp:个人比较喜欢看的对抗,容易让人热血沸腾,5队zealot强冲tank阵的场面,瞬间灰飞烟灭的感觉,参看stork第一次osl夺冠对阵太子第五场的比赛。当然经典比赛也很多,比如nada与foru50bg的故事(war3和sc2恐怕就不要想着出现50兵营的场面了)。&br&&br&经典比赛太多了,篇幅所限不能赘述。&br&&br&3. 操作,蔡浩teq也谈了一些,sc1简单一句话归纳就是“你永远有做不完的事情”。从1-0十个数字编满了还不够用是很正常的。&br&认为sc2简化了操作运营从而可以使得正面战场更好看的人,其实不理解sc1的精髓。&br&sc1的精髓就是你永远有很多选择,可以选择偏重运营,也可以选择偏重操作,也可以选择中庸,并且不论你怎么选择,只要你做得足够好,你都能取得好成绩!&br&三大T时期,三大统治级选手的巅峰期非常接近,纵向来说整个sc1的战术体系没有大幅的变化,而sc1的平衡性也没有任何变化,三大T各自的风格习惯战术打法完全不同,在这样的情况下,三大T都取得了非常好的成绩,这才是sc1的魅力,条条大路通罗马。&br&&br&你可以练气宗,我可以练剑宗,他可以剑气结合,三个人都有好成绩&br&而sc2就是让大家只能练剑宗。&br&&b&三大T;天使、英雄和恶魔;july和gorush;bisu和stork;教主和太子&/b&&br&都是在几乎同一个时代,选手或侧重运营或侧重操作或侧重战术,然后大家都有好成绩&br&这样的例子在sc2中有么?&br&&br&4. 画面,sc1是256色的画面,很多人看不出来吧,顺便说一下大菠萝2也是256色的想不到吧。现在网络条件好了,看直播动不动都是高清甚至超清。十多年前看sc1的可口可乐杯的时候,那种转播画质之低,但也勉强能看,这说明了sc1的画质很适合观赏,辨识度很强。&br&反观sc2,即使是打sc1出身的人,也对sc2的画面颇有吐槽,更不要提没玩过sc的人,后面我会有图片做直观的对比。&br&&br&5. 战略战术,打sc2的或者是war3的,常容易出现说某一种套路占据绝对主流的位置。但sc1基本不会出现这样的情况。比较典型的是当年三大t时期,三个顶尖人族的战略战术习惯完全不同。曾经一度被视为bug战术的8bbtvz也很快被破解。&br&主流的一般是体系,而不是某种战术,比如05-07年的ipx创造的zvt拖把流体系,但巅峰维系1年之后也被全面破解。或者到了09年前后的zvp三矿五基地体系,这种体系变种十分多,懂行的人知道内部的变化之精细。&br&众所周知的教主ws流,那也是一步一步经历无数挫折建立起来的体系,并且除了教主本人,其他人用也用不像的体系。&br&这种特点造就了sc1里面每个选手各自不同鲜明的特点。&br&&br&&b&以前在sc1讨论平衡性,基本会被认为是月经贴&/b&&br&&b&再看看现在sc2,一代版本一代神,讨论平衡性简直就是论坛的主流&/b&&br&&br&&br&6. 恩怨情仇,这些因素也增添了很多看点,&br&个人恩怨如:林臻录,李双录,天使和恶魔,july和gf,july和nada,nada和gorush,oov和nada,师徒大战,bisu和ipx。&br&再加上之前osl的选人模式,即每个小组的种子选手可以选择自己的对手,更加增添了戏剧色彩。&br&战队恩怨如:skt和ktf的豪门恩怨,三星和oz的恩怨&br&&br&7. 2010年左右,从没有管过sc1电竞事业的暴雪跳了出来,以版权问题向韩国kespa开炮,索要巨额分成,双方各执一词,通过2年的拉锯终于成功的将sc1搞熄火。&br&2012年sc1正式推出历史舞台,整个韩国也开始全面拥抱sc2&br&几年过去了,如今2015年,在韩国网吧排行榜sc2从曾经的前十跌倒了如今20-30名开外&br&而sc1,始终占据前10的位置。&br&&br&8.虽然不是必要元素,但是一款竞技项目,大家很希望能够看到划时代的统治者表演,人们都有英雄情结,就好似人们喜欢乔丹和科比,喜欢马拉多纳和梅西。&br&我在其他问题下也说过这一点,比如怎样才能称为划时代的统治者?&br&以sc1为例:&br&1. &b&时间跨度为一年&/b&&br&时间太短则可能只是昙花一现,电竞行业1年时间已经比较充分了,而真正的王者,1年时间已经足够让他取得耀眼的战绩和成绩&br&&b&2. 一年内整体胜率超过70%,对阵任意同时代顶级选手不占明显劣势&/b&&br&高胜率和对同时代顶级选手的战绩是统治力独步天下的直接体现,配合第一条的限制,否则短期内的胜率参考意义不大&br&&b&3. 一年内获得顶级联赛冠军3个以上,至少有一次连冠&/b&&br&连冠最体现统治力,这也是为何马刺王朝有争议的原因&br&&br&sc2顶级联赛定义:GSL,IEM,WCS这三个&br&sc1的顶级联赛只算OSL和MSL&br&无争议达到这个标准的人在sc1里面有5个&br&&b&boxer、nada、oov、ipx、flash&/b&&br&这5个人在其巅峰时代,无数观众为之倾倒,看他们的比赛就是一种享受。&br&&br&我没细查过,如果sc2里面有,请告诉我是谁。&br&INnoVation?MVP?life?MC?&br&&b&还是一个都没有?&/b&&br&&br&&br&&br&&br&===================================&br&下面多图注意&br&&br&9.我曾经多次给根本不会玩sc1的人介绍sc1的比赛,在一旁讲解,几场比赛下来,观众都能感受到sc1比赛的魅力,并能够开始看懂一些门道,愿意在我的陪同下继续看更多的比赛。&br&&br&而sc2,我介绍根本不会玩sc2的人看sc2的比赛,基本都表示完全完全是一坨,看不懂哪是哪,更不要提欣赏比赛了。&br&&br&不相信大家大可以找sc1和sc2都不会的人来看看下面这些图,我特意选取了高画质和低画质不同的情况,同族对战和异族对战不同的情况,直观的感觉最真实。&br&&figure&&img src=&https://pic4.zhimg.com/6f6b0fdeccee28f2b21403_b.png& data-rawwidth=&557& data-rawheight=&405& class=&origin_image zh-lightbox-thumb& width=&557& data-original=&https://pic4.zhimg.com/6f6b0fdeccee28f2b21403_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/95df439f716dbc63e1aa67b53abf0bf2_b.png& data-rawwidth=&561& data-rawheight=&414& class=&origin_image zh-lightbox-thumb& width=&561& data-original=&https://pic3.zhimg.com/95df439f716dbc63e1aa67b53abf0bf2_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/929b2fd53f756730fae02ac9529537fd_b.png& data-rawwidth=&600& data-rawheight=&449& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic2.zhimg.com/929b2fd53f756730fae02ac9529537fd_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/c80e8be41ca42808ac79d_b.png& data-rawwidth=&600& data-rawheight=&438& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic2.zhimg.com/c80e8be41ca42808ac79d_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/2c66c6d79da9c148cb336b409d8c3c11_b.png& data-rawwidth=&600& data-rawheight=&480& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic2.zhimg.com/2c66c6d79da9c148cb336b409d8c3c11_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/86bae861edad7eb38ee48b_b.png& data-rawwidth=&556& data-rawheight=&418& class=&origin_image zh-lightbox-thumb& width=&556& data-original=&https://pic4.zhimg.com/86bae861edad7eb38ee48b_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/0b8a7ba36ff176af2d15c51c_b.png& data-rawwidth=&546& data-rawheight=&401& class=&origin_image zh-lightbox-thumb& width=&546& data-original=&https://pic1.zhimg.com/0b8a7ba36ff176af2d15c51c_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/44a0f6c9fbda2e34c92a5c541a3dad82_b.png& data-rawwidth=&557& data-rawheight=&408& class=&origin_image zh-lightbox-thumb& width=&557& data-original=&https://pic3.zhimg.com/44a0f6c9fbda2e34c92a5c541a3dad82_r.jpg&&&/figure&&br&&br&&br&&br&&br&&br&&br&&br&sc2的对战画面,我表示完全看不懂&br&&figure&&img src=&https://pic3.zhimg.com/ccaff4269f0e_b.png& data-rawwidth=&600& data-rawheight=&342& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic3.zhimg.com/ccaff4269f0e_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/f1b7f1de33e325ef9230212dece7c8d8_b.png& data-rawwidth=&600& data-rawheight=&317& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic1.zhimg.com/f1b7f1de33e325ef9230212dece7c8d8_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/d5dc763a4abf6d14032fcf_b.png& data-rawwidth=&600& data-rawheight=&336& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic4.zhimg.com/d5dc763a4abf6d14032fcf_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/5ab211f5f922ec_b.png& data-rawwidth=&600& data-rawheight=&317& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic1.zhimg.com/5ab211f5f922ec_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/bb3eea655cc7cb6c25b6f4daff9e25da_b.png& data-rawwidth=&600& data-rawheight=&342& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic3.zhimg.com/bb3eea655cc7cb6c25b6f4daff9e25da_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/39217bbd5e2c9e202af47b55b7291e90_b.png& data-rawwidth=&600& data-rawheight=&337& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic1.zhimg.com/39217bbd5e2c9e202af47b55b7291e90_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/ac51e1c671f2daa5f7ec50f_b.png& data-rawwidth=&600& data-rawheight=&322& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic4.zhimg.com/ac51e1c671f2daa5f7ec50f_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/9c7fae5c7e3894bcfd0c_b.png& data-rawwidth=&600& data-rawheight=&327& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic1.zhimg.com/9c7fae5c7e3894bcfd0c_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/78e5eccdbbcbb4940ccd_b.png& data-rawwidth=&600& data-rawheight=&331& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic2.zhimg.com/78e5eccdbbcbb4940ccd_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/6d36bdfc299c823cf983ed2b9fe59480_b.png& data-rawwidth=&600& data-rawheight=&333& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic1.zhimg.com/6d36bdfc299c823cf983ed2b9fe59480_r.jpg&&&/figure&
一种很流行的说法是,现在流行moba游戏、快餐游戏,所以rts游戏不流行了,所以sc2没落了。 也许这在中国可能说得通,但是在韩国,完全是因果倒置。 dota早在2004年就有了第一次职业比赛,当时版本是5.84 2005年左右,6.27稳定的时候,dota已经在国内流行起…
&p&感谢 &a href=&https://www.zhihu.com/people/c019a0fdc8231& data-hash=&c019a0fdc8231& class=&member_mention& data-hovercard=&p$b$c019a0fdc8231&&@楚天阔&/a&(&a href=&https://link.zhihu.com/?target=https%3A//github.com/tkchu& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&tkchu&/a&)编写脚本及整理中文译本数据,自动从&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&英文版&/a&生成中文版,SVG / PDF 版本中的书籍图片现在链接至豆瓣页面。&/p&&p&Github &a href=&https://link.zhihu.com/?target=https%3A//github.com/miloyip/game-programmer/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&miloyip/game-programmer&/a&&/p&&p&检视/下载中文版 &a href=&https://link.zhihu.com/?target=https%3A//miloyip.github.io/game-programmer/game-programmer-zh-cn.svg& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&SVG&/a& / &a href=&https://link.zhihu.com/?target=https%3A//miloyip.github.io/game-programmer/game-programmer-zh-cn.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&PDF&/a&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-1adb68e99f698bb472fa_b.jpg& data-rawwidth=&800& data-rawheight=&18552& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic2.zhimg.com/v2-1adb68e99f698bb472fa_r.jpg&&&/figure&
感谢 ()编写脚本及整理中文译本数据,自动从生成中文版,SVG / PDF 版本中的书籍图片现在链接至豆瓣页面。Github 检视/下载中文版
&figure&&img src=&https://pic2.zhimg.com/v2-5e98f0b9bfc2baa_b.jpg& data-rawwidth=&1920& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic2.zhimg.com/v2-5e98f0b9bfc2baa_r.jpg&&&/figure&&p&这算是一片技术型文章,并不涉及剧透,玩后感以及游戏素质的客观评价。也算是个大坑,陆续更新更多的。&/p&我找了张特大的title图片,不知道会不会被压缩。&p&我是个非典型的任豚。非典型指的是,我不会参与与索狗的撕逼,不会拿任地狱的游戏作为信仰,去展开各种圣战。&/p&&p&某种意义上说,我也是个非典型的索狗。&/p&&p&第一时间买了NS和Zelda,然后从前天开始,在上面用了大概八个小时,游戏进度慢的可怜。一来我游戏天赋有限,很多想明白怎么过的地方要反复多次才能过去,二来我一直在揣摩一些游戏的实现,剧情上,策划上,技术上都会去考虑,期间还会动手用Unity做一些东西,来验证我的想法。&/p&&p&&figure&&img src=&https://pic4.zhimg.com/v2-29d6a3dcfe924_b.jpg& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-29d6a3dcfe924_r.jpg&&&/figure&&b&1. 距离雾和Bloom&/b&&/p&&p&资深绿帽侠林克苏醒时置身于一座山洞中。第一眼印象很深的是游戏中无处不在的距离雾和Bloom,有一种模模糊糊又很梦幻的感觉和卡通渲染风格相得益彰。&/p&&p&事实上,距离雾和bloom并不仅仅是为了增加表现效果,同样,还要掩盖材质分辨率的低下。&/p&&p&&figure&&img src=&https://pic1.zhimg.com/v2-fcaeecfb568989_b.jpg& data-rawwidth=&789& data-rawheight=&441& class=&origin_image zh-lightbox-thumb& width=&789& data-original=&https://pic1.zhimg.com/v2-fcaeecfb568989_r.jpg&&&/figure&出于NS机能限制,本作大部分贴图的分辨率很低,随着角色推进,地形/植被的LOD和mipmap切换十分明显。在这个前提下,距离雾使这种切换更加自然。而开放世界中的材质/颜色分布相对集中,bloom自身的特性掩盖了低分辨率贴图细节缺失。&/p&&p&另外,部分场景中使用了DOF,一般在剧情推进时&/p&&p&&b&2.花花草草和风&/b&&/p&&br&&figure&&img src=&https://pic3.zhimg.com/v2-eb610ebfa9a1b99565a71_b.jpg& data-rawwidth=&683& data-rawheight=&360& class=&origin_image zh-lightbox-thumb& width=&683& data-original=&https://pic3.zhimg.com/v2-eb610ebfa9a1b99565a71_r.jpg&&&/figure&开放世界中大量存在的草不但补充了地表的细节,掩盖了低分辨率的场景贴图,同时也作为不可或缺的交互/效果表现工具。&p&正是因为这些花花草草奠定了本作的美术风格。草可与 场景中的其他物体交互,不管是主角,哥布林,还是哥布林扔出的石头都能正确的reactive。草甚至可以燃烧。同时,草具有LOD和密度的按距离变化。&br&我和一个同事简单的实现了一下Demo。时间关系没有增加光照,也没有调整很好的颜色,密集恐惧症患者绕行。&br&&figure&&img src=&https://pic4.zhimg.com/v2-19ccf9a14aef8f650ea82ca_b.jpg& data-rawwidth=&1033& data-rawheight=&671& class=&origin_image zh-lightbox-thumb& width=&1033& data-original=&https://pic4.zhimg.com/v2-19ccf9a14aef8f650ea82ca_r.jpg&&&/figure&&br&我们做了如下的事情:首先如此规模的草应该是使用GPU Instancing 绘制的,那么我们需要把每帧需要绘制草的信息生成。草自身需要随风摆动,为了摆动更自然,草应该分多节,我们这里选择了7个三角形,分成三节。为了有区分的刷草(某些位置不刷,比如此位置是石头/树木/建筑),我们支持了密度图。&figure&&img src=&https://pic1.zhimg.com/v2-1cee58c47df_b.jpg& data-rawwidth=&163& data-rawheight=&125& class=&content_image& width=&163&&&/figure&为了在绘制的时候减小数据传输,我们首先生成了场景的高度图(如果是基于传统地形的渲染方式,可直接使用地形的高度图)。根据高度图决定本次渲染中每根草的位置,然后使用GPU Instancing 绘制。高度图使用正交相机从上到下,然后实现了一个shader每个像素的世界坐标y记录在高度图上,其实只占用了一个分量,其他的可以留着做扩展。高度图只取一次,之后都是读操作。&br&&br&生成渲染草的位置使用Compute Shader实现。直接将结果写入compute buffer,然后使用Unity的DrawMeshInstancedIndirect()绘制,为此,我们使用了Unity 5.6的Beta版本。&br&&figure&&img src=&https://pic3.zhimg.com/v2-c5f82b9d4fa0c713eab7be4e_b.jpg& data-rawwidth=&1006& data-rawheight=&668& class=&origin_image zh-lightbox-thumb& width=&1006& data-original=&https://pic3.zhimg.com/v2-c5f82b9d4fa0c713eab7be4e_r.jpg&&&/figure&上图为筛选后实际渲染的范围。&br&&br&风同样使用Compute Shader 刷新。后续考虑读取Unity中Wind Zone的设置,这样就能和粒子系统共用风信息了。&br&&br&先写到这儿,接着跟同事优化草的效果去了。争取这周把光和unity pbs加上,看起来就没这么丑了&/p&&p&好多人回复,先把剩下大纲列出来慢慢写,工作比较忙,更新慢,大家见谅&br&&/p&&p&3月12日更新下最新的草地的进度,同事已经把PBS加进去了,果然还不错。下周写个草的综述,视频:&a href=&https://link.zhihu.com/?target=https%3A//v.youku.com/v_show/id_XMjYzMTk4MzcyMA%3D%3D.html%3Fspm%3Da2h0w.6843.4& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Unity3D 实现真实大面积草的渲染&/a&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-9b42fae54a5c_b.jpg& data-rawwidth=&512& data-rawheight=&290& class=&origin_image zh-lightbox-thumb& width=&512& data-original=&https://pic2.zhimg.com/v2-9b42fae54a5c_r.jpg&&&/figure&&br&&p&3. &b&昼夜变幻/天气系统(光的艺术 + 更合理的Post Effect)&/b&&br&其实这是个很大的话题,我把它细分下:&br& ·太阳位置变化和光线位置的变化:&br& ·光晕,丁格尔(god ray)现象的作用和实现:&br& ·大气散射:&br& ·基于2D柏林噪音的云&br& ·风的流向&/p&&p&4. &b&场景着色(写实和卡通效果的穿插)&/b&&br&不纯粹的卡通场景的意义和实现&br& 场景的层次,LOD的艺术&/p&&p&5. &b&角色着色(卡通渲染)&/b&&br&着重讲一下卡通渲染以及塞尔达中用到的低代价的卡通着色&/p&&br&&p&6. &b&讲故事的艺术和技术&/b&&br&综述,塞尔达如何用不那么先进的技术和不那么优秀的美术工作来实现满分大作&/p&
这算是一片技术型文章,并不涉及剧透,玩后感以及游戏素质的客观评价。也算是个大坑,陆续更新更多的。我找了张特大的title图片,不知道会不会被压缩。我是个非典型的任豚。非典型指的是,我不会参与与索狗的撕逼,不会拿任地狱的游戏作为信仰,去展开各种…
&figure&&img src=&https://pic3.zhimg.com/v2-f748fda06d505eae959bf6_b.jpg& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic3.zhimg.com/v2-f748fda06d505eae959bf6_r.jpg&&&/figure&《塞尔达传说:荒野之息》的制作人青沼英二在介绍荒野之息的时候,表示他想让这个游戏看起来具有&b&日本动画片(Anime)的风格&/b&。同时,他又希望对于荒野的描绘有&b&外光派(Plein-Air)的感觉&/b&。《塞尔达传说:荒野之息》把这两点都做到了,而且也印证了目前游戏美术风格的发展风向。&figure&&img src=&https://pic4.zhimg.com/v2-bd8947afed489b847bf3dc_b.jpg& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-bd8947afed489b847bf3dc_r.jpg&&&/figure&&p&&b&卡通渲染&/b&&/p&&p&青沼英二想实现的日本动画片风格是什么样的呢?就是&b&物体亮面暗面分明&/b&的赛璐璐(Cel-Shading)风格。做动画时,动画师往往只是把亮面和暗面概括出来,这样比涂抹中间渐变色省了很多时间,而且也能够展现角色的立体感。比如下图中人物身上没有渐变,男孩的衣服要么是亮面浅绿色,要么是暗面深绿色。这种动画风格要如何展现在游戏中呢?&figure&&img src=&https://pic1.zhimg.com/v2-d6bd2e70f3d16a92de4c_b.jpg& data-rawwidth=&1440& data-rawheight=&900& class=&origin_image zh-lightbox-thumb& width=&1440& data-original=&https://pic1.zhimg.com/v2-d6bd2e70f3d16a92de4c_r.jpg&&&/figure&当今大多数游戏都采用了物理渲染(Physical Rendering)的方式来表现写实感。比如我现在把一个木偶通过物理渲染的方式展现出来:&br&&/p&&p&&figure&&img src=&https://pic4.zhimg.com/v2-4bfad3cedd6bff5a5a78c_b.jpg& data-rawwidth=&800& data-rawheight=&600& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic4.zhimg.com/v2-4bfad3cedd6bff5a5a78c_r.jpg&&&/figure&可以看到,物理渲染准确的计算每个面的角度和他们的漫反射和高光,形成柔和的渐变。无论是缝隙之间的环境光遮蔽,还是肩膀与躯干连接处明显的全局光,都力图在游戏中还原最真实的世界。&/p&&p&然而这和我们想要的简洁,清晰的日本动画风相差甚远。为了在游戏中完成赛璐璐风格,我们需要使用卡通渲染(Toon Rendering):&/p&&p&&figure&&img src=&https://pic4.zhimg.com/v2-3c0d24ac40_b.jpg& data-rawwidth=&800& data-rawheight=&600& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic4.zhimg.com/v2-3c0d24ac40_r.jpg&&&/figure&在这里,同样的一个木偶,我们可以看到使用卡通渲染后,暗面,亮面和高光界限分明,没有含糊的余地。具体做法是在引擎里定义材料(Material)的时候使用Cel材质,定义物体的暗面,亮面和高光分别对应着什么颜色。这就可以有很大的艺术自由,因为你可以定义暗面是紫色的,亮面是黄色的,虽然在现实中不符合光学,但是却别有风格。&/p&&p&我们现在来看一下《塞尔达传说:荒野之息》中人物的表现:&figure&&img src=&https://pic4.zhimg.com/v2-ba98fe8e2c1_b.jpg& data-rawwidth=&1920& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&https://pic4.zhimg.com/v2-ba98fe8e2c1_r.jpg&&&/figure&&/p&&br&&p&图中可以看到人物的高光范围很窄,而且衣服上的一些高光都是材质画上去的。而这些都给予了艺术家足够的自由。比如让光的强度达到一定值后才使用高光颜色。比如下图,我就缩小了高光的范围,加大了亮面的范围,更加倾向于游戏中的画面。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-8f7af186e7f1cc64380fc1afd38970cf_b.jpg& data-rawwidth=&898& data-rawheight=&68& class=&origin_image zh-lightbox-thumb& width=&898& data-original=&https://pic1.zhimg.com/v2-8f7af186e7f1cc64380fc1afd38970cf_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-ee1f6bec2b988_b.jpg& data-rawwidth=&898& data-rawheight=&70& class=&origin_image zh-lightbox-thumb& width=&898& data-original=&https://pic2.zhimg.com/v2-ee1f6bec2b988_r.jpg&&&/figure&&p&&figure&&img src=&https://pic3.zhimg.com/v2-5b6fb9e59aa43e318e986a34a7ab887a_b.jpg& data-rawwidth=&800& data-rawheight=&600& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic3.zhimg.com/v2-5b6fb9e59aa43e318e986a34a7ab887a_r.jpg&&&/figure&卡通渲染对比物理渲染有诸多好处,首先就是它的&b&渲染量非常小&/b&,不需要计算全局光和环境光遮蔽,也无需计算复杂的材质反射,大大减轻了硬件负担。在任天堂Switch的小身板里也能畅快游玩。第二就是它&b&不容易过时&/b&。毕竟物理渲染年年革新,写实风格一年比一年强。当时惊艳于GTA4的你已经习惯了GTA5的写实城市,对之前世代的写实游戏嗤之以鼻。而像《Firewatch》这种风格化的作品却永远不会有人吐槽画面差。这次的塞尔达也利用了卡通渲染保证了风格化的感官体验。&/p&&p&&b&外光派&/b&&br&&/p&&br&&p&外光派指的是在户外描绘风景,因为户外的光线变换很快,画家需要迅速抓住景色特征,用笔触和色块高度概括,在光线明显变化前完成作品。&br&&/p&&p&&figure&&img src=&https://pic1.zhi}

我要回帖

更多关于 内网通过公网ip上网 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信