dnf手游版游玩感悟

??????dnf手游于5月21號正式上線,作為一個dnf端游老玩家,并且偶爾上線ppk,自然下載了手游版,且玩了幾天。
??????不得不說dnf手游的優化做到了極好的程度。
??????就玩法系統這塊,因為dnf屬于城鎮+地下城模式,相比現在的開放世界或者半開放世界3d手游,屬于比較好優化的一類。
??????比如城鎮模塊的切換進出口,做好加載卸載就能用時間換空間,通過加載進度頁面掩蓋卸載當前城鎮加載下個城鎮的目的。城鎮中的各個區域的切換就不必考慮加載卸載了,一股腦都在場景里,通過坐標的移動和漸變黑屏的切換手法完成。
??????再比如地下成的進入,同樣使用加載卸載和進度頁面,做到和城鎮的互相切換。至于地下城不同房間,也是黑屏漸變切換+坐標移動即可。
??????UI界面這塊,dnf手游用到了動靜分離和分幀加載。因為UI的繪制調用是以Canvas為單位的。所以當UI策劃和UI設計師完成UI模塊的設計后,UI程序根據實際的UI界面業務功能,將一個UI模塊劃分為永遠不動的靜態元素(如各個背景)+一直在動的活動元素(如動態生成的物品),配合UI對象池的使用。特別注意,此時的UI對象池設計上要考慮分幀生成的概念,比如要生成100個裝備圖標,不要在一幀內生成,此時如果一幀生成一個(或可配置個數)再緩存使用,則大大降低了單幀負載壓力,可以讓UI界面的響應速度加快。當然已經生成生成好的復雜UI界面,在退出時也可根據UI管理器的調度策略,并不銷毀,而是移動坐標到視口外,再次使用則可快速加載。
??????當然分幀加載的方案在需要高響應速度的地方都可以使用。
??????地下城戰斗系統這塊,則是我的知識盲區了,雖然我做過卡牌戰斗系統,但是和dnf這種手感的格斗游戲比起來,簡直小巫見大巫,我一直覺得就手感這一塊,沒有超越dnf的格斗游戲。
??????同時dnf手游有一點讓我靈光一閃,很小的一個地方,就是子UI界面彈出,背景虛化這一塊,如下:
在這里插入圖片描述
??????我已經好長時間沒怎么做UI界面了,在我印象中,做子UI界面彈出的時候,為了怕和背景UI界面產生視覺上的融合,都會給一個黑色半透明背景,如下:
在這里插入圖片描述

??????感覺dnf手游這種高斯模糊挺好,雖然以前都用于3D和UI視覺分離這一塊,但是移植到UI與UI之間也挺不錯,這里順便實現一下:

Shader "UIWindowPKG/UIBlurUnlitShader"
{Properties{_GaussSize("Guass Size",Range(0,10)) = 1}SubShader{Tags { "RenderType"="Opaque" }LOD 100GrabPass{"_GrabTexture"}Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv[9] : TEXCOORD0;float4 vertex : SV_POSITION;};int _GaussSize;sampler2D _GrabTexture;float4 _GrabTexture_TexelSize;static float gaussMatrix[9] = {0.05854983,0.09653235,0.05854983,0.09653235,0.1591549,0.09653235,0.05854983,0.09653235,0.05854983};v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);float4 gpos = ComputeGrabScreenPos(o.vertex);float2 guv = float2(gpos.x/gpos.w,gpos.y/gpos.w);int c = 1;for (int x = 0; x < 3; x++){for (int y = 0; y < 3; y++){o.uv[x * 3 + y] = guv + _GrabTexture_TexelSize.xy*float2((y - c)*_GaussSize, (c - x)*_GaussSize); }}return o;}fixed4 frag (v2f i) : SV_Target{fixed4 col = fixed4(0,0,0,0);for(int k=0;k<9;k++){col += tex2D(_GrabTexture, i.uv[k])*gaussMatrix[k];}return col;}ENDCG}}
}

??????原理就是GrabPass+一次高斯濾波,效果如下:

在這里插入圖片描述
??????我對比了一下dnf手游和一些3A游戲的做法,感覺dnf手游的實現屬于效率低下且效果不好,dnf手游用了實時的_GrabPass采樣,而不是像3A游戲一樣用一次性的截圖采樣,好處是實時顯示背景畫面。同時dnf手游的濾波只用了一次,可能是為了性能考慮,雖然平衡了實時采樣的損耗,但是效果卻比較差。而3A游戲用了多次迭代濾波,對比效果則更加強烈,當然畫面是“靜止”的。
??????繼續打dnf手游,以后把這個功能美化優化一下。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/22240.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/22240.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/22240.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

前端工程化工具系列(三)—— Stylelint(v16.6.1):CSS/SCSS 代碼質量工具

Stylelint 是 CSS/SCSS 的靜態分析工具&#xff0c;用于檢查其中的違規和錯誤。 1. 環境要求 v16 以上的 Stylelint&#xff0c;支持 Node.js 的版本為 v18.12.0。 在命令行工具中輸入以下內容后回車&#xff0c;來查看當前系統中 Node.js 的版本。 node -vNode.js 推薦使用…

Shell腳本快速入門

為什么要學shell&#xff1f;能做什么&#xff1f; 答&#xff1a;CI/CD 持續集成&#xff0c;自動化部署作業方式&#xff0c;需要將一系列linux命令程序化&#xff0c;shell 就能做到。

13. 《C語言》——【strlen函數的使用和模擬實現】

文章目錄 前言strlen函數strlen函數的使用strlen函數的3種方法實現方法1方法2方法3 總結 前言 各位老板好~ &#xff0c; 今天我們講解strlen函數如何去使用以及如何去模擬實現strlen函數。希望各位老板能夠給一個點贊和一個大大的關注&#xff0c;感謝各位老板&#xff01;str…

塑料焊接機熔深對激光焊接質量有什么影響

塑料焊接機的熔深對焊接質量具有直接且顯著的影響。以下是熔深對焊接質量影響的詳細解釋&#xff1a; 1. 焊接強度&#xff1a;熔深直接決定了焊縫的截面積&#xff0c;從而影響焊接接頭的強度。較深的熔深意味著焊縫的截面積更大&#xff0c;可以提供更強的結合力&#xff0c;…

OpenStreetMap部署(OSM)

參考&#xff1a;https://github.com/openstreetmap/openstreetmap-website/blob/master/DOCKER.md OpenStreeMap 部署 操作系統建議使用 Ubuntu 22 版本 安裝 Docker # 更新軟件包索引&#xff1a; sudo apt-get update # 允許APT使用HTTPS&#xff1a; sudo apt-get inst…

【計算機組成原理】詳談計算機發展歷程

計算機發展歷程 導讀一、計算機的誕生1.1 歷史背景1.2 計算機的發明 二、計算機硬件的發展1.1 計算機的四代變化1.1.1 第一代計算機bug的由來 1.1.2 第二代計算機1.1.3 第三代計算機半導體存儲器的發展 1.1.4 第四代計算機 1.2 個人計算機的發展1.2.1 微處理器的發展1.2.2 個人…

AIGC之Stable Diffusion Web Ui 初體驗

前言 Stable Diffusion辣么火&#xff0c;同學你確定不嘗試一下嘛&#xff1f; 純代碼學習版本搞啦&#xff0c;Web Ui 也得試試咧 網上有很多安裝Stable Diffusion Web Ui 的介紹了&#xff0c;我在這說一下我的踩坑記錄 想安裝的同學&#xff0c;看這個鏈接 萬字長文&#x…

U-Net: Convolutional Networks for Biomedical Image Segmentation--論文筆記

U-Net: Convolutional Networks for Biomedical Image Segmentation 資料 1.代碼地址 2.論文地址 https://arxiv.org/pdf/1505.04597 3.數據集地址 論文摘要的翻譯 人們普遍認為&#xff0c;深度網絡的成功訓練需要數千個帶注釋的訓練樣本。在本文中&#xff0c;我們提出…

44-5 waf繞過 - SQL注入繞WAF方法

環境準備: 43-5 waf繞過 - 安全狗簡介及安裝-CSDN博客然后安裝sqlilabs靶場:構建完善的安全滲透測試環境:推薦工具、資源和下載鏈接_滲透測試靶機下載-CSDN博客 一、雙寫繞過 打開sql靶場的第一關:http://127.0.0.1/sqli-labs-master/Less-1/?id=1 驗證一下waf是否開啟防…

C\C++內存管理(未完結)

文章目錄 一.C\C內存分布二.C語言中動態內存管理方式&#xff1a;malloc/calloc/realloc/free三.C內存管理方式3.1.new/delete操作內置類型3.2.new和delete操作自定義類型 四.operator new與operator delete函數&#xff08;重要點進行講解&#xff09;4.1. operator new與oper…

npm install 出錯,‘proxy‘ config is set properly. See: ‘npm help config‘

背景 從遠程clone下項目之后&#xff0c;使用命令 npm install 安裝依賴&#xff0c;報錯如下 意為&#xff1a; 報錯&#xff1a; npm犯錯!network與網絡連通性有關的問題。 npm犯錯!網絡在大多數情況下&#xff0c;你背后的代理或有壞的網絡設置。 npm犯錯!網絡 npm犯錯…

spring-kafka-生產者服務搭建測試(SpringBoot整合Kafka)

文章目錄 1、生產者服務搭建1.1、引入spring-kafka依賴1.2、使用Java代碼創建主題分區副本1.3、發送消息 1、生產者服務搭建 1.1、引入spring-kafka依賴 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/…

KOL營銷新篇章:互動式內容與線上活動如何助力品牌增長

在當今數字化時代&#xff0c;KOL營銷已成為品牌推廣的重點策略之一。然而&#xff0c;隨著市場競爭的加劇&#xff0c;單純依靠KOL的曝光已經不再足夠&#xff0c;更多的是需要與用戶進行互動&#xff0c;幫助品牌與受眾建立更緊密的聯系。本文將探討KOL營銷如何通過互動式內容…

《企業應用架構模式》學習指南

導讀&#xff1a;企業應用包括哪些&#xff1f;它們又分別有哪些架構模式&#xff1f; 世界著名軟件開發大師Martin Fowler給你答案 01什么是企業應用 我的職業生涯專注于企業應用&#xff0c;因此&#xff0c;這里所談及的模式也都是關于企業應用的。&#xff08;企業應用還有…

怎么用NodeJS腳本實現遠程控制空調

怎么用NodeJS腳本實現遠程控制空調呢&#xff1f; 本文描述了使用NodeJS腳本調用HTTP接口&#xff0c;實現控制空調&#xff0c;通過不同規格的通斷器&#xff0c;來控制不同功率的空調的電源。 可選用產品&#xff1a;可根據實際場景需求&#xff0c;選擇對應的規格 序號設備…

MySQL從入門到高級 --- 12.事務 13.鎖機制 14.日志

文章目錄 第十二章 && 第十三章 && 第十四章&#xff1a;12.事務12.1 特性12.2 隔離級別 13.鎖機制13.1 各存儲引擎對鎖的支持狀況&#xff1a;13.2 鎖特性13.3 MyISAM表鎖13.3.1 加表鎖 13.4 InnoDB行鎖13.4.1 行鎖特點13.4.2 行鎖模式 14.日志14.1 錯誤日志1…

深入理解計算機系統 第三版 中文版 圖5-27 p371 錯漏

中文版 英文版 對照 可以看出錯漏 這本書中文版很多錯漏,可以配合英文版查正,不過英文版也很多錯漏,所以不用太相信書本.要根據自己的理解來.

微軟云計算Windows Azure(一)

目錄 一、微軟云計算平臺二、微軟云操作系統Windows Azure&#xff08;一&#xff09;Windows Azure概述&#xff08;二&#xff09;Windows Azure計算服務&#xff08;三&#xff09;Windows Azure存儲服務&#xff08;四&#xff09;Windows Azure Connect&#xff08;五&…

Win 11官宣取消硬件限制,微軟這次徹底服軟了

上市近 3 年&#xff0c;微軟寄予厚望的 Win 11 終究落了個被上代 Win 10 光環狠狠掩埋的結局。 有小伙伴兒認為是 Win 11 本身做的太爛&#xff0c;更新頻繁、BUG 一堆&#xff0c;讓人失去興趣。 也有人認為&#xff0c;系統本身體驗沒啥大毛病&#xff0c;嚴苛的硬件限制才…

數據結構算法-堆排序

堆排序&#xff1a;利用堆的特性進行排序,先將數組轉換為堆對象&#xff08;最大堆或最小堆&#xff09;&#xff0c;以最大堆為例&#xff0c;每次heapify之后&#xff0c;取出堆頂&#xff08;索引為0)的元素與最后一個元素交換。以后每次做同樣的事情&#xff0c;只是堆的長…