簡體   English   中英

iOS GLKit:Turing GLKViewDrawableMultisample4X停止對象拾取

[英]IOS GLKit : Turing GLKViewDrawableMultisample4X stops object picking

我正在使用像素顏色選擇來計算我單擊的OpenGL對象,並且效果很好

一旦在視圖中打開GLKViewDrawableMultisample4X,選擇就會停止工作?

我嘗試過在觸摸屏幕時打開和關閉此功能,但只能運行一次。

領料代碼:

  GLKView *glkView = (GLKView*)[self view];
  UIImage *snapshot = [glkView snapshot];
  GLKVector4 colour = [snapshot pickPixelAtX:xPos Y:yPos];

@implementation UIImage (NDBExtensions)

- (GLKVector4)pickPixelAtX:(NSUInteger)x Y:(NSUInteger)y {

    CGImageRef cgImage = [self CGImage];
    size_t width = CGImageGetWidth(cgImage);
    size_t height = CGImageGetHeight(cgImage);

    if ((x < width) && (y < height))
    {
        CGDataProviderRef provider = CGImageGetDataProvider(cgImage);
        CFDataRef bitmapData = CGDataProviderCopyData(provider);
        const UInt8* data = CFDataGetBytePtr(bitmapData);
        size_t offset = ((width * y) + x) * 4;

        UInt8 b = data[offset+0];
        UInt8 g = data[offset+1];
        UInt8 r = data[offset+2];
        UInt8 a = data[offset+3];

        CFRelease(bitmapData);

        return GLKVector4Make(r, g, b, a );

    }
    return GLKVector4Make(0,0,0,0);
}

我設法使用此代碼修復了此問題

iOS上的OpenGL ES 2.0對象選取

很好的答案,基本上GLKViewDrawableMultisample4X不能與拾取配合使用,因此您需要制作另一個渲染緩沖區

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM