|
XFrameCaptureBuffer Class
|
프레임 갈무리 버퍼 클래스.
XViewArea에 붙여서 화면에 그려지는 내용을 프레임별로 갈무리한다.
OpenGL 프레임버퍼 객체(Framebuffer Objects, FBO)를 통한 다중 렌더링(Multiple Render Target, MRT)으로
색상값과 더불어 흑백 영상, YUV (444P), 화소별 3차원 좌표 등을 얻을 수 있다.
Inheritance Hierarchy
Namespace: Pixoneer.NXDL.NGRAssembly: NXDLgr (in NXDLgr.dll) Version: 2.0.3.38
Syntaxpublic class XFrameCaptureBuffer
The XFrameCaptureBuffer type exposes the following members.
Constructors | Name | Description |
---|
 | XFrameCaptureBuffer | 기본 생성자.
기본값: 레이어 갈무리, 영상 데이터 시작이 화면 상단이 되도록 세로 뒤집음, 3차원 지구 모드, 픽셀 정렬 8, 바이트 정렬 1.
|
 | XFrameCaptureBuffer(IntPtr) | 생성자 |
 | XFrameCaptureBuffer(XFrameCaptureBuffer*) | 생성자. c# 사용불가능 |
 | XFrameCaptureBuffer(XFrameCaptureBuffereCaptureMode, Boolean, Boolean) | 생성자. 갈무리 대상, 데이터 세로 시작 위치, 지구 모드를 지정하여 만든다. (픽셀 정렬 8, 바이트 정렬 1) |
 | XFrameCaptureBuffer(XFrameCaptureBuffereCaptureMode, Boolean, Boolean, Int32, Int32) | 생성자. 갈무리 대상, 데이터 세로 시작 위치, 지구 모드, 픽셀과 바이트 정렬값을 지정하여 만든다.
비디오 프레임으로 넘겨주거나 이미지 파일로 저장할 경우 코덱에 따라 픽셀 정렬 또는 바이트 정렬이 필요할 수 있다.
(예를 들어, 비트맵인 경우 바이트 정렬을 4로 해야 한다.) |
Top
Properties | Name | Description |
---|
 | ApplyEffectAsFlipped | 기상 효과를 적용할 때 영상이 세로로 뒤집힌 상태를 고려하도록 설정한다. |
 | CameraAttitude | 프레임 영상을 합성한 카메라 자세. 방위각, 고각, 회전각 순서로 도(degree) 단위이다. |
 | CameraPosition | 프레임 영상을 합성한 카메라 위치. 플래닛 뷰 갈무리의 경우 ECEF/ECR 좌표이다. |
 | CaptureBGR | RGB 영상을 BGR 순서로 갈무리하는 속성. 기본값은 거짓으로 RGB 순서로 갈무리한다. |
 | Captured | 갈무리한 영상이 있는지 확인한다. |
 | CaptureGrayscale | 흑백 영상 갈무리 여부를 확인하고 지정하는 속성. |
 | CapturePosition | 3차원 좌표 갈무리 여부를 확인하고 지정하는 속성. |
 | CaptureWithoutRequestID | 프레임 식별자를 지정한 명시적 요청이 아닌 경우에도 갈무리 수행 여부를 설정하는 쓰기 전용 속성값. |
 | CaptureYUV | YUV 영상 갈무리 여부를 확인하고 지정하는 속성. YUV를 갈무리하면 흑백 영상은 자동으로 제공된다. |
 | ColorTextureID | GL 명령에서 직접 쓸 수 있도록 컬러 영상 텍스처 식별자를 제공하는 읽기전용 속성. |
 | CompleteMode | 그래픽스 명령이 완료될 때까지 기다렸다가 버퍼에 접근하는 모드 설정. (glFinish() 사용) |
 | DataHeight | 데이터의 세로 화소 크기. 픽셀 정렬 때문에 영상 크기보다 클 수 있다. 모든 데이터 배열의 세로 크기는 데이터 세로 화소 크기와 같다. |
 | DataLineSize | 데이터 배열의 가로 길이. 바이트 정렬 때문에 데이터 가로 화소 크기보다 클 수 있다. |
 | DataWidth | 데이터의 가로 화소 크기. 픽셀 정렬 때문에 영상 크기보다 클 수 있다. 데이터 배열의 가로 크기는 바이트 정렬 때문에 데이터 가로 화소 크기와 다를 수 있다. |
 | Grayscale | 흑백 영상 데이터를 얻는다. 한 행씩 순서대로 기록되어 있다. |
 | GrayscalePtr | 뒤집힘을 보정하지 않은 흑백 영상 데이터 포인터를 얻는다. 한 행씩 순서대로 기록되어 있다. |
 | Height | 영상의 세로 화소 크기. |
 | ID | 프레임 식별자. 뷰에서 렌더링을 요청할 때 식별자를 지정하면 갈무리 버퍼에 자동으로 채워진다. |
 | Mode | 갈무리 대상을 확인하고 지정하는 속성. |
 | PosDataLineSize | 3차원 좌표 데이터의 가로 길이. |
 | Position | 3차원 좌표 데이터를 얻는다. 화소별 x,y,z 좌표값이 한 행씩 순서대로 기록되어 있다. |
 | PositionPtr | 뒤집힘을 보정하지 않은 3차원 좌표 데이터 포인터를 얻는다. 화소별 x,y,z 좌표값이 한 행씩 순서대로 기록되어 있다. |
 | RGB | 컬러 영상 RGB 데이터를 얻는다. 화소별 R,G,B 값이 한 행씩 순서대로 기록된 stripe 형식이다. |
 | RGBDataLineSize | RGB 데이터의 가로 길이. 바이트 정렬 때문에 데이터 가로 화소 크기에 3을 곱한 값보다 클 수 있다. |
 | RGBPtr | 뒤집힘을 보정하지 않은 원본 컬러 영상 RGB 데이터 포인터를 얻는다. 화소별 R,G,B 값이 한 행씩 순서대로 기록된 stripe 형식이다. |
 | UsePositionOffset | 고해상도 3차원 좌표 갈무리를 위한 오프셋(예: 플래닛의 WOS) 사용 여부를 지정하는 속성. |
 | VerticalFlip | 세로 좌표가 위쪽이 0이 되도록 뒤집었는지 나타낸다. |
 | Width | 영상의 가로 화소 크기. |
 | WorldOffset | 3차원 좌표 오프셋을 얻는다. 주의! 이 값은 Position 속성을 읽을 때 함께 읽으므로 반드시 Position 속성을 먼저 읽어야 한다. |
Top
Methods
Remarks
컬러 영상은 기본적으로 갈무리가 되고, 다른 요소들은 뷰 또는 레이어에 맞게 쉐이더를 작성해야 한다.
현재 플래닛 뷰에서 XShaderPlanet에 MRT 쉐이더가 작성되어 있다.
사용 예:
1) 플래닛 화면을 비디오로 인코딩하여 전송. XVideoEncoder에 직접 갈무리 버퍼를 넘길 수 있다.
2) 플래닛 화면 미러링. 컬러 영상은 GL 텍스처이므로 적절한 렌더링 컨텍스트에서 텍스처를 입힌 사각형을 그리면 된다.
See Also