首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >是否可以同时初始化金属阵列纹理?

是否可以同时初始化金属阵列纹理?
EN

Stack Overflow用户
提问于 2022-10-21 09:12:10
回答 1查看 68关注 0票数 0

金属中的阵列纹理(不与纹理数组混淆)可同时将等维纹理的非编译时间常量传递给GPU。到目前为止,我所知道的创建这些数据的唯一方法是使用自定义MTLTextureDescriptor,然后手动复制数据。目前,我使用for循环一次复制一个切片:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let descriptor = MTLTextureDescriptor()
descriptor.width = 32
descriptor.height = 32
descriptor.mipmapLevelCount = 5
descriptor.storageMode = .private
descriptor.textureType = .type2DArray
descriptor.pixelFormat = .rgba8Unorm
descriptor.arrayLength = NUM_TEXTURES
if let texture = device.makeTexture(descriptor: descriptor) {
    for i in 0..<NUM_TEXTURES {
        commandEncoder.copy(from: sharedBufferWithTextureData, sourceOffset: i<<4096, sourceBytesPerRow: 128, sourceBytesPerImage: 4096, to: texture, destinationSlice: i, destinationLevel: 0, destinationOrigin: MTLOrigin())
    }
}
commandEncoder.generateMipmaps(for: texture)

然而,是否有一种方法可以同时复制所有的切片?OpenGL似乎提供了一种方法来做到这一点,但我如何在金属中做到这一点呢?创建MTLTexture对象的最佳方法是什么,其中textureTypetype2DArraystorageModeprivate,然后填充纹理数据?

注意:storageModeprivate,因为MTLTexture不支持sharedmanaged导致数据的单独副本,这是不必要的内存使用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-23 21:58:51

在单个blit命令中无法填充多个切片,因为没有任何copy()方法可以一次处理多个切片。

也不可能使用切片数据创建缓冲区,并使用MTLBuffer.makeTexture()创建共享缓冲区内存的纹理,因为此函数显式禁止与数组纹理一起使用。

同时复制纹理数据的“多”纹理值的唯一方法是将多个纹理组合成单个纹理,例如,使用纹理地图集

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74157074

复制
相关文章
Photoshop教程丨制作金属纹理立体字
小新又给大家准备了很有意思的PS教程了,说实话,PS在工作中使用越来越多,一些傻瓜式软件很难满足自己的需要,多学点PS技术,以后一定会给大家许多的便利的。
半夜喝可乐
2019/06/11
1.1K0
redis在c#中的应用_redis写入数据的同时是否可以读
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/07
2.2K0
redis在c#中的应用_redis写入数据的同时是否可以读
@RequestBody 和 @RequestParam可以同时使用
网上有很多博客说@RequestParam 和@RequestBody不能同时使用,这是错误的。根据HTTP协议,并没有说post请求不能带URL参数,经验证往一个带有参数的URL发送post请求也是可以成功的。只不过,我们日常开发使用GET请求搭配@RequestParam,使用POST请求搭配@RequestBody就满足了需求,基本不怎么同时使用二者而已。
全栈程序员站长
2022/07/04
3.5K0
@RequestBody 和 @RequestParam可以同时使用
可以同时解析多个binlog吗
其次,当我们采用这种方式解析binlog时 $ mysqlbinlog -vvv --base64-output=decode-rows --start-position=4 --stop-position=2000 binlog.000001 binlog.000002 时,它的工作方式是这样的:
老叶茶馆
2022/12/02
1K0
基于单目地面纹理的同时定位与建图方法
文章:Monocular Simultaneous Localization and Mapping using Ground Textures
点云PCL博主
2023/08/21
4490
基于单目地面纹理的同时定位与建图方法
Spring Boot 可以同时处理多少请求?
我们都知道,SpringBoot默认的内嵌容器是Tomcat,也就是我们的程序实际上是运行在Tomcat里的。所以与其说SpringBoot可以处理多少请求,倒不如说Tomcat可以处理多少请求。
码猿技术专栏
2023/05/01
8000
Spring Boot 可以同时处理多少请求?
拖拽上传图片,可以多张同时上传
在HTML5中,使用DataTransfer对象中提供的方法,可以实现浏览器与其他应用程序之间文件的拖动。
愤怒的小鸟
2020/12/14
3.4K0
ApplicationContext可以同时获取多个Bean吗?
在实际场景中提供了N个接口给第三方,常规情况下是不会同时调用的,如果N个接口同时调用,随着接口的数量和业务场景逻辑增加,将会给服务带来很不好的体验,但恰恰业务就是如此,面对同一类型的业务查询场景,我将策略模式应用到此接口上来应对。关于实际设计的demo可参考往期文章炫技?No.
疯狂的KK
2023/01/12
1K0
ApplicationContext可以同时获取多个Bean吗?
配置是否初始化Bean的方法
在Spring Boot:定制自己的starter一文提到,只要DbCountRunner这个类在classpath路径下,Spring Boot会自动创建对应的spring bean并添加到应用程序上下文中。
阿杜
2018/08/06
8950
配置是否初始化Bean的方法
3D Imaging Using Extreme Dispersion in Optical Metasurfaces
由于超表面对入射光的相位、偏振和振幅的极端控制,因此具有革新成像技术的潜力。它们依靠增强的光的局部相互作用来实现所需的相位轮廓。由于光的局部相互作用增强,超表面是高度色散的。这种强分散被认为是实现常规超表面成像的主要限制。在这里,我们认为这种强色散为计算成像的设计自由度增加了一个程度,潜在地打开了新的应用。特别是,我们利用超表面的这种强分散特性,提出了一种紧凑、单镜头、被动的3D成像相机。我们的设备由一个金属工程,聚焦不同的波长在不同的深度和两个深度网络,恢复深度和RGB纹理信息从彩色,散焦图像获得的系统。与其他基于元表面的3D传感器相比,我们的设计可以在更大的视场(FOV)全可见范围内运行,并可能生成复杂3D场景的密集深度图。我们对直径为1毫米的金属的模拟结果表明,它能够捕获0.12到0.6米范围内的3D深度和纹理信息。
狼啸风云
2021/06/17
1.7K0
3D Imaging Using Extreme Dispersion in Optical Metasurfaces
Redis是否可以存图片、视频?
前几天看到某大型家电工厂的工业互联网系统架构图,发现用MongoDB存储图片及视频。那Redis同样也是Json类型的远程数据字典服务器,也可以用于存储图片、视频。实际Redis可以用512MB的空间存储用于存储字符串型的数据。
希望的田野
2019/09/24
9.7K0
Redis是否可以存图片、视频?
Spring Security 可以同时对接多个用户表?
其实只要看懂了松哥前面的文章,这个需求是可以做出来的。因为一个核心点就是 ProviderManager,搞懂了这个,其他的就很容易了。
江南一点雨
2020/07/16
3.4K1
在linux中同时探测多台主机是否存活
我们都知道PING可以验证主机是否能够通过网络与另一台计算机或网络设备进行通信。使用 Ping 命令,我们可以向目标主机发送 ICMP Echo 请求,并测试目标主机是否存活。我们可以在 LAN 和 WAN 中 ping 系统。 下面给出了 ping 命令的典型用法。 要ping IP 地址 $ ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from 8.8.8.8: icmp_seq=0 ttl=114 time=53.666
入门笔记
2022/06/02
1.3K0
Docker容器是否可以改变世界?
2016年了,很多大牛开始预测技术趋势,其中一个普遍的观点我也很认同: Docker会更加流行,会改变程序世界 2015年的上半年我接触了Docker,熟悉之后,真有一点震惊的感觉,太方便了,可以解决很多问题 Container 通常翻译为容器,但还有另一个意思,就是“集装箱” 集装箱是21世纪最伟大的发明之一,它改变了世界货物运输体系,造就了一个高度自动化、标准化、低成本的物流体系,促进了经济的全球化发展 程序界也出现了同样的一个箱子,就是 Docker容器 Docker的核心特点 Docker是一个开源
dys
2018/04/03
6540
Docker容器是否可以改变世界?
三十、是否可以使用 count(*)
一、是否可以使用 count(*) 在 SQL 中,COUNT() 函数返回匹配指定条件的函数。 序号COUNT用法作用描述1COUNT(*)返回总记录数,包含 NULL 值2COUNT(1)与COUNT(*)的作用一样3COUNT(column_name)返回指定列的数目,NULL值不统计4COUNT(DISTINCT column_name)返回指定列不同值的数目,NULL值不统计 Tip: COUNT(*) 与 COUNT(column_name) 的作用不一样,如果列值包含 NULL ,统计结果就
喵叔
2022/05/06
4810
容器是否可以取代虚机?
在 Docker 诞生之初,它常常被放在虚拟机技术的对立面,甚至还有过 Docker 将替代虚拟机的夸大宣传,在许多集群以及虚拟化方案设计的讨论中,也总会将两者拿来比较一番利弊。
孙杰
2019/10/29
2.3K0
Shader-基础纹理-遮罩纹理
遮罩纹理(mask texture)控制光照的强度,获得更加细腻的效果,通过遮罩纹理控制光照。在制作地形材质的时候混合多张图片,遮罩纹理控制如何混合这些纹理。 通过采样得到的纹素值与某种表面属性相乘,来更加精准的控制模型表面的各种属性。 在代码中添加了BumpMap来进行凹凸纹理效果,通过SpecularMask实现控制高光的光照
祝你万事顺利
2019/05/28
1.2K0
Spark是否可以完全取代Hadoop
谈到大数据,相信大家对Hadoop和Apache Spark这两个名字并不陌生。然而,最近业界有一些人正在大张旗鼓的宣扬Hadoop将死,Spark将立。他们究竟是危言耸听、哗众取宠,还是眼光独到堪破
企鹅号小编
2018/02/02
1.9K0
Spark是否可以完全取代Hadoop
go 中 struct 是否可以比较?
今天来水一篇,最近比较忙,一直没有时间写 go 相关的,今天从一个小问题入手,来说说 struct 的比较问题。
LinkinStar
2022/09/01
8470
Shader-基础纹理-渐变纹理
一种基于冷暖色调的着色技术,通过渐变纹理控制漫反射光照。核心部分来说用过使用halfLambert构建一个纹理坐标,用这个纹理坐标来对渐变纹理进行采样。
祝你万事顺利
2019/05/28
1.1K0

相似问题

金属纹理格式

13

在金属中同时使用纹理和无纹理,并进行多重混合。

14

试图与Opengl纹理共享金属纹理

16

可同时处理RGB和YUV纹理的金属着色功能

214

金属织构阵列

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文