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: 1.2.817.72
Syntax
C#
public class XFrameCaptureBuffer : XResourceObject

The XFrameCaptureBuffer type exposes the following members.

Constructors
  NameDescription
Public methodXFrameCaptureBuffer
기본 생성자. 기본값: 레이어 갈무리, 영상 데이터 시작이 화면 상단이 되도록 세로 뒤집음, 3차원 지구 모드, 픽셀 정렬 8, 바이트 정렬 1.
Public methodXFrameCaptureBuffer(XFrameCaptureBuffer*)
Public methodXFrameCaptureBuffer(IntPtr)
Public methodXFrameCaptureBuffer(XFrameCaptureBuffereCaptureMode, Boolean, Boolean)
생성자. 갈무리 대상, 데이터 세로 시작 위치, 지구 모드를 지정하여 만든다. (픽셀 정렬 8, 바이트 정렬 1)
Public methodXFrameCaptureBuffer(XFrameCaptureBuffereCaptureMode, Boolean, Boolean, Int32, Int32)
생성자. 갈무리 대상, 데이터 세로 시작 위치, 지구 모드, 픽셀과 바이트 정렬값을 지정하여 만든다. 비디오 프레임으로 넘겨주거나 이미지 파일로 저장할 경우 코덱에 따라 픽셀 정렬 또는 바이트 정렬이 필요할 수 있다. (예를 들어, 비트맵인 경우 바이트 정렬을 4로 해야 한다.)
Top
Properties
  NameDescription
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 그래픽 아키텍처에서 렌더 콜백 이벤트 등에서 불러쓸 수 있다. 테두리 사각형의 첫째 X 좌표. 테두리 사각형의 첫째 Y 좌표. 테두리 사각형의 둘째 X 좌표. 테두리 사각형의 둘째 Y 좌표. 깊이 버퍼 복사 여부. 실제 장치에 그린다고 가정하여 0번 버퍼를 쓰기 버퍼로 지정한다.

Return Value

Type: 
도시 성공 여부. 갈무리가 안 되는 등 준비가 안 되었으면 실패한다.
Public methodCapture
갈무리 버퍼 텍스처 데이터를 접근 가능한 메모리로 복사한다.
Public methodCopyColorTexture
갈무리 버퍼의 컬러 텍스처를 얻는다.
Public methodCopyColorTexture(UInt64)
갈무리 버퍼의 컬러 텍스처를 얻는다.
Public methodCopyGrayscaleTexture
갈무리 버퍼의 흑백 텍스처를 얻는다.
Public methodCopyGrayscaleTexture(UInt64)
갈무리 버퍼의 흑백 텍스처를 얻는다.
Public methodEndPixelProcessingMode
갈무리 버퍼의 독립적인 픽셀 처리 모드를 종료한다. 렌더 컨텍스트를 재설정하도록 설정하면 모드 시작 전에 활성화된 컨텍스트로 되돌린다.
Public methodGetNativeFBO
XDL 네이티브 객체를 얻는다.
Public methodImageToScreen
영상 좌표를 화면 좌표로 변환한다. 고정 크기 버퍼인 경우 두 좌표가 다를 수 있고, 가변 크기의 경우는 항상 같다. 영상 좌표. 왼쪽 위가 원점이다.

Return Value

Type: 
영상 좌표에 대응하는 화면 좌표. 왼쪽 위가 원점이다.
Public methodImageToWorld
영상 좌표를 3차원 모델 좌표로 변환한다. 3차원 좌표를 갈무리하는 경우에만 대응 좌표를 반환한다. 영상 좌표.

Return Value

Type: 
영상 좌표에 대응하는 3차원 좌표. 좌표가 없는 경우 null.
Public methodLockBuffer
갈무리 데이터에 접근할 때 필요시 버퍼를 잠근다. 개별 자료 접근은 동기화되어 있으나 여러 자료에 접근할 때 쓴다.
Public methodRelease
Public methodSaveFrame
갈무리한 프레임을 이미지로 저장한다. RGB 데이터 또는 흑백 영상에 대한 갈무리가 완료된 상태여야 한다.
Public methodScreenToImage
화면 좌표를 영상 좌표로 변환한다. 고정 크기 버퍼인 경우 두 좌표가 다를 수 있고, 가변 크기의 경우는 항상 같다. 화면 좌표. 왼쪽 위가 원점이다.

Return Value

Type: 
화면 좌표에 대응하는 영상 좌표. 왼쪽 위가 원점이다.
Public methodSetEffectBlur
갈무리 영상을 흐리게 하는 블러(Blur) 효과 적용 여부를 설정한다.
Public methodSetSize
프레임 갈무리 버퍼의 크기를 정한다. 고정 크기로 하면 뷰 화면 크기와 다르게 영상 크기를 지정할 수 있다. 갈무리 영상 가로 크기. 갈무리 영상 세로 크기. 고정 크기 버퍼인지 표시. 고정 크기 버퍼는 버퍼 크기만큼 영상을 그리고 뷰 크기에 맞게 보여준다.
Public methodUnlockBuffer
갈무리 데이터 접근 잠금을 푼다.
Top
Fields
  NameDescription
Public fieldStatic memberNoRequestID
Top
Remarks
컬러 영상은 기본적으로 갈무리가 되고, 다른 요소들은 뷰 또는 레이어에 맞게 쉐이더를 작성해야 한다. 현재 플래닛 뷰에서 XShaderPlanet에 MRT 쉐이더가 작성되어 있다. 사용 예: 1) 플래닛 화면을 비디오로 인코딩하여 전송. XVideoEncoder에 직접 갈무리 버퍼를 넘길 수 있다. 2) 플래닛 화면 미러링. 컬러 영상은 GL 텍스처이므로 적절한 렌더링 컨텍스트에서 텍스처를 입힌 사각형을 그리면 된다.
See Also