https://www.guillemramisadesoto.com/blink-101
Blink 101 — Guillem Ramisa de Soto
Now, lets see the second method. To me, this is more interesting and it introduces us to a new concept called ‘Length‘. The length of a vector is a value that can be stored as a float per pixel, that represents a correlation between values, for example
www.guillemramisadesoto.com
DISCLAIMER
이 페이지는 Nuke에서 Blink 스크립트의 기초를 이해하고자 하는 분들을 위한 것입니다. 제가 이 분야의 전문가는 아니지만, 지식을 체계적으로 정리하는 것이 많은 도움이 된다는 것을 깨달았습니다.
"무언가를 마스터하고 싶다면, 가르쳐라." 라는 말처럼요.
Blink Script란 무엇인가?
Blink 스크립트는 Nuke 내에서 데이터를 수정하고 처리하여 결과를 생성할 수 있도록 C++ 스타일로 코드를 작성하는 프레임워크입니다.
The Foundry의 Nuke 웹사이트에서 Blink Script에 대한 정보를 찾을 수 있지만, 먼저 개발자를 위한 전용 페이지를 읽어보는 것을 권장합니다.
이 페이지는 Nukepedia의 Matt Estela와 Pedro Andrade의 훌륭한 페이지에서 영감을 받았습니다.
Blink 노드의 구성
Nuke의 Blink 노드는 크게 세 가지 주요 영역으로 나뉩니다:
- Node
DAG(Directed Acyclic Graph)에서 작업할 수 있는 Nuke 노드입니다. - Kernel
메인 코드가 작성되고 컴파일되는 영역입니다. 작성된 코드는 텍스트 파일로 저장하거나 불러올 수 있습니다. - Parameters
코드의 동작을 변경할 수 있는 공개된 파라미터가 표시됩니다. CPU 및 GPU 옵션을 설정하거나 노드를 퍼블리시하고 커널을 보호할 수도 있습니다.
Kernel 기본 코드 분석
Blink Script의 가장 간단한 예제를 통해 코드 구조를 살펴보겠습니다. Blink Script는 최대 7개의 주요 영역으로 구성될 수 있지만, 모든 영역이 필수는 아니며 작업에 따라 생략할 수도 있습니다. 일관성을 위해 모든 영역을 포함한 예제를 작성하겠습니다.
예제 코드
ernel SimpleKernel : ImageComputationKernel<ePixelWise>
{
Image<eRead, eAccessPoint> src;
Image<eWrite> dst;
param:
local:
void define() {
}
void init() {
}
void process() {
dst() = src();
}
};
코드 분석
Kernel 선언첫 번째 줄에서 Kernel을 선언합니다. SimpleKernel은 커널의 이름이며, ePixelWise는 데이터를 처리하는 방식을 정의합니다. 데이터 접근 방식에 대한 자세한 내용은 이 링크를 참고하세요.
kernel SimpleKernel : ImageComputationKernel<ePixelWise>
입력 및 출력 선언
- eRead: 입력 데이터(src)를 선언합니다.
- eWrite: 출력 데이터(dst)를 선언합니다.
- eAccessPoint: 현재 픽셀의 위치를 하나씩 처리하도록 설정합니다.
Image<eRead, eAccessPoint> src;
Image<eWrite> dst;
param공개 파라미터를 선언합니다. 이 파라미터는 사용자 인터페이스에서 조정할 수 있습니다.
param:
local내부적으로 사용되는 비공개 변수를 선언합니다.
local:
void define() {
}
init 메서드초기 처리를 수행하는 공간입니다. 이미지를 처리할 때마다 한 번만 호출됩니다.
void init() {
}
void process() {
dst() = src();
}
- 위 코드에서는 출력(dst)이 입력(src)과 동일하도록 설정합니다.
- 이 코드는 아무 작업도 하지 않는 코드입니다.
'Nuke > Blink Script' 카테고리의 다른 글
Blink Scripting 101 - Combining Input Image and Custom Color (0) | 2024.12.11 |
---|---|
Blink Scripting 101 - Custom_Color (0) | 2024.12.11 |
blink kernels (5) - Blink Reference Guide (0) | 2024.12.08 |
blink kernels (4) (0) | 2024.12.08 |
blink kernels (3) (0) | 2024.12.08 |