VideoLab icon indicating copy to clipboard operation
VideoLab copied to clipboard

旋转后出现锯齿

Open 0x1306a94 opened this issue 4 years ago • 1 comments

当有旋转效果时,会出现边缘锯齿效果

 func transition2Demo() -> VideoLab {
        // 1.1 LayerGroup1
        var timeRange = CMTimeRange(start: CMTime.zero, duration: CMTime(seconds: 5, preferredTimescale: 600))
        let layerGroup1 = RenderLayerGroup(timeRange: timeRange)

        // Add sub-renderLayer1
        var image = UIImage(named: "image1.JPG")
        var imageSource = ImageSource(cgImage: image?.cgImage)
        imageSource.selectedTimeRange = CMTimeRange(start: CMTime.zero, duration: timeRange.duration)
        timeRange = imageSource.selectedTimeRange
        let renderLayer1 = RenderLayer(timeRange: timeRange, source: imageSource)
        
        var center = CGPoint(x: 0.5, y: 0.5)
        // 添加旋转
	let rotation = GLKMathDegreesToRadians(15)
	var transform = Transform(center: center, rotation: rotation, scale: 0.15)
        renderLayer1.transform = transform
        
        // Add sub-renderLayer2
        var url = Bundle.main.url(forResource: "video1", withExtension: "MOV")
        var asset = AVAsset(url: url!)
        var source = AVAssetSource(asset: asset)
        source.selectedTimeRange = CMTimeRange(start: CMTime.zero, duration: timeRange.duration)
        timeRange = source.selectedTimeRange
        let renderLayer2 = RenderLayer(timeRange: timeRange, source: source)
        
        center = CGPoint(x: 0.25, y: 0.25)
        transform = Transform(center: center, rotation: rotation, scale: 0.5)
        renderLayer2.transform = transform
        
       .........
        
        return videoLab
    }

0x1306a94 avatar Jun 21 '21 04:06 0x1306a94

感谢反馈,锯齿是由于没有使用 MSAA(Multi-Sample AntiAliasing) 导致(MSAA 更多介绍)。

Videoleap 同样存在锯齿问题,剪映有解决这个问题,这个问题的修复会排进后续的计划中。

ruanjx avatar Aug 08 '21 16:08 ruanjx