간편한 GPU를 위해 VVV에서 Instance Noodles 가져오기
이른바 Instance Noodles
Instance Noodles | vvvv
DirectX11의 Compute Shader를 사용하여 GPU 계산을 하고 Geometry Shader를 사용하여 기하학적 제어를 하며 일반적인 VVVVV의 노드 느낌으로 처리하는 Contributions(프로그램 라이브러리).
VVV에 기본적으로 포함된 맵, 감마, Vector 등 기본 노드의 Compute Shader 에디션이 대거 포함돼 있어 스스로 면도기를 쓰지 않아도 GPGPU를 쉽게 이용할 수 있다.
아래에 붙은 것은 컬소음으로 3만 개의 입자가 구불구불한 느낌을 주는 스티커와 그림 그리기 결과다.이런 느낌으로 비교적 간단한 패치로 간단하게 GPU 가능.
아래 패치로 말하면Brownian
,Curl
,Vector3DSplit
,Map
,Vector3DJoin
,Polar
는 모두 Instance Noodles에 포함된 노드이며, 내용은 사다의 패치만 호출하는 것이다.
설치하다.
전제로 DirectX11을 사용하기 때문에 DX11 패키지가 필요합니다.
가입하지 않은 분들은 vvv 설치 가이드 [DX11 대응] - Qita를 읽고 DX11 패키지 가져오기를 완료하십시오.
Contributions 페이지의download에서 zip 파일을 다운로드하여 압축된 폴더를 VVVV의 설치 폴더에 있는 패키지 폴더에 놓으면 사용할 수 있습니다.SpriteBuffered
를 열고 잘 돌아가면 가져오기가 완료됩니다.
가져온 후girlpower와...\packs\InstanceNoodles\girlpower\Compute\01_ComputeBasic.v4p
폴더에 어떤 패치와 도움말 패치가 준비되어 있는지 확인하세요.
알갱이를 꺼내봐.
우선 간단한 것부터.
위의 패치에서도 사용된 노드...\packs\InstanceNoodles\nodes\modules
를 사용합니다.이것은 브라운 동작을 시뮬레이션하는 노드로 지정된 수량의 브라운 운동의 좌표값을 얻을 수 있다.Brownian
의 출력은 Brownian
의SpriteBuffered
에 연결된다.Position 3D Buffer
는 입자를 나타내기 위한 차폐물로 볼 수 있다.
그리려는 입자 수는 SpriteBuffered
및 Brownian
의 Spread Count 엔트리에서 각각 설정합니다.SpriteBuffered
의 출력은 DX11 Layer이며, DX11용 렌더에 연결하면 입자가 표시됩니다.
표시할 수 있다면 입자 수를 계속 늘려 보세요.
좌표값이 GPU 쪽으로 이동해 GPU로 계산하면 입자 수를 상당히 늘려도 잘 처리하지 않아야 하기 때문이다.
손 옆에 있는 지포스 940M이면 100만 개의 입자가 나와도 48fps 정도의 느낌이 든다.
CPU-GPU 간의 값 인수인계 정보
GPU를 계산할 때 계산에 필요한 값은 기본적으로 GPU의 Structured Buffer로 옮겨야 한다.CPU → GPU의 전송 사용 SpriteBuffered
이 노드입니다.
예를 들어 Instance NoodlesDynamicBuffer
에서 생성된 10000*xyz의 값을 사용하려면 Spread를 직접 전달할 수 없기 때문에 RandomSpread
에서 GPU에 전달한 후 교부할 수 있다.
또 계산 결과도 GPU에 저장돼 있어 스프레드로 꺼내야 할 때 GPU→CPU 읽기가 필요하다.여기에 노드Attractor
를 사용합니다.
총결산
기본적인 건 이런 느낌 아닐까...?패치가 GiitHub에 놓여 있습니다.
vvvv-sandbox/InstanceNoodlesSample at master · clomie/vvvv-sandbox
이번에는 건드리지 않았지만 다른 DX11.GeomFX 계열의 Geometry가 효과를 낼 수 있는 느낌의 노드가 있는데, 그곳에는 매우 편리해 보이는 녀석들이 많다.
지금도 버퍼를 처리할 수 있는 노드가 충실하기 때문에 인스턴트 노드만 가져와도 많이 할 수 있을 것 같다.댐퍼가 없어서 좀 아파요.
VVVV로 DX11을 만들면 패키지와 함께 넣을 수 있다.
DX9에서 GPU를 하고 싶은 경우.
텍스쳐의 각 픽셀에 대한 색상 정보를 Vertex Shader와 Pixel Shader로 단순한 flat 값으로 계산합니다.
DirectX9에 GPU를 탑재하려는 사람은 아래의 기사를 참고하면 된다.
.ore,GPU
Reference
이 문제에 관하여(간편한 GPU를 위해 VVV에서 Instance Noodles 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/clomie/items/6f79ef3cdeebf77b09be
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
전제로 DirectX11을 사용하기 때문에 DX11 패키지가 필요합니다.
가입하지 않은 분들은 vvv 설치 가이드 [DX11 대응] - Qita를 읽고 DX11 패키지 가져오기를 완료하십시오.
Contributions 페이지의download에서 zip 파일을 다운로드하여 압축된 폴더를 VVVV의 설치 폴더에 있는 패키지 폴더에 놓으면 사용할 수 있습니다.
SpriteBuffered
를 열고 잘 돌아가면 가져오기가 완료됩니다.가져온 후girlpower와
...\packs\InstanceNoodles\girlpower\Compute\01_ComputeBasic.v4p
폴더에 어떤 패치와 도움말 패치가 준비되어 있는지 확인하세요.알갱이를 꺼내봐.
우선 간단한 것부터.
위의 패치에서도 사용된 노드...\packs\InstanceNoodles\nodes\modules
를 사용합니다.이것은 브라운 동작을 시뮬레이션하는 노드로 지정된 수량의 브라운 운동의 좌표값을 얻을 수 있다.Brownian
의 출력은 Brownian
의SpriteBuffered
에 연결된다.Position 3D Buffer
는 입자를 나타내기 위한 차폐물로 볼 수 있다.
그리려는 입자 수는 SpriteBuffered
및 Brownian
의 Spread Count 엔트리에서 각각 설정합니다.SpriteBuffered
의 출력은 DX11 Layer이며, DX11용 렌더에 연결하면 입자가 표시됩니다.
표시할 수 있다면 입자 수를 계속 늘려 보세요.
좌표값이 GPU 쪽으로 이동해 GPU로 계산하면 입자 수를 상당히 늘려도 잘 처리하지 않아야 하기 때문이다.
손 옆에 있는 지포스 940M이면 100만 개의 입자가 나와도 48fps 정도의 느낌이 든다.
CPU-GPU 간의 값 인수인계 정보
GPU를 계산할 때 계산에 필요한 값은 기본적으로 GPU의 Structured Buffer로 옮겨야 한다.CPU → GPU의 전송 사용 SpriteBuffered
이 노드입니다.
예를 들어 Instance NoodlesDynamicBuffer
에서 생성된 10000*xyz의 값을 사용하려면 Spread를 직접 전달할 수 없기 때문에 RandomSpread
에서 GPU에 전달한 후 교부할 수 있다.
또 계산 결과도 GPU에 저장돼 있어 스프레드로 꺼내야 할 때 GPU→CPU 읽기가 필요하다.여기에 노드Attractor
를 사용합니다.
총결산
기본적인 건 이런 느낌 아닐까...?패치가 GiitHub에 놓여 있습니다.
vvvv-sandbox/InstanceNoodlesSample at master · clomie/vvvv-sandbox
이번에는 건드리지 않았지만 다른 DX11.GeomFX 계열의 Geometry가 효과를 낼 수 있는 느낌의 노드가 있는데, 그곳에는 매우 편리해 보이는 녀석들이 많다.
지금도 버퍼를 처리할 수 있는 노드가 충실하기 때문에 인스턴트 노드만 가져와도 많이 할 수 있을 것 같다.댐퍼가 없어서 좀 아파요.
VVVV로 DX11을 만들면 패키지와 함께 넣을 수 있다.
DX9에서 GPU를 하고 싶은 경우.
텍스쳐의 각 픽셀에 대한 색상 정보를 Vertex Shader와 Pixel Shader로 단순한 flat 값으로 계산합니다.
DirectX9에 GPU를 탑재하려는 사람은 아래의 기사를 참고하면 된다.
.ore,GPU
Reference
이 문제에 관하여(간편한 GPU를 위해 VVV에서 Instance Noodles 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/clomie/items/6f79ef3cdeebf77b09be
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
GPU를 계산할 때 계산에 필요한 값은 기본적으로 GPU의 Structured Buffer로 옮겨야 한다.CPU → GPU의 전송 사용
SpriteBuffered
이 노드입니다.예를 들어 Instance Noodles
DynamicBuffer
에서 생성된 10000*xyz의 값을 사용하려면 Spread를 직접 전달할 수 없기 때문에 RandomSpread
에서 GPU에 전달한 후 교부할 수 있다.또 계산 결과도 GPU에 저장돼 있어 스프레드로 꺼내야 할 때 GPU→CPU 읽기가 필요하다.여기에 노드
Attractor
를 사용합니다.총결산
기본적인 건 이런 느낌 아닐까...?패치가 GiitHub에 놓여 있습니다.
vvvv-sandbox/InstanceNoodlesSample at master · clomie/vvvv-sandbox
이번에는 건드리지 않았지만 다른 DX11.GeomFX 계열의 Geometry가 효과를 낼 수 있는 느낌의 노드가 있는데, 그곳에는 매우 편리해 보이는 녀석들이 많다.
지금도 버퍼를 처리할 수 있는 노드가 충실하기 때문에 인스턴트 노드만 가져와도 많이 할 수 있을 것 같다.댐퍼가 없어서 좀 아파요.
VVVV로 DX11을 만들면 패키지와 함께 넣을 수 있다.
DX9에서 GPU를 하고 싶은 경우.
텍스쳐의 각 픽셀에 대한 색상 정보를 Vertex Shader와 Pixel Shader로 단순한 flat 값으로 계산합니다.
DirectX9에 GPU를 탑재하려는 사람은 아래의 기사를 참고하면 된다.
.ore,GPU
Reference
이 문제에 관하여(간편한 GPU를 위해 VVV에서 Instance Noodles 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/clomie/items/6f79ef3cdeebf77b09be
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
텍스쳐의 각 픽셀에 대한 색상 정보를 Vertex Shader와 Pixel Shader로 단순한 flat 값으로 계산합니다.
DirectX9에 GPU를 탑재하려는 사람은 아래의 기사를 참고하면 된다.
.ore,GPU
Reference
이 문제에 관하여(간편한 GPU를 위해 VVV에서 Instance Noodles 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/clomie/items/6f79ef3cdeebf77b09be텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)