问题标签 [metalkit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - 复制金属帧缓冲纹理以供阅读
我正在尝试截取 MetalKit 视图 (MTKView) 的屏幕截图,如答案Take a snapshot of current screen with Metal in swift但它要求 MTKView 将 framebufferOnly 设置为 false,这会根据 Apple 禁用一些优化。
有没有办法复制 MTKView 纹理(例如 view.currentDrawable.texture)以便我可以读取像素?我不需要经常截图,所以禁用程序运行的整个生命周期的优化将是一种耻辱。
我尝试使用 MTLTexture.newTextureViewWithPixelFormat 和 blit 缓冲区,但我仍然得到相同的异常,即帧缓冲区仅是真的。
objective-c - 片段着色器功能中 float4 和 half4 的主要区别是什么?
我尝试设置 MTLPixelFormatRGBA16Float 的渲染管道和 MTKView 颜色附件像素格式。
但是,它似乎与 MTLPixelFormatBGRA8Unorm_sRGB 相同。
我只是想让渲染颜色范围更高(HDR)。
片段函数的返回类型重要吗?
我应该设置什么来实现金属的高动态范围?
swift - 如何从 MTKView 无缝切换到 UIView 显示
我有一个 MTKView,我将其内容绘制到 UIView 中。我想在没有明显变化的情况下将显示从 MTKView 交换到 UIView。如何实现?
目前,我有
以及 layerWillDraw() 中的一个委托方法,用于清除 MTKView。
结果是我会经常看到一个帧丢失,其中没有显示任何内容。
为了干净地分离这两个任务,我还尝试了以下方法:
将新的 CALayer 添加到 UIImageView 的想法,然后清除 MTKView。在许多屏幕绘制中,我认为这会导致视图交换期间的丢帧更少,但我想要一个没有丢帧的万无一失的解决方案。基本上我所追求的是只有在 strokeUIView 准备好显示时才清除 strokeViewMetal 。任何指针将不胜感激
swift - “使用未解析的标识符'vImage_Buffer'”的错误消息
我只需要将 .bgra8Unorm 纹理的字节转换为 RGBA 顺序并UIImage
从数据中创建一个。我如下创建一个缓冲区。
但我收到错误消息
“使用未解析的标识符‘vImage_Buffer’”
“使用未解析的标识符‘vImagePermuteChannels_ARGB8888’”。
我已经导入了MetalKit
。还有其他建议吗?
ios - 纹理到顶点
我有四个由 12 个顶点组成的独立正方形。我有一个纹理图像。我想将纹理添加到正方形。我补充说我的算法就像
而不是这个我想随机添加。简单地意味着纹理坐标必须是随机的意味着如果第一个正方形如上对齐第二个正方形必须对齐翻转第三个可以旋转 90 度。我希望我们可以通过着色器中的 if else 语句来为这种场景添加纹理的任何其他优化方式来做到这一点
swift - 设置 fastMathEnabled 以便在 swift 中进行精确计算
由于我在计算中不需要优化浮点算术,我如何在 swift 中将 fastMathEnabled 设置为 false?
swift - Blend Mode in Metal
These are the two the blend-mode i used in OpenGL what is the conversion to the metal in IOS
ios - 使用 Metal 渲染时,Apple 如何在 UIKit 中渲染自定义线宽
关于金属线宽的问题说不能用自定义线宽在金属中画线。然而,苹果表示它所有的图形框架,如UIKit
,,SpriteKit
都SceneKit
使用Metal
. 我想知道这些框架如何具有不同线宽的线条?如果它们是由三角形组成的,是否有一些例子可以说明如何做到这一点?另外,如何用不同宽度的线条绘制圆形和其他原始形状?