지연 음영

Deferred shading
확산 컬러 G-버퍼
Z 버퍼
표면 일반 G-버퍼
최종 합성(이 이미지에 표시된 그림자를 계산하려면 그림자 매핑,[1] 그림자 필러 또는 그림자 볼륨과 같은 다른 기술을 지연음영과 함께 사용해야 합니다.)

3D 컴퓨터 그래픽 분야에서 지연 쉐이딩은 정점과 픽셀 셰이더가 렌더링된 [2]후 두 번째 렌더링 경로에서 수행되는 화면 공간 쉐이딩 기술입니다.그것은 1988년 [3]마이클 디어링에 의해 처음 제안되었다.

지연 셰이더의 첫 번째 패스에서는 쉐이딩 연산에 필요한 데이터만 수집된다.각 표면의 위치, 법선 및 재료는 "texture 렌더"를 사용하여 지오메트리 버퍼(G-buffer)에 렌더링됩니다. 후, 화소 셰이더는, 화면 공간내텍스처 버퍼의 정보를 이용해 각 화소의 직간접 조명을 산출한다.

스크린 공간 방향성 폐색[4] 그림자와 상호반사에 방향성을 부여하기 위해 지연된 쉐이딩 파이프라인의 일부로 만들 수 있다.

이점

지연 음영 처리의 주요 장점은 장면 형상이 조명에서 분리된다는 것입니다.지오메트리 패스는 1개만 필요하며 각 빛은 실제로 영향을 미치는 픽셀에 대해서만 계산됩니다.이로 인해 퍼포먼스에 [5]큰 영향을 주지 않고 장면에 많은 조명을 렌더링할 수 있습니다.이 접근법에 대해 주장하는 몇 가지 다른 이점들이 있다.이러한 장점으로는 복잡한 조명 자원의 관리 간소화, 기타 복잡한 셰이더 자원의 관리 용이성, 소프트웨어 렌더링 파이프라인의 단순화 등이 있습니다.

단점들

지연 렌더링의 주요 단점 중 하나는 알고리즘 내에서 투과성을 처리할 수 없다는 것입니다.단,[6]문제는 Z 버퍼링된 장면에서는 일반적인 문제로 씬의 투과적인 부분의 렌더링을 지연 및 정렬함으로써 처리되는 경향이 있습니다.깊이 필링은 지연 렌더링에서 순서에 구애받지 않는 투명성을 얻기 위해 사용할 수 있지만 추가 배치 및 g-버퍼 크기를 희생합니다.DirectX 10 이후를 지원하는 최신 하드웨어는 대부분의 경우 인터랙티브프레임 레이트를 유지할 수 있을 정도로 빠르게 배치를 실행할 수 있습니다.순서에 의존하지 않는 투명도가 필요한 경우(일반적으로 소비자 애플리케이션에만 해당), 지연 음영 처리도 동일한 기술을 사용하는 순방향 음영 처리만큼 효과적입니다.

또 다른 심각한 단점은 여러 재료를 사용하는 것이 어렵다는 것입니다.다양한 재료를 사용할 수 있지만 G 버퍼에 저장하기 위해서는 더 많은 데이터가 필요합니다. G 버퍼는 이미 상당히 크고 메모리 [7]대역폭을 많이 차지합니다.

또 하나의 단점은 조명 단계를 기하학적 단계에서 분리하기 때문에 하드웨어 안티에이리어싱이 더 이상 올바른 결과를 산출하지 못한다는 것이다. 이는 보간된 서브샘플이 무의미한 위치, 정규 및 접선 속성을 초래하기 때문이다.하나는 평소 기술 이러한 한계를 돌파하겠다는 최종 이미지 위에 놓고 MLAA[9][10](Killzone 3와 드래곤 에이지 II에 다른 사람들 사이에서 사용되), FXAA[11](크라이시스 2에 사용되는 FEAR 3, 듀크 Nuk 같은 하지만 최근 더 발달된 포스트 프로세스 edge-smoothing 기술 개발해 온 edges,[8],을 얼버무려 수습하다.을 적용하는 가장자리 탐지를 사용하고 있다.12포인트 전각. 영원히),SRAA,[12] DLAA[13](Star Wars에서 사용: Force Unlised II) 및 포스트 MSAA(기본 안티에이리어싱 솔루션으로 Crysis 2에서 사용됨)입니다.엣지 스무딩 기술은 아니지만 일시적 안티앨리어싱(Halo Reach Unreal Engine에 사용됨)을 통해 엣지를 보다 [14]매끄럽게 연출할 수 있습니다.DirectX 10에서는 셰이더가 멀티샘플 렌더링 타깃(및 버전 10.1의 깊이 버퍼)의 개별 샘플에 액세스할 수 있는 기능이 도입되어 이 API 사용자는 지연된 쉐이딩으로 하드웨어 안티에일리어싱에 액세스할 수 있습니다.또한 이러한 기능을 통해 안티에이리어스 에지에 HDR 휘도 매핑을 올바르게 적용할 수 있습니다.이 경우 이전 버전의 API에서는 안티에이리어스의 이점이 상실되었을 수 있습니다.

지연 조명

지연 조명(라이트 프리패스라고도 함)은 지연 [15]음영을 수정한 것입니다.이 기법에서는 지연된 음영에서 2개가 아닌 3개의 패스를 사용합니다.씬 지오메트리의 첫 번째 통과에서는 노멀과 경면 확산률만 컬러 버퍼에 기록됩니다.그런 다음 화면 공간인 "지연된" 패스는 확산 및 경사진 조명 데이터를 별도로 축적하므로, 픽셀당 음영으로 최종 영상을 출력하려면 씬 지오메트리에 마지막 패스를 수행해야 합니다.지연조명의 명백한 장점은 G-Buffer의 크기를 크게 줄인다는 것입니다.분명한 비용은 씬 지오메트리를 한 번이 아니라 두 번 렌더링해야 한다는 것입니다.추가 비용은 지연 조명의 지연 패스가 확산 및 경도 방사 조도를 별도로 출력해야 하는 반면 지연 쉐이딩의 지연 패스는 하나의 결합된 방사 조도 값만 출력하면 된다는 것이다.

G-buffer의 크기 감소로 인해 이 기술은 지연된 음영 처리의 한 가지 심각한 단점인 다중 재료를 부분적으로 극복할 수 있습니다.해결할 수 있는 또 다른 문제는 MSAA입니다.지연조명은 DirectX 9 하드웨어의 [citation needed]MSAA와 함께 사용할 수 있습니다.

상용 게임에서의 지연 조명

다이나믹 라이트를 대량으로 사용하고, 필요한 쉐이더 명령의 복잡함을 경감하는 컨트롤이 가능하기 때문에, 비디오 게임에서는 이 기술의 사용이 증가하고 있습니다.지연 조명을 사용하는 게임의 예는 다음과 같습니다.

상용 게임에서의 지연 음영 처리

지연 조명과 비교하여 이 기술은 특히 그래픽 메모리 크기와 대역폭이 제한되고 병목 현상이 자주 발생하는 7세대 콘솔에서는 메모리 크기와 대역폭 요건이 높기 때문에 그다지 인기가[citation needed] 없습니다.

지연 쉐이딩 또는 렌더링 기술을 사용하는 게임 엔진

역사

지연 쉐이딩의 아이디어는 마이클 디어링과 그의 동료들이 1988년에 발표한 "삼각형 프로세서와 노멀 벡터 셰이더: 고성능 그래픽을 위한 VLSI 시스템"이라는 논문에서[3] 처음 소개되었습니다.이 종이에서는 '지연'이라는 단어를 사용하지 않지만 주요 개념이 도입되어 있습니다.각 픽셀은 깊이 분해능 후에 한 번만 음영 처리됩니다.현재 우리가 알고 있는 지연 쉐이딩은 G 버퍼를 사용하여 1990년에 [55]사이토와 다카하시가 논문에서 도입했지만, 그들도 지연이라는 단어를 사용하지 않는다.최초의 지연 음영 비디오 게임은 2001년[56]출시된 Xbox 출시 타이틀인 슈렉이었다.2004년경에는 상용 그래픽 하드웨어에 대한 구현이 [57]등장하기 시작했습니다.이 기술은 나중에 비디오 게임과 같은 애플리케이션에서 인기를 끌었고, 마침내 2008년부터 [58]2010년까지 주류가 되었다.

레퍼런스

  1. ^ Hargreaves, Shawn; Harris, Mark (2004). "6800 Leagues Under the Sea: Deferred Shading" (PDF). Nvidia. Archived (PDF) from the original on November 22, 2009. Retrieved January 6, 2021.
  2. ^ "Forward Rendering vs. Deferred Rendering".
  3. ^ a b Deering, Michael; Stephanie Winner; Bic Schediwy; Chris Duffy; Neil Hunt (1988). "The triangle processor and normal vector shader: a VLSI system for high performance graphics". ACM SIGGRAPH Computer Graphics. 22 (4): 21–30. doi:10.1145/378456.378468.
  4. ^ O'Donnell, Yuriy (July 18, 2011). "Deferred Screen Space Directional Occlusion". kayru.org. Archived from the original on October 22, 2012.
  5. ^ Kayi, Celal Cansin. "Deferred Rendering in XNA 4" (PDF). Linnaeus University. Archived (PDF) from the original on August 13, 2013. Retrieved January 6, 2021.
  6. ^ "SDK 9.51 – Featured Code Samples". Nvidia. January 17, 2007. Archived from the original on March 8, 2005. Retrieved March 28, 2007.
  7. ^ Engel, Wolfgang (March 16, 2008). "Light Pre-Pass Renderer". Diary of a Graphics Programmer. Archived from the original on April 7, 2008. Retrieved January 6, 2021.
  8. ^ "Deferred shading tutorial" (PDF). Pontifical Catholic University of Rio de Janeiro. Archived from the original (PDF) on March 6, 2009. Retrieved February 14, 2008.
  9. ^ "MLAA: Efficiently Moving Antialiasing from the GPU to the CPU" (PDF). Intel. Retrieved December 2, 2018.
  10. ^ "Morphological antialiasing and topological reconstruction" (PDF). Gustave Eiffel University. Archived (PDF) from the original on April 3, 2012. Retrieved January 6, 2021.
  11. ^ "Archived copy" (PDF). Archived from the original (PDF) on November 25, 2011. Retrieved November 7, 2011.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  12. ^ Chajdas, Matthäus G.; McGuire, Morgan; Luebke, David (February 1, 2011). "Subpixel Reconstruction Antialiasing". Nvidia. Archived from the original on January 27, 2011. Retrieved January 6, 2021.
  13. ^ Andreev, Dmitry (2011). "Anti-Aliasing from a Different Perspective". and.intercon.ru. Archived from the original on April 4, 2011. Retrieved January 6, 2021.
  14. ^ Andreev, Dmitry (March 4, 2011). "Anti-Aliasing from a Different Perspective (GDC 2011 Extended Slides)". and.intercon.ru. Archived from the original on April 5, 2011. Retrieved January 6, 2021.
  15. ^ "Real-Time Rendering · Deferred lighting approaches". realtimerendering.com.
  16. ^ "Assassin's Creed III: The Redesigned Anvil Engine". www.GameInformer.com.
  17. ^ "BioShock Infinite development is PS3 focused and uses Uncharted 2 tech". blorge.com. Archived from the original on October 3, 2011.
  18. ^ "Tech Interview: Crackdown 2". Eurogamer.net. June 26, 2010.
  19. ^ guest11b095. "A Bit More Deferred Cry Engine3". slideshare.net.
  20. ^ "Dead Space by Electronic Arts". NVIDIA. Retrieved February 14, 2008.
  21. ^ "Face-Off: Dead Space 2". Eurogamer. Retrieved February 1, 2010.
  22. ^ "Face-Off: Dead Space 3". Eurogamer. Retrieved February 18, 2013.
  23. ^ "Google Translate". google.com.
  24. ^ "GregaMan, Manage Blog". capcom-unity.com.
  25. ^ "Normals". Imgur.
  26. ^ "Tech Interview: Halo: Reach". Eurogamer.net. December 11, 2010.
  27. ^ a b "Tech Analysis: Metal Gear Solid 5's FOX Engine". Eurogamer.net. April 5, 2013.
  28. ^ "The Making of Shift 2 Unleashed Article • Page 2 • Eurogamer.net". Eurogamer.net. May 14, 2011.
  29. ^ "Archived copy" (PDF). Archived from the original (PDF) on September 15, 2011. Retrieved July 12, 2011.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  30. ^ "StarCraft II Effects & techniques" (PDF). AMD. Retrieved July 9, 2012.
  31. ^ "CGSociety Maintenance". cgsociety.org. Archived from the original on April 2, 2015. Retrieved July 12, 2011.
  32. ^ "Deferred Rendering « PlatinumGames Inc". platinumgames.com. Archived from the original on November 27, 2010.
  33. ^ "Ghost of Tsushima Analysis: A PS4 Graphics Powerhouse". gamingbolt.com.
  34. ^ Silard Šimon. "Frictional Games interview". playsomnia.com.
  35. ^ DICE. "SPU-Based Deferred Shading in BATTLEFIELD 3 for Playstation 3". slideshare.net.
  36. ^ "Valve Developer Wiki - Dota 2". Retrieved April 10, 2012.
  37. ^ "Archived copy" (PDF). Archived from the original (PDF) on July 11, 2011. Retrieved July 12, 2011.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  38. ^ 광부 전쟁 2081
  39. ^ "Tech Interview: Metro 2033 Interview • Page 2 • Eurogamer.net". Eurogamer.net. February 25, 2010.
  40. ^ "History - Electric Sheep Games". Retrieved April 14, 2011.
  41. ^ Shishkovtsov, Oles (March 7, 2005). "GPU Gems 2: Chapter 9. Deferred Shading in S.T.A.L.K.E.R". Nvidia. Retrieved February 2, 2011.
  42. ^ "Deferred shading in Tabula Rasa". NVIDIA. Archived from the original on February 3, 2009. Retrieved February 14, 2008.
  43. ^ "Steam Users' Forums - View Single Post - Taking the Physx load off the CPU..." steampowered.com.
  44. ^ "Steam Users' Forums - View Single Post - Trine 2 rendering information - anti-aliasing, overheating, stereo, input lag, etc". steampowered.com.
  45. ^ "CryENGINE 3 Specifications". Crytek GmbH. Archived from the original on March 27, 2009. Retrieved March 27, 2009.
  46. ^ "Lighting you up in Battlefield 3". DICE. March 3, 2011. Archived from the original on August 25, 2011. Retrieved September 15, 2011.
  47. ^ "GameStart – Feature List". Archived from the original on December 2, 2011.
  48. ^ "Infinity Development Journal – Deferred Lighting". I-Novae Studios. April 3, 2009. Archived from the original on January 26, 2013. Retrieved January 26, 2011.
  49. ^ "BUILD: Deferred rendering". February 26, 2009. Retrieved April 8, 2015.
  50. ^ "Torque 3D Development - Advanced Lighting (deferred lighting hybrid)". March 3, 2009. Retrieved July 2, 2015.
  51. ^ Vosburgh, Ethan (September 9, 2010). "Unity 3 Feature Preview – Deferred Rendering". Unity Technologies. Retrieved January 26, 2011.
  52. ^ "Unreal Engine 4 - Rendering Overview". Epic Games. Retrieved June 6, 2015.
  53. ^ "Vision Engine 8.2 Brings 3D Technologies Cross-Platform". October 10, 2011. Archived from the original on November 16, 2012. Retrieved April 8, 2015.
  54. ^ "The Graphics Technology of Fallout 4". Bethesda Softworks. November 4, 2015. Retrieved April 24, 2020.
  55. ^ Saito, Takafumi; Tokiichiro Takahashi (1990). "Comprehensible rendering of 3-D shapes". ACM SIGGRAPH Computer Graphics. 24 (4): 197–206. doi:10.1145/97880.97901.
  56. ^ Geldreich, Rich. "GDC 2004 Presentation on Deferred Lighting and Shading". Archived from the original on March 11, 2014. Retrieved August 24, 2013.
  57. ^ "Deferred Shading" (PDF). NVIDIA. Retrieved March 28, 2007.
  58. ^ Klint, Josh. "Deferred Rendering in Leadwerks Engine" (PDF). Leadwerks. Archived from the original (PDF) on December 9, 2008. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)