网易首页 > 网易号 > 正文 申请入驻

【厚积薄发】Vulkan API的性能及兼容性

0
分享至

这是第314篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。

UWA 问答社区:answer.uwa4d.com

UWA QQ群2:793972859(原群已满员)

本期目录:

  • Vulkan API的性能及兼容性
  • FrameTiming.gpuFrameTime获取GPU耗时有什么条件
  • MMO里面的寻路网格如何制作
  • 万国这种联盟边界的实现思路

Rendering

Q:请问一下目前Android设备用Vulkan API的项目多吗,性能、兼容性及稳定性如何?

A: Vulkan用的比较好的应该是《天涯明月刀》手游,《王者荣耀》在三星平台上也开发过一段时间的Vulkan的版本,但是之后好像就更新打回ES版本了。

感谢萧小俊@UWA问答社区提供了回答。

有没有更多的开发者能提供一些Vulkan稳定性相关的经验分享呢?欢迎大家转至社区交流:

https://answer.uwa4d.com/question/6114de488f8c834241698b95

Rendering

Q:手机为什么上获取不到FrameTiming.gpuFrameTime的时间?

版本Unity 2020.3,手机华为 Mate 30P,CPU时间可以显示但GPU时间获取不到,测试代码如下:

using System;
using UnityEngine;
using Unity.Profiling;

public class FrameTimingsHUDDisplay : MonoBehaviour
{
GUIStyle m_Style;
// Profiling state.
private int frameCount = 0;
private float accumulatedFrameTimeCPU = 0.0f;
private float accumulatedFrameTimeGPU = 0.0f;
private float frameSampleRateMS = 0.0f;
private FrameTiming[] m_FrameTimings = new FrameTiming[1];

void Awake()
{
m_Style = new GUIStyle();
m_Style.fontSize = 15;
m_Style.normal.textColor = Color.white;
}

void OnGUI()
{
CaptureTimings();

var reportMsg =
$"\nCPU: {m_FrameTimings[0].cpuFrameTime:00.00}" +
$"\nMain Thread: {m_FrameTimings[0].cpuFrameTime:00.00}" +
$"\ncpuTimeFrameComplete: {m_FrameTimings[0].cpuTimeFrameComplete:00.00}" +
$"\ncpuTimePresentCalled: {m_FrameTimings[0].cpuTimePresentCalled:00.00}" +
$"\nGPU: {m_FrameTimings[0].gpuFrameTime:00.00}" +
$"\nCPUTotal: {accumulatedFrameTimeCPU:00.00}" +
$"\nCPUAverage: {(accumulatedFrameTimeCPU / frameCount):00.00}" +
$"\nGPUTotal: {accumulatedFrameTimeGPU:00.00}" +
$"\nGPUAverage: {(accumulatedFrameTimeGPU / frameCount):00.00}";

var oldColor = GUI.color;
GUI.color = new Color(1, 1, 1, 1);
float w = 300, h = 210;

GUILayout.BeginArea(new Rect(32, 100, w, h), "Frame Stats", GUI.skin.window);
GUILayout.Label(reportMsg, m_Style);
GUILayout.EndArea();

GUI.color = oldColor;
}

private void CaptureTimings()
{
FrameTimingManager.CaptureFrameTimings();
uint frameTimingsCount = FrameTimingManager.GetLatestTimings(1, m_FrameTimings);

if (frameTimingsCount != 0)
{
accumulatedFrameTimeCPU += (float)m_FrameTimings[0].cpuFrameTime;
accumulatedFrameTimeGPU += (float)m_FrameTimings[0].gpuFrameTime;
}
else
{
accumulatedFrameTimeCPU += Time.unscaledDeltaTime * 1000.0f;
// No GPU time to query.
}

++frameCount;
}
}

以上问题有哪位大拿也曾经做过类似的测试,可以来分享一下,欢迎转至社区交流:

https://answer.uwa4d.com/question/63440ef8dec0b5016d28fcf1

Mesh

Q:MMO里面的寻路网格如何制作呢?

自动生成的不精准。美术制作是拼起来的,某些点忘记连或者重叠会有问题。一般是怎么解决的呢?现在就是美术单独做的Mesh,但是他们的Mesh如果由两个面点没连着,或者某个三角形的2个点,重叠了,就会有问题。

A: 简单说下思路,把地形当做一个2D平面,代码创建一个x*y大小的Mesh,格子大小保持Unity的单位1就行,这个Mesh了你控制好覆盖这个2D平面,然后从Mesh的每个顶点坐标向下发射射线,检测碰撞,计算当前顶点的高度。算好后,就修改Mesh的各个顶点高度。这样,Mesh成型后就是个大概的地面建筑模型了。

然后编个简单Shader,只显示顶点色和边沿。这方面网上有很多Shader。Mesh就用这个Shader,即可显示网格样子。实在不行,你Scene里面的网格模式。

接着就是写代码,根据鼠标点击滑动坐标,把对应的Mesh网格涂色即可,比如涂绿色为路面。红色为障碍。最后计算这些格子的x,y坐标。用A*算法寻路即可。

感谢牛头人不服@UWA问答社区提供了回答欢迎大家转至社区交流:

https://answer.uwa4d.com/question/62b061119b935a01f583e514

Rendering

Q:请教一下万国这种联盟边界的实现思路。

是多个Quad 交叉重叠后,想办法把他们交叉的区域不绘制?还是直接自己Draw一个这样的多边形的Mesh?

A1:万国这个应该用的地图16位状态拼接的方法。可以借鉴 暴雪的地图地表的生成方式。

感谢1 9 7 3-311135@UWA问答社区提供了回答

A2:万国是Draw Mesh。在不同的LOD下,精细度不同。我之前抓过Mesh看过。

感谢承影@UWA问答社区提供了回答


是否还有更多的实现方法呢?欢迎大家转至社区交流:

https://answer.uwa4d.com/question/6264eb5836a2fd066de67469

封面图来源于网络

今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。

官网:www.uwa4d.com

官方技术博客:blog.uwa4d.com

官方问答社区:answer.uwa4d.com

UWA学堂:edu.uwa4d.com

官方技术QQ群:793972859(原群已满员)

点击下方名片关注我们,将我设为星标,及时接收小编每日推送哦,性能优化不迷路~

近期精彩回顾

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
丧尽天良!油罐车混拉食用油,涉事企业彻底曝光!网友怒斥太缺德

丧尽天良!油罐车混拉食用油,涉事企业彻底曝光!网友怒斥太缺德

影像温度
2024-07-03 11:20:03
光刻机巨头开始慌了,中国造不成光刻机,但是要造一个光刻工厂!

光刻机巨头开始慌了,中国造不成光刻机,但是要造一个光刻工厂!

嘿哥哥科技
2024-07-03 17:54:26
马克龙时代结束,法国新总理浮现,对华态度已曝光,中方立场明确

马克龙时代结束,法国新总理浮现,对华态度已曝光,中方立场明确

影孖看世界
2024-07-03 15:51:35
如果消息属实,那将是天大的讽刺!

如果消息属实,那将是天大的讽刺!

顾礼先生
2024-07-03 15:19:57
见证历史!80000点!

见证历史!80000点!

中国基金报
2024-07-03 16:16:24
曝中金一女子跳楼身亡,年仅30岁,丈夫悲痛发讣告,公司回应

曝中金一女子跳楼身亡,年仅30岁,丈夫悲痛发讣告,公司回应

180°视角
2024-07-03 15:33:03
本周重大事件:内地资金大量涌入香港,中国矿企在墨西哥遭“明抢”

本周重大事件:内地资金大量涌入香港,中国矿企在墨西哥遭“明抢”

一周财经观察
2024-07-03 19:28:56
两名华人在菲律宾遭绑架遇害,家属:一度打电话回来筹措赎金

两名华人在菲律宾遭绑架遇害,家属:一度打电话回来筹措赎金

澎湃新闻
2024-07-03 16:42:27
距离英国大选投票不到48小时,现任首相私信求助,“满身黑历史”的约翰逊“出山”拉票

距离英国大选投票不到48小时,现任首相私信求助,“满身黑历史”的约翰逊“出山”拉票

红星新闻
2024-07-03 17:32:14
嫦娥六号成功返回之后,西方发现了两个恐怖的真相

嫦娥六号成功返回之后,西方发现了两个恐怖的真相

枫冷慕诗
2024-07-03 18:21:21
知情人发声!网传中金公司小姑娘跳楼,原因是降薪?细节曝出

知情人发声!网传中金公司小姑娘跳楼,原因是降薪?细节曝出

小淇言说
2024-07-03 18:38:15
重庆一落马局长长期以“大哥”自居,充当“影子股东”聚钱敛财,获刑5年3个月

重庆一落马局长长期以“大哥”自居,充当“影子股东”聚钱敛财,获刑5年3个月

鲁中晨报
2024-07-03 15:19:09
中国国青男篮悲壮出局!险造15分大逆转,硬刚欧洲劲旅,球迷认可

中国国青男篮悲壮出局!险造15分大逆转,硬刚欧洲劲旅,球迷认可

环太平洋老正太
2024-07-03 19:27:23
泱泱大国,假货横行,烂食遍地!到处都是人骗人,就没有法制止?

泱泱大国,假货横行,烂食遍地!到处都是人骗人,就没有法制止?

六目先生
2024-07-03 14:53:39
2名15岁初中生22天内先后离世!同班同一病情,家长哭晕问责学校

2名15岁初中生22天内先后离世!同班同一病情,家长哭晕问责学校

林大师热点
2024-07-03 15:24:04
江水上涨,武汉江滩大蛇爬上监控杆!专家:蛇在高处避水属应激反应

江水上涨,武汉江滩大蛇爬上监控杆!专家:蛇在高处避水属应激反应

极目新闻
2024-07-03 13:26:37
NASA想要“合法”研究中国月壤

NASA想要“合法”研究中国月壤

奔流新闻
2024-07-03 14:52:38
俄罗斯副防长叛逃至法国,她忘记克格勃的那句至理名言了吗?

俄罗斯副防长叛逃至法国,她忘记克格勃的那句至理名言了吗?

鹰视狼顾之天下
2024-07-03 01:31:48
中国留学生在新西兰被打掉牙,称已不敢坐公交!目击者发声

中国留学生在新西兰被打掉牙,称已不敢坐公交!目击者发声

南方都市报
2024-07-03 16:42:12
张志杰离世前接受央视采访,双眼有黑眼圈,一周前曾有人预言去世

张志杰离世前接受央视采访,双眼有黑眼圈,一周前曾有人预言去世

番茄娱乐加
2024-07-01 21:28:39
2024-07-03 21:12:49
侑虎科技UWA
侑虎科技UWA
游戏/VR性能优化平台
1263文章数 864关注度
往期回顾 全部

科技要闻

吴世春:"中国大模型五虎"想跑出来非常难

头条要闻

菲官员:中菲会谈前 菲律宾正打算要回被中方收缴的枪

头条要闻

菲官员:中菲会谈前 菲律宾正打算要回被中方收缴的枪

体育要闻

欧洲杯最伟大的一次扑救,诞生了

娱乐要闻

刘亦菲唐嫣深夜晒照,美女贴贴好养眼

财经要闻

王忠民:用周期思维做投资会死在周期里

汽车要闻

巴黎4S店价格对比 同款车型中国售价打对折

态度原创

数码
家居
旅游
教育
公开课

数码要闻

苹果推出Apple Pencil模块化专利 可更换模块达到不同效果

家居要闻

温柔简约 浅色基调与明亮空间的协奏

旅游要闻

游客走进来 瓷、橙运出去 昌九高铁建设为江西发展注入新动力

教育要闻

这4所211报名时无人问津,调剂时人满为患!

公开课

连中三元是哪三元?

无障碍浏览 进入关怀版