Click or drag to resize
XDL

XFrameCaptureBuffer Class

프레임 갈무리 버퍼 클래스. XViewArea에 붙여서 화면에 그려지는 내용을 프레임별로 갈무리한다. OpenGL 프레임버퍼 객체(Framebuffer Objects, FBO)를 통한 다중 렌더링(Multiple Render Target, MRT)으로 색상값과 더불어 흑백 영상, YUV (444P), 화소별 3차원 좌표 등을 얻을 수 있다.
Inheritance Hierarchy
SystemObject
  Pixoneer.NXDL.NGRXFrameCaptureBuffer

Namespace: Pixoneer.NXDL.NGR
Assembly: NXDLgr (in NXDLgr.dll) Version: 2.0.3.38
Syntax
C#
public class XFrameCaptureBuffer

The XFrameCaptureBuffer type exposes the following members.

Constructors
 NameDescription
Public methodXFrameCaptureBuffer 기본 생성자. 기본값: 레이어 갈무리, 영상 데이터 시작이 화면 상단이 되도록 세로 뒤집음, 3차원 지구 모드, 픽셀 정렬 8, 바이트 정렬 1.
Public methodXFrameCaptureBuffer(IntPtr) 생성자
Public methodXFrameCaptureBuffer(XFrameCaptureBuffer*) 생성자. c# 사용불가능
Public methodXFrameCaptureBuffer(XFrameCaptureBuffereCaptureMode, Boolean, Boolean) 생성자. 갈무리 대상, 데이터 세로 시작 위치, 지구 모드를 지정하여 만든다. (픽셀 정렬 8, 바이트 정렬 1)
Public methodXFrameCaptureBuffer(XFrameCaptureBuffereCaptureMode, Boolean, Boolean, Int32, Int32) 생성자. 갈무리 대상, 데이터 세로 시작 위치, 지구 모드, 픽셀과 바이트 정렬값을 지정하여 만든다. 비디오 프레임으로 넘겨주거나 이미지 파일로 저장할 경우 코덱에 따라 픽셀 정렬 또는 바이트 정렬이 필요할 수 있다. (예를 들어, 비트맵인 경우 바이트 정렬을 4로 해야 한다.)
Top
Properties
 NameDescription
Public propertyApplyEffectAsFlipped 기상 효과를 적용할 때 영상이 세로로 뒤집힌 상태를 고려하도록 설정한다.
Public propertyCameraAttitude 프레임 영상을 합성한 카메라 자세. 방위각, 고각, 회전각 순서로 도(degree) 단위이다.
Public propertyCameraPosition 프레임 영상을 합성한 카메라 위치. 플래닛 뷰 갈무리의 경우 ECEF/ECR 좌표이다.
Public propertyCaptureBGR RGB 영상을 BGR 순서로 갈무리하는 속성. 기본값은 거짓으로 RGB 순서로 갈무리한다.
Public propertyCaptured 갈무리한 영상이 있는지 확인한다.
Public propertyCaptureGrayscale 흑백 영상 갈무리 여부를 확인하고 지정하는 속성.
Public propertyCapturePosition 3차원 좌표 갈무리 여부를 확인하고 지정하는 속성.
Public propertyCaptureWithoutRequestID 프레임 식별자를 지정한 명시적 요청이 아닌 경우에도 갈무리 수행 여부를 설정하는 쓰기 전용 속성값.
Public propertyCaptureYUV YUV 영상 갈무리 여부를 확인하고 지정하는 속성. YUV를 갈무리하면 흑백 영상은 자동으로 제공된다.
Public propertyColorTextureID GL 명령에서 직접 쓸 수 있도록 컬러 영상 텍스처 식별자를 제공하는 읽기전용 속성.
Public propertyCompleteMode 그래픽스 명령이 완료될 때까지 기다렸다가 버퍼에 접근하는 모드 설정. (glFinish() 사용)
Public propertyDataHeight 데이터의 세로 화소 크기. 픽셀 정렬 때문에 영상 크기보다 클 수 있다. 모든 데이터 배열의 세로 크기는 데이터 세로 화소 크기와 같다.
Public propertyDataLineSize 데이터 배열의 가로 길이. 바이트 정렬 때문에 데이터 가로 화소 크기보다 클 수 있다.
Public propertyDataWidth 데이터의 가로 화소 크기. 픽셀 정렬 때문에 영상 크기보다 클 수 있다. 데이터 배열의 가로 크기는 바이트 정렬 때문에 데이터 가로 화소 크기와 다를 수 있다.
Public propertyGrayscale 흑백 영상 데이터를 얻는다. 한 행씩 순서대로 기록되어 있다.
Public propertyGrayscalePtr 뒤집힘을 보정하지 않은 흑백 영상 데이터 포인터를 얻는다. 한 행씩 순서대로 기록되어 있다.
Public propertyHeight 영상의 세로 화소 크기.
Public propertyID 프레임 식별자. 뷰에서 렌더링을 요청할 때 식별자를 지정하면 갈무리 버퍼에 자동으로 채워진다.
Public propertyMode 갈무리 대상을 확인하고 지정하는 속성.
Public propertyPosDataLineSize 3차원 좌표 데이터의 가로 길이.
Public propertyPosition 3차원 좌표 데이터를 얻는다. 화소별 x,y,z 좌표값이 한 행씩 순서대로 기록되어 있다.
Public propertyPositionPtr 뒤집힘을 보정하지 않은 3차원 좌표 데이터 포인터를 얻는다. 화소별 x,y,z 좌표값이 한 행씩 순서대로 기록되어 있다.
Public propertyRGB 컬러 영상 RGB 데이터를 얻는다. 화소별 R,G,B 값이 한 행씩 순서대로 기록된 stripe 형식이다.
Public propertyRGBDataLineSize RGB 데이터의 가로 길이. 바이트 정렬 때문에 데이터 가로 화소 크기에 3을 곱한 값보다 클 수 있다.
Public propertyRGBPtr 뒤집힘을 보정하지 않은 원본 컬러 영상 RGB 데이터 포인터를 얻는다. 화소별 R,G,B 값이 한 행씩 순서대로 기록된 stripe 형식이다.
Public propertyUsePositionOffset 고해상도 3차원 좌표 갈무리를 위한 오프셋(예: 플래닛의 WOS) 사용 여부를 지정하는 속성.
Public propertyVerticalFlip 세로 좌표가 위쪽이 0이 되도록 뒤집었는지 나타낸다.
Public propertyWidth 영상의 가로 화소 크기.
Public propertyWorldOffset 3차원 좌표 오프셋을 얻는다. 주의! 이 값은 Position 속성을 읽을 때 함께 읽으므로 반드시 Position 속성을 먼저 읽어야 한다.
Top
Methods
 NameDescription
Public methodBeginPixelProcessingMode 갈무리 버퍼에 독립적으로 렌더링을 하는 모드를 시작한다. 주로 쉐이더를 통한 오프-스크린 픽셀 처리에 쓰인다.
Public methodCallDraw 갈무리한 컬러 영상을 주어진 사각형 안에 그린다. GL 명령을 쓸 수 있도록 렌더링 컨텍스트가 활성화된 상태에서 불러야 한다. XDL 그래픽 아키텍처에서 렌더 콜백 이벤트 등에서 불러쓸 수 있다.
Public methodCapture 갈무리 버퍼 텍스처 데이터를 접근 가능한 메모리로 복사한다.
Public methodCopyColorTexture 갈무리 버퍼의 컬러 텍스처를 얻는다.
Public methodCopyColorTexture(UInt64) 갈무리 버퍼의 컬러 텍스처를 얻는다.
Public methodCopyGrayscaleTexture 갈무리 버퍼의 흑백 텍스처를 얻는다.
Public methodCopyGrayscaleTexture(UInt64) 갈무리 버퍼의 흑백 텍스처를 얻는다.
Public methodEndPixelProcessingMode 갈무리 버퍼의 독립적인 픽셀 처리 모드를 종료한다. 렌더 컨텍스트를 재설정하도록 설정하면 모드 시작 전에 활성화된 컨텍스트로 되돌린다.
Public methodGetNativeFBO XDL 네이티브 객체를 얻는다.
Public methodImageToScreen 영상 좌표를 화면 좌표로 변환한다. 고정 크기 버퍼인 경우 두 좌표가 다를 수 있고, 가변 크기의 경우는 항상 같다.
Public methodImageToWorld 영상 좌표를 3차원 모델 좌표로 변환한다. 3차원 좌표를 갈무리하는 경우에만 대응 좌표를 반환한다.
Public methodLockBuffer 갈무리 데이터에 접근할 때 필요시 버퍼를 잠근다. 개별 자료 접근은 동기화되어 있으나 여러 자료에 접근할 때 쓴다.
Public methodRelease 프레임 갈무리 버퍼와 관련된 리소스 및 메모리를 해제한다.
Public methodSaveFrame 갈무리한 프레임을 이미지로 저장한다. RGB 데이터 또는 흑백 영상에 대한 갈무리가 완료된 상태여야 한다.
Public methodScreenToImage 화면 좌표를 영상 좌표로 변환한다. 고정 크기 버퍼인 경우 두 좌표가 다를 수 있고, 가변 크기의 경우는 항상 같다.
Public methodSetEffectBlur 갈무리 영상을 흐리게 하는 블러(Blur) 효과 적용 여부를 설정한다.
Public methodCode exampleSetEffectFog 갈무리 영상에 안개가 낀 효과 적용 여부를 설정한다.
Public methodCode exampleSetEffectRain 갈무리 영상에 비가 내리는 효과 적용 여부를 설정한다.
Public methodCode exampleSetEffectSnow 갈무리 영상에 눈이 내리는 효과 적용 여부를 설정한다.
Public methodSetSize 프레임 갈무리 버퍼의 크기를 정한다. 고정 크기로 하면 뷰 화면 크기와 다르게 영상 크기를 지정할 수 있다.
Public methodUnlockBuffer 갈무리 데이터 접근 잠금을 푼다.
Top
Remarks
컬러 영상은 기본적으로 갈무리가 되고, 다른 요소들은 뷰 또는 레이어에 맞게 쉐이더를 작성해야 한다. 현재 플래닛 뷰에서 XShaderPlanet에 MRT 쉐이더가 작성되어 있다. 사용 예: 1) 플래닛 화면을 비디오로 인코딩하여 전송. XVideoEncoder에 직접 갈무리 버퍼를 넘길 수 있다. 2) 플래닛 화면 미러링. 컬러 영상은 GL 텍스처이므로 적절한 렌더링 컨텍스트에서 텍스처를 입힌 사각형을 그리면 된다.
See Also