标签: mtkview

如何改变MTKView当前可绘制尺寸

苹果文档说MTKView当前可绘制的默认大小源自当前 view\xe2\x80\x99s 大小(以本机像素为单位)。有什么方法可以使MTKView当前可绘制的设备屏幕尺寸的一半吗?

\n

vertex-shader fragment-shader metal metalkit mtkview

6
推荐指数
0
解决办法
672
查看次数

MTKView刷新问题

我正在通过 MTKView 合成 UIImage 数组,并且我看到刷新问题仅在合成阶段显现出来,但一旦我与应用程序交互,这些问题就会消失。换句话说,复合材料按预期工作,但它们在屏幕上的外观看起来有点问题,直到我通过放大/平移等强制刷新。

我发布了两个视频来展示实际问题:Glitch1Glitch2

我选择的复合方法是将每个 UIImage 转换为 MTLTexture,并将其提交到设置为“.load”的渲染缓冲区,该缓冲区会渲染带有此纹理的多边形,然后对 UIImage 中的每个图像重复该过程大批。

复合材料可以工作,但是屏幕反馈(正如您从视频中看到的那样)非常不稳定。

关于可能发生的事情有什么想法吗?任何建议,将不胜感激

一些相关代码:

for strokeDataCurrent in strokeDataArray {

        let strokeImage = UIImage(data: strokeDataCurrent.image)
        let strokeBbox = strokeDataCurrent.bbox
        let strokeType = strokeDataCurrent.strokeType
        self.brushStrokeMetal.drawStrokeImage(paintingViewMetal: self.canvasMetalViewPainting, strokeImage: strokeImage!, strokeBbox: strokeBbox, strokeType: strokeType)

} // end of for strokeDataCurrent in strokeDataArray

...

func drawStrokeUIImage (strokeUIImage: UIImage, strokeBbox: CGRect, strokeType: brushTypeMode) {

    // set up proper compositing mode fragmentFunction
    self.updateRenderPipeline(stampCompStyle: drawStampCompMode)

    let stampTexture = UIImageToMTLTexture(strokeUIImage: strokeUIImage)
    let stampColor = UIColor.white …
Run Code Online (Sandbox Code Playgroud)

gpu visual-artifacts swift metal mtkview

2
推荐指数
1
解决办法
1881
查看次数

互操作 MTKView (MetalKit) 和 SceneKit

我正在使用 MetalKit 并且有一个复杂的渲染管道。结果呈现为MTKView.

现在我想将 的内容提供MTKView给 aSCNScene并使用 aSCNCamera来执行 HDR 等后期处理效果。

这怎么可能?

我不需要一般性的指导。如果可能的话,我想要具体的电话。

scenekit metal metalkit scnscene mtkview

1
推荐指数
1
解决办法
864
查看次数

MTKView清晰显示

我想在应用程序退出活动状态后立即将 MTKView(或 GLKView/CAEAGLLayer)的内容设置为黑色。将其设置为透明颜色(例如黑色)并显示它的最快且最可靠的方法是什么?

ios opengl-es-2.0 metal metalkit mtkview

0
推荐指数
1
解决办法
1930
查看次数