그래픽 디자인

파티클 갤럭시 셰이더 디자인

어두운 WebGL2 캔버스 위에서 세 개의 희미한 나선 팔이 고정 타이포그래피 뒤에서 변화하며, 소스에 정의된 포인트·드로 수와 로컬 FPS 표시가 함께 나타납니다.

OpenDesign디자인 및 제작
공식
자동으로 애니메이션되는 50,000개 포인트의 WebGL2 갤럭시 구성3 화면
거의 검은 캔버스 위에 희미한 초록색 나선형 파티클이 있고, 왼쪽 아래에는 굵은 흰색 제목, 오른쪽 위에는 작은 카운터가 있습니다.
파티클 갤럭시 구성스크린샷 1 중 3

파티클 갤럭시 활용 사례

  • WebGL 실험GPU 기반 파티클 구성과 셰이더 중심 모션을 살펴봅니다.
  • 애니메이션 비주얼 아이덴티티변화하는 하나의 형태를 중심으로 분위기 있는 히어로 장면을 구성합니다.
  • 크리에이티브 코딩 프레젠테이션기술적 제약과 절제된 에디토리얼 타이포그래피를 함께 보여줍니다.

프로시저럴 갤럭시 하이라이트

  • 나선형 파티클 필드희미한 초록색과 파란색 포인트가 넓은 나선 팔 세 개를 이룹니다.
  • 렌더링 정보 블록포인트, 드로 콜, FPS가 우측 상단에 촘촘하게 모여 있습니다.
  • 에디토리얼 타이포그래피큰 문장이 작품 아래에서 구도의 중심을 잡습니다.
  • 단일 캔버스 집중보이는 컨트롤 없이 비주얼 필드만으로 경험을 이끕니다.

세 개의 나선 팔, 한 번의 포인트 드로

Particle Galaxy는 어둡고 거의 비어 있는 캔버스와 희미한 파티클의 넓은 필드를 중심으로 한 OpenDesign 공식 예제입니다. 제목 “Fifty thousand points, one draw call.”은 기술적 전제를 인터페이스 뒤에 숨기지 않고 시각 아이덴티티의 일부로 삼습니다.

파티클 필드와 좌측 하단에 고정된 제목은 하나의 뷰포트를 공유하며, 헤드라인이 스크롤 아래의 별도 섹션으로 나뉘지 않습니다. 희미한 초록색, 파란색, 옅은 색 포인트가 세 팔 사이에 넓은 어두운 틈을 남깁니다. 시각적 트레이드오프는 분명합니다. 절제된 필드는 밝은 글자 옆에서 조용하게 느껴지지만, 대비가 낮아 전체 크기 이미지를 가까이 봐야 합니다.

Particle Galaxy의 어두운 캔버스, 우측 상단 통계, 나선형 파티클 필드, 큰 설명 제목.
Particle Galaxy의 어두운 캔버스, 우측 상단 통계, 나선형 파티클 필드, 큰 설명 제목.

이 디자인이 어울리는 곳

이 디자인은 크리에이티브 코딩 랜딩 장면, 인터랙티브 기술 쇼케이스, 아트 디렉션이 들어간 WebGL 스터디에 적합합니다. 비주얼 자체가 주제이고 보조 카피를 짧게 유지할 수 있을 때 가치가 가장 큽니다.

고정된 컨트롤이 없어 변화하는 파티클 필드에 시선이 집중됩니다. 하지만 그 절제는 발견 가능성을 제한하기도 합니다. 제공된 마크업에는 작성된 컨트롤이 없으므로, 이 디자인은 명시적인 인터랙션 단서 대신 모션, 타이포그래피, 간결한 통계 블록으로 소통합니다.

크리에이티브 코딩 쇼케이스

큰 파티클 필드를 사용해 기법을 설명하기 전에 렌더링 실험을 소개합니다.

WebGL 히어로 장면

어두운 캔버스를 기술 중심 디지털 경험의 시각적 오프닝으로 응용합니다.

모션 우선 에디토리얼

천천히 변하는 형태가 시선을 이끄는 동안 간결한 카피가 맥락을 잡아 줍니다.

구성이 작동하는 방식

우측 상단 블록에는 50,000 POINTS, 1 DRAW CALL, 그리고 변하는 FPS 추정치가 표시됩니다. 버텍스 셰이더는 gl_VertexID에서 포인트 위치를 도출해 세 팔에 분배하고, 각속도를 달리해 안쪽 포인트가 더 빠르게 회전하게 합니다. 고정된 기울기와 천천히 변하는 전체 회전이 원반의 원근감을 만듭니다. 부드러운 포인트 스프라이트와 가산 혼합이 초록색, 시안색, 옅은 색 파티클에 빛나는 느낌을 줍니다.

통계는 큰 흰색 숫자와 자간이 넓은 작은 라벨을 쓰는 반면, 작품은 훨씬 대비가 낮은 초록색, 파란색, 옅은 색 파티클을 씁니다. 이 분리 덕분에 메타데이터는 갤럭시와 경쟁하지 않으면서도 쉽게 훑어볼 수 있습니다. 동시에 지각상의 트레이드오프도 생깁니다. 성능 블록은 즉시 읽히지만, 파티클 팔은 더 오래 보아야 하고 적절한 디스플레이 대비가 필요합니다.

캡처에는 서로 다른 FPS 값이 표시되지만 포인트 수와 드로 콜 라벨은 동일합니다. 이 차이로 인해 FPS 필드는 기기 전반의 안정적인 성능 주장이 아니라 변하는 로컬 표시 상태로 읽힙니다.

기술적 전제

헤드라인은 파티클 수와 드로 콜 개념을 관련 없는 메타데이터로 두지 않고 비주얼과 연결합니다.

시각적 밀도

넓은 나선 팔은 검은 배경에서 성기게 유지되어 제목과 통계 주변의 여백을 지켜 줍니다.

상태 변화

캡처는 50,000개 포인트와 한 번의 드로 콜을 유지하면서 서로 다른 FPS 값을 보여 주어, 고정 라벨과 변하는 표시 상태를 구분합니다.

기능의 경계

WebGL2 소스는 N = 50,000을 정의하고 렌더링되는 프레임마다 POINTS로 gl.drawArrays를 한 번 호출합니다. 파티클 위치는 CPU 위치 버퍼를 갱신하지 않고 버텍스 셰이더에서 계산됩니다. 설정, 타이밍 유니폼, 크기 조정, 드로잉은 여전히 메인 스레드가 처리합니다. 포인터, 키보드, 카메라 조작, 매개변수 컨트롤은 없습니다. 이는 갤럭시처럼 보이는 프로시저럴 비주얼이며 과학적인 중력 시뮬레이션이 아닙니다.

소스 주석은 60fps를 주장하지만, 개별 정지 캡처와 로컬 FPS 카운터만으로는 성능이 보장된다고 할 수 없습니다. 또한 프로덕션 배포, 연결된 서비스, 과거의 생성 과정도 입증하지 않습니다. 포인트 수와 드로 콜 수는 코드로 확인된 사실이고, 프레임 레이트 수치는 환경에 따라 달라지는 관찰값입니다.

카운터가 설명하는 것

포인트 수 표시는 설정된 N 값에서 나오며, 드로 콜 라벨은 렌더 루프의 단일 POINTS 드로와 일치합니다. FPS 값은 약 반 초 구간에 걸친 requestAnimationFrame 주기를 추정한 것입니다. 이 의미들을 분리해 두면 유용한 기술적 맥락을 유지하면서도 작품을 근거 없는 벤치마크로 만들지 않습니다.

OpenDesign에서 파티클 갤럭시 셰이더 디자인 만드는 방법

  1. OpenDesign 다운로드 및 설치

    데스크톱 앱을 다운로드하여 설치하고 설정을 완료하세요. 디자인을 위한 프로젝트를 만드세요.

    OpenDesign 다운로드
  2. 캔버스 구도 정하기

    어두운 전체 캔버스, 우측 상단의 간결한 통계 그룹, 좌측 하단에 고정된 타이포그래피로 시작합니다. 초록색 주제 라벨, 큰 문장, 설명 문단은 작품 아래에 별도 섹션을 추가하지 말고 같은 뷰포트 안에 두세요.

  3. 파티클 필드 형태 잡기

    버텍스 ID에서 도출한 포인트로 희미한 나선 팔 세 개를 만들고, 중심 가까이에서는 각속도를 더 빠르게 하며 부드러운 가산 혼합 포인트 스프라이트를 사용합니다. 어두운 틈과 고정 타이포그래피를 그대로 유지하세요. 이 갤럭시는 물리적으로 검증된 천문 모델이 아니라 시각적 패턴으로 다룹니다.

  4. 라벨과 기능 범위 점검하기

    Points, Draw Call, FPS를 시각적으로 구분하고, 변하는 FPS 값은 보편적인 벤치마크 주장이 아니라 로컬 표시 상태로 제시해야 합니다. 움직임과 크기 조정 동작이 렌더링된 캔버스 안에서만 이루어지는지 확인하세요.

    제안된 프롬프트

    gl_VertexID로 위치를 정한 50,000개 포인트를 프레임당 한 번의 POINTS 드로로 렌더링하는, 자동으로 애니메이션되는 WebGL2 파티클 갤럭시를 만드세요. 포인트는 넓은 나선 팔 세 개로 배치하고, 중심에 가까울수록 각속도가 빨라지며, 고정된 기울기와 느린 전체 회전을 적용합니다. 부드러운 초록색과 시안색 가산 혼합 포인트 스프라이트, 좌측 하단에 고정된 “Fifty thousand points, one draw call.” 타이포그래피, 그리고 우측 상단에 소스에서 정의한 포인트·드로 라벨과 로컬 FPS 추정치를 사용하세요. 사용자 컨트롤, 물리적 은하 시뮬레이션, 연결된 서비스, 저장소, 보편적인 성능 보장은 추가하지 마세요.

  5. 내보내기 및 공유 링크 받기

    완성된 디자인을 내보낸 다음, OpenDesign의 공유 기능을 사용하여 공유 링크를 받으세요. 별도의 브라우저 창에서 링크를 열고 의도한 버전과 해당 자산이 전송 전에 이용 가능한지 확인하세요.