일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 파이썬
- displace
- 터치디자이너 튜토리얼
- 터치디자이너 오퍼레이터
- 파이썬reference
- 터치디자이너 함수
- touchdesigner GPU
- 터치디자이너 참조
- 터치디자이너 if
- touchdesigner particle
- 터치디자이너 list
- 터치디자이너 클론
- TDableton
- touchdesigner displace
- 터치디자이너 파이썬
- 터치디자이너 replicator
- TouchDesigner
- 터치디자이너 인터페이스
- 터치디자이너 interface
- 터치디자이너 강의
- 파이썬 if
- 터치디자이너
- ableton live 10
- 터치디자이너 reference
- 터치디자이너 python
- particleGPU
- touchdesinger
- 터치디자이너 에이블톤
- 터치디자이너 Instancing
- 터치디자이너 timeline
- Today
- Total
caLAB
TouchDesigner GLSL 기초 - 01 본문
GLSL 공부하려는 이유.
TouchDesigner은 기본적으로 단일 Thread에서 작동한다. 그렇기 때문에 한꺼번에
여러개의 파티클을 만드는 등 대량의 계산 처리를 한 번에 요구하는 작업에는 효율적이지 않다.
GLSL을 사용하면 GPU(multi-thread)를 통하여 연산 처리를 할 수 있기 때문에 대량의 계산 처리를 cpu의 단일 thread보다. 효율적으로 처리할 수 있다. 좀 더 멋있는 작업물을 위해서 공부를 시작해보자!
GLSL(openGL shading Language)이란?
shader의 일종으로 그래픽에 최적화 된 언어이다. c언어를 기본으로 한다.
각각의 픽셀에 어떤 색을 입힐지 결정한다.
2D 3D 그래픽이 GPU에 직접적으로 실행 된다.
* Shader란?
입력값(vertex info)을 출력값(화면에 보여지는 pixel)으로 변환시키는 프로그램. GPU에서 일어남.
TouchDesigner에서 GLSL을 다루는 operator는
glsl TOP, glslmulti TOP, glsl MAT이 있다.
glsl을 가져와서 보면, 아래 text DAT이 3개 있다.
glsl_pixel이라고 되어 있는 곳에서 우리는 기본적인 pixel shader(fragment shader)를 작성할 수 있다.
glsl_info에서는 코드에 error가 없는지 확인 할 수 있는 compile창이다.
glsl_compute에서는 compute shader를 작성할 수 있다.
GLSL 구성
unifrom block
user에 의해서 전달되어지는 변수(파라미터에 정의)
parameter에서 변수 선언 및 정의.
runtime(프로그램이 실행 되는 중)에는 업데이트가 불가능 하다.
ex) uniform float exampleUniform;
interface block
입력 변수(in) 및 출력 변수(out) 정의 정의.
main block
입력 변수를 처리하고 출력 변수로 결과를 내보냄.
TDOuputSwizzle : 운영체제에 따른 올바른 출력 채널을 지원
Multi-Part Values
- vec2, vec3, vec4
- xyzw, rgba, uvst
주석
'//' or '/*'
그래픽 파이프라인
glsl TOP vs glslmulti TOP
glsl은 3개의 input값만 연결할 수 있고 glslmulti는 다수의 input 값을 연결할 수 있다.
add 구현
glsl texture함수 texture(sTD2DInputs[num], vUV.st);
특정 texture(sTD2DInputs[0])를 좌표(vUV.st)에 샘플링[0-1]
파형 종류
buffer란?
정보를 담는 공간, 메모리
Array를 사용하여 multiChannel을 singleChannel로 보내기
5개로 각각 분리되어있던 noise값들을 shuffle에서 swap channels and samples로 하나의 channel로 변경한다.
glslmulti TOP에서 Arrays창에서 uniform을 정의해준다.
코드는 아래와 같이 치면 된다. for loop 사용.
TexelFetch(sampler, index)
index에 있는 sample을 가져옴. 이미지를 데이터로 변환.
'TouchDesigner > TouchDesigner 튜토리얼' 카테고리의 다른 글
TouchDesigner GLSL 2D, 3D (0) | 2021.03.12 |
---|---|
TouchDesigner GLSL 기초 - 02 (0) | 2021.03.10 |
터치디자이너 Environment Light 사용하기 (0) | 2020.05.18 |
터치디자이너 audio specturm 시각화 (0) | 2020.05.18 |
터치디자이너 GPU particle을 사용하여 audio visualization하기 (0) | 2020.05.16 |