• 제목/요약/키워드: 컴퓨트 셰이더

검색결과 2건 처리시간 0.018초

OpenGL과 Unity간의 GPU를 이용한 Particle Simulation의 성능 비교 (Performance Comparison of Particle Simulation Using GPU Between OpenGL and Unity)

  • 김민상;성낙준;최유주;홍민
    • 정보처리학회논문지:소프트웨어 및 데이터공학
    • /
    • 제6권10호
    • /
    • pp.479-486
    • /
    • 2017
  • 최근 GPGPU를 이용하여 저하된 컴퓨터 성능 향상폭을 높일 수 있게 되었고, 이로 인하여 높은 연산을 요구로 하는 물리 기반의 실시간 시뮬레이션을 PC에서 구동할 수 있게 되었다. 물리 시뮬레이션에서 적용되는 물리 계산은 병렬 처리로 수행되어질 수 있으며, 최근 OpenGL 4.3 및 Unity4.0에서 지원되는 Compute shader를 통한 병렬 연산을 이용하면 효율적으로 구동할 수 있다. 본 논문에서는 다양한 플랫폼을 지원하는 디지털 콘텐츠 제작 툴인 Unity와 다양한 플랫폼에서 구동되어지는 OpenGL에서의 실시간 물리 시뮬레이션에서의 성능을 측정 및 비교한다. 본 논문에서 particle 시뮬레이션의 실험 결과 Unity를 이용한 particle 시뮬레이션이 OpenGL을 이용한 particle 시뮬레이션에 비해 최대 136.04% 빠른 성능을 보인다. 이를 통하여 추후 멀티 플랫폼을 지원하는 디지털 콘텐츠를 제작함에 있어 더 나은 개발 도구를 선정할 수 있을 것으로 기대된다.

실시간 렌더링 환경에서의 3D 텍스처를 활용한 GPU 기반 동적 포인트 라이트 파티클 구현 (GPU-based dynamic point light particles rendering using 3D textures for real-time rendering)

  • 김병진;이택희
    • 한국컴퓨터그래픽스학회논문지
    • /
    • 제26권3호
    • /
    • pp.123-131
    • /
    • 2020
  • 본 연구는 10만 개 이상의 움직이는 파티클 각각이 발광원으로서 존재할 때 라이팅을 위한 실시간 렌더링 알고리즘을 제안한다. 각 라이트의 영향 범위를 동적으로 파악하기 위해 2개의 3D 텍스처를 사용하며 첫 번째 텍스처는 라이트 색상 두 번째 텍스처는 라이트 방향 정보를 가진다. 각 프레임마다 두 단계를 거친다. 첫 단계는 Compute shader 기반으로 3D 텍스처 초기화 및 렌더링에 필요한 파티클 정보를 갱신하는 단계이다. 이때 파티클 위치를 3D 텍스처의 샘플링 좌표로 변환 후 이 좌표를 기반으로 첫 번째 3D 텍스처엔 해당 복셀에 대해 영향을 미치는 파티클 라이트들의 색상 총합을, 그리고 두 번째 3D 텍스처에 해당 복셀에서 파티클 라이트들로 향하는 방향벡터들의 총합을 갱신한다. 두 번째 단계는 일반 렌더링 파이프라인을 기반으로 동작한다. 먼저 렌더링 될 폴리곤 위치를 기반으로 첫 번째 단계에서 갱신된 3D 텍스처의 정확한 샘플링 좌표를 계산한다. 샘플링 좌표는 3D 텍스쳐의 크기와 게임 월드의 크기가 1:1로 대응하므로 픽셀의 월드좌표를 그대로 샘플링 좌표로 사용한다. 샘플링한 픽셀의 색상과 라이트의 방향벡터를 기반으로 라이팅 처리를 수행한다. 3D 텍스처가 실제 게임 월드와 1:1로 대응하며 최소 단위를 1m로 가정하는데 1m보다 작은 영역의 경우 해상도 제한에 의한 계단 현상 등의 문제가 발생한다. 이러한 문제를 개선하기 위한 텍스처 샘플링 시 보간 및 슈퍼 샘플링을 수행한다. 한 프레임을 렌더링하는데 소요된 시간을 측정한 결과 파티클이 라이트의 개수가 262144개일 때 Forward Lighting 파이프라인에서 146ms, deferred Lighting 파이프라인에서 46ms 가 소요되었으며, 파티클 라이트의 개수가 1024576개일 때 Forward Lighting 파이프라인에서 214ms, Deferred Lighting 파이프라인에서 104ms 가 소요되었다.