腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
使用
Blit
命令
编码器
交换
金属
中
的
纹理
、
、
我最近
使用
乒乓球缓冲区和计算着色器在Metal
中
实现了一个水模拟。它工作得很好,但我只是想知道
交换
几次
纹理
的
成本是多少,以及是否可以通过
使用
Blit
命令
编码器
来改善这一点?以下是代码
的
示例: let computeEncoder = commandBuffer.makeComputeCommandEncoder()!
浏览 6
提问于2020-02-01
得票数 0
1
回答
什么时候
命令
编码器
之间
的
同步需要MTLFence或MTLEvent?
、
、
注意:在许多方面,这是对
的
后续行动。
命令
编码器
之间 在给定
的
命令
编码器
中
执行
的
所有资源写入都在下一个
命令
编码器
中
可见。这对于呈现和计算
命令
浏览 0
提问于2018-12-02
得票数 3
回答已采纳
1
回答
如何在mac上获取当前可提取
金属
的
快照?
我尝试了以下代码,它在iOS 12.1.4
中
运行良好,但在macOS Mojave version 10.14上却是空
的
id<CAMetalDrawable> lastDrawable = view.currentDrawable; CFRelease(bitmapContext); }]; 我需要一些额外
的
过程来获得mac上当前屏幕
的
正确快照吗?
浏览 8
提问于2019-03-22
得票数 1
回答已采纳
1
回答
MTLBlitCommandEncode是否预构成线性采样
、
如果我想将一个低分辨率
的
纹理
复制到一个高分辨率
的
纹理
上,并且我
使用
了一个
Blit
命令
编码器
,它会在拉伸
纹理
的
同时对它执行线性采样吗?
浏览 8
提问于2017-12-26
得票数 1
回答已采纳
1
回答
多
命令
编码器
的
无记忆
纹理
、
多个MTLRenderCommandEncoders都可以
使用
无记忆
纹理
吗?例如(理论上)我创建
命令
编码器
#1和无记忆
纹理
#1并
使用
它作为呈现目标,然后创建
命令
编码器
#2和无记忆
纹理
#2作为呈现目标,但在片段着色器中
使用
纹理
#1作为参数(只读访问)。这个能行吗?
浏览 2
提问于2020-12-22
得票数 2
回答已采纳
2
回答
从MTLTextures摄像机流生成mipmaped
、
、
、
我
使用
这段代码从以下位置获取MTLTextures: } }}CVMetalTextureCacheCreateTextureFromImage(NULL,
浏览 4
提问于2014-11-04
得票数 3
回答已采纳
1
回答
金属
/OpenGL:如何只设置一次顶点缓冲区?
、
但是顶点和
纹理
数据从未改变过。只有一致矩阵才会改变。我正在渲染
的
对象包含8*4*4*4*4三角形(是的,它是一个球体)。我只能拿到4FPS。我对设置vertexBuffer每一个帧都持怀疑态度。在OpenGL教程
中
也这样做。 在OpenGL
中
,我可以从呈现循环中提取顶点/
纹理
缓冲区绑定。但是在Metal
中
,MTLRenderCommandEncoder需要为每个帧获取CAMetalDrawable。
浏览 3
提问于2017-05-09
得票数 1
回答已采纳
1
回答
金属
屏幕外渲染
我需要在Metal
中
通过复制到系统内存来实现屏幕外渲染。而不在屏幕上绘图。或者我应该创建屏幕外
的
纹理
“管理”而不是“私有”,然后直接复制到我
的
缓冲区: // creating offscreen texture "managed" // rendering to offscreen
浏览 45
提问于2020-06-15
得票数 0
1
回答
金属
最佳实践:三缓冲- Textures也?
、
、
在
中
,它指出,为了获得最佳性能,应该“实现三重缓冲模型来更新动态缓冲区数据”,“动态缓冲区数据是指存储在缓冲区
中
的
频繁更新
的
数据”。如果需要更新每个帧,MTLTexture是否可以限定为“存储在缓冲区
中
的
频繁更新
的
数据”?上述指南中
的
所有示例都集中在MTLBuffer
的
示例上。我注意到苹果在MetalKit
中
的
实现有一个nextDrawable
的
概念,所以这里可能就是这样吗?
浏览 2
提问于2017-10-15
得票数 4
回答已采纳
1
回答
如何将黑白图像加载到
金属
纹理
中
、
、
我
使用
两种方法加载
金属
中
的
黑白图像
纹理
,如下所示:
浏览 3
提问于2020-07-09
得票数 0
1
回答
金属
计算核与碎片着色机
、
除了标准
的
kernel和fragment函数外,
金属
还支持fragment。我找到了一个将图像转换为灰度
的
金属
kernel示例。 在kernel和fragment
中
这样做到底有什么区别呢?
浏览 1
提问于2016-12-07
得票数 7
回答已采纳
1
回答
保留eglSwapBuffers后
的
回缓冲内容
、
、
、
、
我在Android和本地C++
中
实现了一个
使用
EGL1.1为android绘制
的
场景。目前
使用
的
是安卓
的
glSurfaceView (它允许我在"onDrawFrame“结尾处显示
的
后缓冲区)在
交换
后缓冲区和前缓冲区时
使用
。在呈现过程
中
的
某一点上,我决定是时候了,我调用eglSwapBuffers来显示从后台缓冲区绘制
的
内容,但是当我继续写
的
时候,我显然
浏览 2
提问于2014-05-29
得票数 7
1
回答
快速将bgra8Unorm
纹理
保存到PNG文件
中
、
、
、
、
我有一个输出
纹理
的
内核,它是一个有效
的
MTLTexture对象。我想将它保存到项目工作目录
中
的
png文件
中
。应如何做到这一点?编辑:我在macOS XCode上。
浏览 0
提问于2018-10-21
得票数 4
回答已采纳
2
回答
如何在macOS Cocoa
中
快照和保存呈现
的
金属
绘图?
、
、
、
我有一个应用程序
使用
金属
来进行屏幕渲染(根据需要
使用
CAMetalLayer而不是MTKView ),我想为用户提供将结果
的
快照保存到磁盘
的
选项。tif文件(1784x1090),但是它是透明
的
,其中没有可用
的
图像数据;在Hex Fiend
中
查看该文件显示,除了相当简短
的
页眉和页脚部分之外,整个文件都是零。我怀疑根本
的
方法由于某种原因是有缺陷
的
。1065740] HALC_ShellDriverP
浏览 12
提问于2020-06-04
得票数 0
1
回答
用参数缓冲区动态地绘制地形:理解为什么粒子缓冲区没有被GPU覆盖
、
、
我正在浏览一个Apple演示项目,它与2017年WWDC题为“引入
金属
2”
的
视频相关,在该视频
中
,开发人员演示了参数缓冲区
的
使用
。这与前一次2014年WWDC“与
金属
合作:基本面”
中
显示
的
情况是一致
的
。从新id<MTLCommandEncoder>调用
的
呈现、计算和
blit
传递是否只有在其他传递已经写入和读取(独占访问)之后才能访问缓冲区?最后,在2016年WWDC
的
“
浏览 4
提问于2020-11-20
得票数 0
回答已采纳
1
回答
MTKView -同时
使用
两个视图
、
、
、
、
我得到了什么我想做
的
是 commandBuffer.commit()问题 有没有一种方法,我可以简单地把
纹理
传递给第二个
浏览 0
提问于2018-08-15
得票数 1
1
回答
金属
资源
的
内存管理
、
、
、
在计算直方图
的
MTLTextures
中
,每个循环迭代时
纹理
都会发生变化,因此利用MPSImageHistogram在循环中对直方图进行计算。有一个
命令
队列,在每个循环迭代
中
创建一个新
命令
缓冲区,以执行直方图计算。问题是如何在
命令
缓冲区执行后清除分配
的
内存?简单地说,如何释放
命令
缓冲区、计算管道、
编码器
等
金属
浏览 6
提问于2021-07-14
得票数 0
回答已采纳
1
回答
如何正确编码
金属
中
的
大量
blit
或缩放
命令
?
、
、
在我正在开发
的
一个
使用
传统
金属
渲染循环
的
应用程序
中
,我需要周期性地将大量图像数据从IOSurfaces复制到MTLTextures,以便可以在片段着色器
中
访问数据。如果我需要复制大量
的
IOSurface到许多
金属
纹理
,我应该一次一次,分批或全部在一次?这种方法可以工作,但如果可见表面的数量变得相当大,就会开始崩溃。在提交之前,你会预先分配一堆表面支持
的
纹理
。这个方法在我看来是最符
浏览 5
提问于2021-05-21
得票数 3
2
回答
金属
//读取多采样深度
纹理
、
、
、
对于一些后渲染效果,我需要阅读深度
纹理
。只要关闭多个采样,这就能正常工作。但是通过多次取样,我很难读到
纹理
。试图在着色器中
使用
多样本
纹理
,通过一个depth2d_ms参数,编译器将在运行时失败,出现错误消息“内部编译器错误”。我发现,
使用
OpenGL时,首先要将多样本深度缓冲区分解为解析深度缓冲区来读取采样值,但是对于
金属
,我得到一个断言错误,说明
blit
纹理
的
样本计数需要匹配,因此不可能将4个样本切割为1。那么,在
使用</e
浏览 3
提问于2016-05-30
得票数 0
回答已采纳
2
回答
多重呈现为单一
纹理
而不阻塞MTLCommandBuffer
、
、
、
我试图渲染3个不同
的
东西在
金属
的
一个
纹理
。我有一个MTLTexture,它在3个不同
的
MTLCommandBuffers中用作目的地。我一个接一个地把他们交出来。每个MTLCommandBuffer呈现到
纹理
的
一个单独部分--首先在0- 1/3部分绘制,第二部分绘制中间
的
1/3 - 2/3,最后一个绘制2/3 - 1。commit]; id<MTLCommandBuffer> buffer3 = [s
浏览 5
提问于2021-09-06
得票数 0
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
研发实践:Unity LWRP正式支持Oculus Quest开发
研发实战:用RenderDoc验证有效渲染方式,优化Quest应用
给3D资产生成高清纹理,腾讯让AI扩充游戏皮肤
微信小游戏直播在Android端的跨进程渲染推流实践
研发实战:Arm分享一体式VR优化技巧,提升画质、流畅和稳定性
热门
标签
更多标签
云服务器
ICP备案
实时音视频
即时通信 IM
对象存储
活动推荐
运营活动
广告
关闭
领券