Custom Blink Script: Custom_Color
목표
이번에는 **Custom_Color**라는 이름의 새로운 Blink 스크립트를 만들어 보고, 불필요한 부분은 제거하고 최적화하겠습니다. 또한 코드의 각 부분 옆에 설명을 추가해 작업 내용을 이해하고 다른 사람들에게 공유할 수 있도록 하겠습니다.
Blink 스크립트에서 코드에 포함되지 않는 주석을 작성하려면 //를 사용합니다.
Custom_Color 코드
ernel Custom_Color : ImageComputationKernel<ePixelWise>
{
Image<eWrite> dst; //output image
param:
float4 color; //parameter
void define() {
defineParam(color, "Custom color", float4(0.0f,1.0f,0.0f,0.0f)); //defalut value
}
void process() {
dst() = color; //output
}
};
코드 분석
커널 이름 정의
- 커널의 이름을 **Custom_Color**로 정의했습니다.
- 이 커널은 픽셀 단위로 데이터를 처리(ePixelWise)하도록 설정되어 있습니다.
kernel Custom_Color : ImageComputationKernel<ePixelWise>
출력 이미지 정의
- 출력 이미지를 정의하며, 이 이미지는 dst로 명명되었습니다.
Image<eWrite> dst;
파라미터 정의
- float4 유형의 파라미터 **color**를 선언했습니다.
- float4는 RGBA 값을 포함하는 네 가지 부동소수점 값을 의미합니다.
param: float4 color;
파라미터 기본값 설정
- defineParam 함수는 파라미터를 설정합니다.
- 첫 번째 인자: 파라미터 이름(color)
- 두 번째 인자: 노브에 표시될 이름("Custom color")
- 세 번째 인자: 기본값(녹색, float4(0.0f,1.0f,0.0f,0.0f))
void define() {
defineParam(color, "Custom color", float4(0.0f, 1.0f, 0.0f, 0.0f));
}
메인 프로세스 작성
- 출력값(dst)을 파라미터 값(color)으로 설정합니다.
- 위 코드는 기본적으로 **"단색 이미지 출력"**을 수행합니다.
void process() {
dst() = color;
}
};
결과
이 코드는 단색의 녹색 이미지를 출력합니다.
노드의 "Custom color" 파라미터 값을 변경하면 출력 색상이 실시간으로 변경됩니다.
Blink 스크립트에서 생성되는 노브는 Nuke의 일반적인 노브와 유사하지만, Blink 커널에서는 사용할 수 있는 노브의 유형이 제한적입니다.
Blink 커널에서 생성 가능한 노브 유형
다음은 Blink 스크립트에서 사용할 수 있는 몇 가지 노브 유형입니다:
- bool : 부울 값 (참/거짓)
- int : 정수 값
- int multi_int[4] : 네 개의 정수 값
- float : 단일 부동소수점 값
- float2 : 두 개의 부동소수점 값
- float3 : 세 개의 부동소수점 값
- float4 : 네 개의 부동소수점 값 (색상 노브로 표시됨)
- float multi_float[5] : 다중 부동소수점 값 (크기는 [] 내부 숫자로 정의)
- float3x3 : 3x3 매트릭스 값
- float4x4 : 4x4 매트릭스 값
확장 가능성
Blink 스크립트의 제한된 노브 유형을 보완하기 위해, Nuke의 일반적인 노드 제작 방식(gizmo)을 활용하여 추가적인 커스텀 노브를 생성한 뒤 Blink 스크립트와 연결할 수 있습니다.
이를 통해 Blink 스크립트의 기능을 확장하고 더욱 유연하게 활용할 수 있습니다.
'Nuke > Blink Script' 카테고리의 다른 글
Blink Scripting 101 - UV 맵 생성 예제 (0) | 2024.12.11 |
---|---|
Blink Scripting 101 - Combining Input Image and Custom Color (0) | 2024.12.11 |
Blink Scripting 101 - Blink 노드의 구성 (0) | 2024.12.11 |
blink kernels (5) - Blink Reference Guide (0) | 2024.12.08 |
blink kernels (4) (0) | 2024.12.08 |