AnyPortrait > 스크립트 > 커맨드 버퍼

커맨드 버퍼


유니티의 커맨드 버퍼(Command Buffer)를 AnyPortrait의 캐릭터를 대상으로 사용하기 위한 함수들입니다.
다음의 함수들은 apPortrait가 아닌 apCustomCommandBuffer 클래스에 속합니다.
코드를 작성하는 방법은 페이지 하단의 예제 코드나 커맨드 버퍼 사용 예시를 설명하는 다음의 페이지를 참고해주세요.
- 커맨드 버퍼 작성하기


또한 유니티의 커맨드 버퍼에 대한 자세한 설명은 아래의 유니티 공식 메뉴얼에서 확인하실 수 있습니다.
- 커맨드 버퍼를 사용하여 빌트인 렌더 파이프라인 확장
- 스크립터블 렌더 파이프라인에서 렌더링 커맨드 예약 및 실행
- 커맨드 버퍼 API
- CameraEvent API


public apCustomCommandBuffer Camera ( camera, apPortrait portrait, string commandBufferName )
1.4.0
Description

   apPortrait를 대상으로 하는 커맨드 버퍼 클래스를 생성합니다.


Parameters

   Camera camera : 렌더링을 수행할 카메라
   apPortrait portrait : 렌더링이 되는 apPortrait
   string commandBufferName : 카메라에 등록되는 커맨드 버퍼의 이름


public void Destory ()
1.4.0
Description

   커맨드 버퍼를 등록된 카메라로부터 제거합니다.
   카메라, apPortrait 캐릭터 또는 커맨드 버퍼 클래스중 하나라도 존재하지 않게 된다면 이 함수를 꼭 실행해야합니다.


public void AddToCamera ( UnityEngine.Rendering.CameraEvent cameraEvent )
1.4.0
Description

   카메라에 렌더링을 어느 시점에 수행할지 설정합니다.
   Built-in 렌더링 파이프라인을 사용하는 경우 호출되어야 하는 함수입니다.


Parameters

   UnityEngine.Rendering.CameraEvent cameraEvent : 렌더링 시점에 대한 enum 변수


public void AddToCameraSRP ( apCustomCommandBuffer.SRPRenderEvent srpRenderEvent )
1.4.0
Description

   카메라에 렌더링을 어느 시점에 수행할지 설정합니다.
   Scriptable Render Pipeline(SRP)를 사용할 경우 호출되어야 하는 함수입니다.
   이 함수는 SRP를 공식적으로 지원하는 Unity 2019.1 또는 그 이후 버전에서만 지원됩니다.


Parameters

   apCustomCommandBuffer.SRPRenderEvent srpRenderEvent : SRP에서의 렌더링 시점


public void CreateAlternativeMaterials ( Material alternativeMaterial )
public void CreateAlternativeMaterials ( Dictionary<string, Material> imageNameToAlterMaterialMap, Material unmatchedMaterial )
1.4.0
Description

   커맨드 버퍼를 이용하여 캐릭터를 렌더링할 때, 다른 재질이 적용되도록 지정합니다.
   인자로서 입력된 Material의 속성들이 복제되어 렌더링에 사용되도록 예약하지만, "_MainTex"와 "_Color"는 복제되지 않습니다.
   대체되는 재질의 쉐이더는 "커스텀 쉐이더"로서의 규칙이 지켜져야 합니다.
   이 함수가 호출된 이후에 "DrawAllMeshesWithAlternativeMaterials" 함수를 이용하여 그리기 요청을 해야합니다.
   만약 Dictionary 타입의 변수로 재질들을 지정한다면, 캐릭터가 가진 여러개의 이미지마다 서로 다른 재질이 적용되어 렌더링될 수 있습니다.


Parameters

   Material alternativeMaterial : 커맨드 버퍼에 의한 렌더링시 대체될 재질
   Dictionary<string, Material> imageNameToAlterMaterialMap : 이미지 이름에 따라 서로 다른 재질이 대체되도록 지정된 매핑 변수
   Material unmatchedMaterial : 대체 대상의 재질을 찾을 수 없을 경우 공통적으로 적용되는 재질


public void ClearCommands ()
1.4.0
Description

   커맨드 버퍼의 내용을 초기화합니다.


public void SetRenderTarget ( RenderTexture renderTexture )
1.4.0
Description

   카메라로 캐릭터를 렌더링한 결과가 "렌더 텍스쳐(Render Texture)"에 저장되도록 설정합니다.


Parameters

   RenderTexture renderTexture : 렌더링 결과가 저장될 텍스쳐


public void ClearRenderTarget ( bool clearDepth, bool clearColor, Color backgroundColor, float depth )
1.4.0
Description

   설정된 렌더링 대상의 색상이나 깊이 값을 초기화합니다.
   Built-in 렌더링 파이프라인에서 호출될 수 있는 함수입니다.


Parameters

   bool clearDepth : 깊이값 초기화 여부
   bool clearColor : 색상값 초기화 여부
   Color backgroundColor : clearColor가 true일 때, 초기화되는 색상
   float depth : clearDepth가 true일 때, 초기화되는 깊이값 (기본값은 1.0f)


public void ClearRenderTarget ( UnityEngine.Rendering.RTClearFlags clearFlags, Color backgroundColor, float depth, uint stencil )
1.4.0
Description

   설정된 렌더링 대상의 색상이나 깊이 값을 초기화합니다.
   Scriptable Render Pipeline(SRP)에서 호출될 수 있는 함수입니다.
   이 함수는 SRP를 공식적으로 지원하는 Unity 2019.1 또는 그 이후 버전에서만 지원됩니다.


Parameters

   UnityEngine.Rendering.RTClearFlags clearFlags : 초기화되는 값의 종류를 지정하는 Flag 변수
   Color backgroundColor : 초기화되는 색상
   float depth : 초기화되는 깊이값 (기본값은 1.0f)
   uint stencil : 초기화되는 스텐실값 (기본값은 0)


public void SetViewMatrix ()
public void SetViewMatrix ( Matrix4x4 customViewMatrix )
1.4.0
Description

   렌더링시 View Matrix로서 어떤 값이 적용될지를 커맨드 버퍼에 지정합니다.
   인자를 지정하지 않는 경우엔 대상의 카메라의 View Matrix와 동일한 값이 렌더링에 이용됩니다.
   이 함수는 Unity 2019.1 또는 그 이후 버전에서만 지원되며, 해당 버전에서는 이 함수를 꼭 호출해야합니다.


Parameters

   Matrix4x4 customViewMatrix : 카메라의 설정과 다르게 적용되는 View Matrix


public void SetProjectionMatrix ()
public void SetProjectionMatrix ( Matrix4x4 customProjectionMatrix )
1.4.0
Description

   렌더링시 Projection Matrix로서 어떤 값이 적용될지를 커맨드 버퍼에 지정합니다.
   인자를 지정하지 않는 경우엔 대상의 카메라의 Projection Matrix와 동일한 값이 렌더링에 이용됩니다.
   이 함수는 Unity 2019.1 또는 그 이후 버전에서만 지원되며, 해당 버전에서는 이 함수를 꼭 호출해야합니다.


Parameters

   Matrix4x4 customProjectionMatrix : 카메라의 설정과 다르게 적용되는 Projection Matrix


public void DrawMesh ( apOptTransform optTransform )
public void DrawMesh ( apOptTransform optTransform, Material material )
DrawMesh apOptTransform optTransform, ( Matrix4x4 localToWorldMatrix )
public void DrawMesh ( apOptTransform optTransform, Matrix4x4 localToWorldMatrix, Material material )
1.4.0
Description

   apOptTransform의 메시를 렌더링하도록 지정합니다.
   "apPortrait.GetOptTransform" 함수가 도움이 될 것입니다.
   재질이나 World Matrix를 임의로 변경하여 렌더링할 수 있습니다.


Parameters

   apOptTransform optTransform : 렌더링이 될 메시를 가진 apOptTransform
   Material material : 렌더링될 대체 재질
   Matrix4x4 localToWorldMatrix : 사용자가 임의로 지정하는 World Matrix


public void DrawAllMeshes ( bool sortOrder, bool excludeClippedChildMeshes )
public void DrawAllMeshes ( Material material, bool sortOrder, bool excludeClippedChildMeshes )
1.4.0
Description

   현재 화면에 보여지는 apPortrait의 모든 메시들이 렌더링되도록 지정합니다.


Parameters

   bool sortOrder : 렌더링 순서를 다시 계산할지 여부
   bool excludeClippedChildMeshes : 커맨드 버퍼와 호환성이 좋지 않은 클리핑되는 메시를 렌더링에서 제외시킬지 여부
   Material material : 렌더링시 사용되는 대체 재질


public void DrawAllMeshesWithAlternativeMaterials ( bool sortOrder, bool excludeClippedChildMeshes )
1.4.0
Description

   현재 화면에 보여지는 apPortrait의 모든 메시들이 렌더링되도록 지정하는 "DrawAllMeshes"함수와 동일한 역할을 수행하지만, "CreateAlternativeMaterials" 함수로부터 등록된 대체 재질들이 이용됩니다.


Parameters

   bool sortOrder : 렌더링 순서를 다시 계산할지 여부
   bool excludeClippedChildMeshes : 커맨드 버퍼와 호환성이 좋지 않은 클리핑되는 메시를 렌더링에서 제외시킬지 여부


public UnityEngine.Rendering.CommandBuffer GetCommandBuffer ()
1.4.0
Description

   유니티의 커맨드 버퍼 객체를 리턴합니다.


Return

   UnityEngine.Rendering.CommandBuffer : 커맨드 버퍼 객체