-
vvvv gamma : The Stride Rendering Pipeline / VL5.Graphics/VVVV gamma 2023. 10. 6. 21:49
*아래 영상을 보고 노트한 내용이다.
https://youtu.be/4rDgVe1F0gg?si=1A0--d5V-nrpfBDW
이 영상에서는 3D 오브젝트를 렌더해보는 내용을 다뤘다.
1. VL.Stride
Stride는 일종의 3D 오브젝트를 렌더링할 수 있는 패키지를 모아놓은 것처럼 보인다.
우선 나의 프로젝트에 Stride 패키지를 추가해야 한다.
VL.Stride를 검색하면 +VL.Stride라는 박스가 나타나는데 눌러 추가한다.
그리고 stride를 다시 검색해보면 아래처럼 폴더가 나타난다.
폴더를 열어보면 아래처럼 다양한 노드들이 나타난다.
살펴보면 Camera, Rendering, Textures 등 3D 렌더와 관련된 다양한 노드들이 나타난다.
먼저 창을 띄우기 위해서 SceneWindow를 추가한다.
1. RootScene: SceneWindow에는 light, camera 등 다양한 요소들을 합쳐준다.
여러개의 노드들을 combine해주는 것이 바로 RootScene의 역할이다.
2. Box: 박스를 추가한다.
3. DirectionalLight: 빛을 추가하지 않으면 화면에 아무것도 보이지 않는다. 반드시 추가해야 한다.
일반적으로 사용하는 DirectionalLight를 추가하였다.
<오브젝트 움직이기>
방향 돌리기: 왼쪽 클릭 + 드래그
확대/축소: 오른쪽 클릭 + 드래그
이동: 휠클릭 + 드래그
** 원래대로 원점에 돌리고 싶으면 왼쪽 클릭 상태로 R 누른다. (R을 꾹 눌러야함)**
색상을 변경해본다.
SceneWindow의 color input을 통해 백그라운드 색상을 변경할 수 있다.
Box의 color input을 통해 색상을 변경한다.
PRB Material: input을 통해 색상과 텍스처 질감 (Metalness, Roughness 등등)
(H: 색상 S: 채도 V: 명도)
큐브를 회전시킨다.
Box의 TransformSRT input을 연결한다.
TransformSRT(3D.Transform): roatate, scale, position을 바꿀 수 있다.
TransformSRT의 Rotate input핀에 Vector(join)(3D)을 연결한다.
마지막으로 x와 z인풋에 LFO를 연결하면 큐브가 x와 z방향으로 반복적으로 회전한다.
큐브 외에 Sphere 하나를 추가했다.
Group: 여러개의 오브젝트를 연결해 보여줄 수 있다. ctrl + 로 input을 확장할 수 있다.
RootScene에 Group을 연결하고 첫번째 input에는 Box를, 두번째 input에는 Sphere을 연결한다.
Sphere: 구를 추가하고 관련된 속성을 설정할 수 있다. Tessellation을 높이면 구를 이루는 면의 개수를 늘일 수 있다.
=> 조금 더 둥그런 원이 된다.
Sphere에 색상을 입히고 blend시킨다.
Blend(Transparency): 투명도를 조절해 오브젝트를 자연스럽게 합쳐준다.
Sphere에도 동일한 TansformSRT를 적용하기 위해서는 Box와 Sphere, 각각의 Transform input에
연결해주는 방법도 있지만, Group의 Transform에 연결해주면 더욱 간단하다.
Spehre와 Box를 랜덤하게 이동시켰다.
최종적으로 TransformSRT의 Translation input에 Random 노드를 연결시키는 구조이다.
Random: From input핀과 To input핀을 통해 랜덤 범위를 지정할 수 있다. 인풋핀에서 바로 휠 클릭을 통해 연결할 수 있는
데이터 타입을 살펴보면 float, integer, vector3 등 다양하다. 여기서는 vector3을 선택했다.
Random의 output을 보면 프레임 단위로 랜덤한 vector값이 출력된다.
그대로 적용하면 오브젝트가 너무 빠르게 움직이기 때문에, 특정한 시간 당 한번씩 좌표값이 변하도록 한다.
LFO를 추가해 S+H의 input에 random과 LFO의 On New Cycle output(Bang타입)을 연결한다.
LFO가 1이 되때마다 boolean Bang 타입이 울리면서 해당 Random value를 반환하게 된다.
S+H(/Control): 특정 타입의 변수를 input으로 받아, boolean input으로 제어하도록 하는 노드.
output 역시 해당 타입의 변수이다. 이름이 잘 와닿지 않아 직접 사용해보면서 익혀야할것 같다.
순간이동 하는 큐브를 부드럽게 이동하도록 만들어준다.
Filter: position을 받아 부드럽게 전환되도록 한다. Filter Time을 통해 전환되는 속도를 설정할 수 있다. (값이 높을수록 느리게 움직임)
Transition 인풋을 통해 어떻게 전환될지 모드를 바꿀 수 있다.
또한 Mode를 통해 출발지점(in)에 적용할지 도착지점(out)에 적용할지 (또는 둘 다) 결정할 수 있다.
** 결과 영상
'Graphics > VVVV gamma' 카테고리의 다른 글
vvvv gamma : Controlling Patches / VL7. (1) 2023.10.08 vvvv gamma : Spreads & Iteratio / VL6. (0) 2023.10.07 vvvv gamma : Type Conversion / VL4. (0) 2023.10.06 vvvv gamma : Nodes & Pins / VL3. (1) 2023.10.05 vvvv gamma : Data Types & IOBoxes / VL2. (2) 2023.10.05