DOI QR코드

DOI QR Code

GPU-based dynamic point light particles rendering using 3D textures for real-time rendering

실시간 렌더링 환경에서의 3D 텍스처를 활용한 GPU 기반 동적 포인트 라이트 파티클 구현

  • Received : 2020.06.21
  • Accepted : 2020.06.25
  • Published : 2020.07.01

Abstract

This study proposes a real-time rendering algorithm for lighting when each of more than 100,000 moving particles exists as a light source. Two 3D textures are used to dynamically determine the range of influence of each light, and the first 3D texture has light color and the second 3D texture has light direction information. Each frame goes through two steps. The first step is to update the particle information required for 3D texture initialization and rendering based on the Compute shader. Convert the particle position to the sampling coordinates of the 3D texture, and based on this coordinate, update the colour sum of the particle lights affecting the corresponding voxels for the first 3D texture and the sum of the directional vectors from the corresponding voxels to the particle lights for the second 3D texture. The second stage operates on a general rendering pipeline. Based on the polygon world position to be rendered first, the exact sampling coordinates of the 3D texture updated in the first step are calculated. Since the sample coordinates correspond 1:1 to the size of the 3D texture and the size of the game world, use the world coordinates of the pixel as the sampling coordinates. Lighting process is carried out based on the color of the sampled pixel and the direction vector of the light. The 3D texture corresponds 1:1 to the actual game world and assumes a minimum unit of 1m, but in areas smaller than 1m, problems such as stairs caused by resolution restrictions occur. Interpolation and super sampling are performed during texture sampling to improve these problems. Measurements of the time taken to render a frame showed that 146 ms was spent on the forward lighting pipeline, 46 ms on the defered lighting pipeline when the number of particles was 262144, and 214 ms on the forward lighting pipeline and 104 ms on the deferred lighting pipeline when the number of particle lights was 1,024766.

본 연구는 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 가 소요되었다.

Keywords

References

  1. F. Lekien and J. Marsden , "Tricubic interpolation in three dimensions", international journal for numerical methodsin engineering, 2005
  2. Ola Olsson, Markus Billeter & Ulf Assarsson., "Clustered Deferred and Forward Shading", HPG 2012, 2012
  3. Ola Olsson , "Tiled and Clustered Forward Shading". , GPU Pro 4, 2013
  4. Ola Olsson and Ulf Assarsson ,"Tiled Shading - Preprint", Chalmers University of Technology, JGT 2011, 2011
  5. Yuriy O'Donnell , "Tiled Light Trees", I3D '17: Proceedings of the 21st ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games, 2017
  6. Cem Yuksel, "Lighting grid hierarchy for self-illuminating explosions" , ACM Transactions on Graphics, july 2017
  7. Cem Yuksel "Real-Time Rendering with Lighting Grid Hierarchy", Proceedings of the ACM on Computer Graphics and Interactive Techniques, june 2019,
  8. Wolfgang Engel. "The light pre-pass renderer: Renderer design for efficient support of multiple lights". SIGGRAPH Course: Advances in realtime rendering in 3D graphics and games, 2009.
  9. Scott Kircher and Alan Lawrance. "Inferred lighting: fast dynamic lighting and shadows for opaque and translucent objects. In Sandbox" '09:Proceedings of the 2009 ACM SIGGRAPH Symposium on Video Games, pages 39-45, New York, NY, USA, 2009.
  10. Andrew Lauritzen. "Deferred rendering for current and future rendering pipelines". SIGGRAPH Course: Beyond Programmable Shading, 2010
  11. Matt Swoboda. "Deferred lighting and post processing on playstation 3". Game Developer Conference, 2009.
  12. Abdul Bezrati (Insomniac Games), "REAL-TIME LIGHTING VIA LIGHT LINKED LIST", SIGGRAPH Course : Advances in Real-Time Rendering in Games, 2014
  13. Emil Persson (Avalanche), Ola Olsson (Chalmers University of Technology), "PRACTICAL CLUSTERED DEFERRED AND FORWARD SHADING", SIGGRAPH Course : Advances in Real-Time Rendering in Games, 2013