前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >win2d CanvasRenderTarget vs CanvasBitmap 为何 Rendertarget 不需要 LoadAsync

win2d CanvasRenderTarget vs CanvasBitmap 为何 Rendertarget 不需要 LoadAsync

作者头像
林德熙
发布2018-09-18 17:09:50
5520
发布2018-09-18 17:09:50
举报
文章被收录于专栏:林德熙的博客林德熙的博客

最近在做离线渲染就发现了 CanvasRenderTarget 和 CanvasBitmap 不知道为什么需要 CanvasBitmap 感觉 CanvasRenderTarget 和 CanvasBitmap 是重复的。 我在网上找了很多发现了大神的回复,于是我就把他翻译,希望大家看到就知道垃圾微软做 CanvasRenderTarget 和 CanvasBitmap 的区别

在 win2d 需要使用 CanvasBitmap 的是 CanvasBitmap 作为位图在 GPU 渲染而且作为位图可以直接渲染资源,本身就是资源给其他渲染使用。

但是 CanvasRenderTarget 是作为一个在 GPU 画的位图,是一个画板,从 GPU 画出的一个位图。

所有的 RenderTarget 都是位图,但不是所有的位图都是 RenderTarget,有些像素(如压缩的像素)只能在 source 使用而不能在 GPU 硬件画出来。通常 Rendertargets 对像素要严格的对齐要求,所以设备需要使用更多的资源。

那么如何选择使用 CanvasRenderTarget 和 CanvasBitmap ,简单的方法是如果需要画一些东西就使用 CanvasRenderTarget ,否则使用 CanvasBitmap 因为占用资源比较 CanvasRenderTarget 小。

为何 Rendertarget 不需要 LoadAsync

原因 Rendertarget 直接就在 GPU 画,在开始画的时候不需要从文件加载图片数据。和他不相同的,CanvasBitmap 是可能需要加载文件的图片。因为在一开始加载位图的效率会比在渲染的时候加载高。

参见:CanvasRenderTarget vs CanvasBitmap


本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为何 Rendertarget 不需要 LoadAsync
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档