1 개요
NVIDIA가 2013년에 공개했으며, 300명의 엔지니어와 라이브러리, 개발 툴을 통칭하는 말이다.
16년 1월 기준 15만 명 이상의 개발자가 등록됐다고 한다. 다만 일각에서는 엔당 독점을 강화할 뿐이라는 식의 부정적 인식도 있다.
2 구성
2.1 VisualFX
2.1.1 FlameWorks
화재, 연기, 폭발 효과를 생성하는 시스템이다. GRID 기반 유체 시뮬레이션과 볼륨 렌더링 엔진을 결합한 제품.
2.1.2 FaceWorks
높은 품질의 피부와 눈의 음영을 구현하기 위한 라이브러리이다. 주요 특징으로는 고품질 피부 그림자, 깊은 산란, 눈 반사가 있다.
2.1.3 HairWorks
이 문단은 헤어웍스(으)로 검색해도 들어올 수 있습니다.
모피, 모발의 물리효과를 실시간으로 시뮬레이팅하고 렌더링하는 기술이다. 게임에 따라 게임 내 설정된 풍향에도 영향을 받는다. HairWorks 1.1에서는 50만 가닥까지 지원한다. 캐릭터 모발 등에서는 아직 최적화가 부족해서 부자연스러운 모습을 보여주지만 몬스터 등의 털은 충분히 자연스러운 모습으로 만들 수 있다. 시네마틱 트레일러들에서 보여주는 수준까지는 안 된다는 것. 덕분인지 이 옵션을 켜면 제대로 돌릴 수 있는 그래픽카드가 몇 되지 않는다. 위쳐 3 기준으로 상옵+헤어웍스에 30 fps 이상으로 구동하려면 못해도 GTX 970 정도는 있어야 한다.
더 위쳐 3나 파 크라이 4, 몬스터 헌터 온라인 BM 등에 들어갔다.
2.1.4 FleX
2.1.5 Turf Effects
2.1.6 WaveWorks
2.1.7 VXGI
2.1.8 Turbulence
2.1.9 ShadowWorks
기존의 그림자 | PCSS 적용 |
Percentage Closer Soft Shadows
실제 그림자를 보면, 물체가 광원과 떨어진 거리에 따라 그림자의 선명도가 달라지는걸 볼 수 있는데, 그 동안의 그림자 처리 기술은 그런걸 구현하지 못하였다. 하지만 ShadowWorks에 의해 개발된 PCSS는 그림자를 생성하는 오브젝트의 거리와 크기를 계산하여 그림자의 선명도를 조절한다.
위의 이미지를 보면, PCSS가 적용된 이미지의 상단에 있는 그림자는 하단의 그림자 보다 비교적 선명한 것을 알 수 있다.
2.1.10 Soft Shadows
실제 그림자의 물리 작용을 모방해서 표면 종류와 거리에 따른 그림자 선명도를 시뮬레이팅한다. 참고 GTA V에서 찍은 비교 사진이다. 야자수 그림자에서 효과가 두드러지는 것을 볼 수 있다.
2.1.10.1 HBAO+
광원이 고정되어 있는 SSAO와 달리 실제 광원에 따른 AO 시뮬레이션을 한다.
2.1.11 PostWorks
포스트 프로세싱, 즉 후처리 효과들로 구성된 패키지.[1]
2.1.11.1 Depth of Field
카메라 초점을 모방해 초점 잡힌 곳은 선명하게 하고 나머지는 흐리게 하는 효과. 컷씬 등에서 시네마틱한 분위기 연출을 위해 필수적인 이펙트 중 하나다. 사진에서의 아웃포커싱과 비슷한 효과다.
2.1.11.2 TXAA
크롤링 및 플리커링을 줄여주는 영화 스타일의 안티에일리어싱. 자세한 내용은 안티 에일리어싱 항목 참조.
2.1.12 GI Works
2.2 Physics
2.2.1 PhysX
NVIDIA에서 제공하는 물리 엔진. 피젝스(피즈-엑스, Fiz-ecks)라고 읽는다. 원래 에이지아의 소유였으나 2008년에 NVIDIA가 에이지아를 인수하여 NVIDIA의 소유가 되었다. 그래픽카드의 GPU를 이용하여 3D 가속을 하는 기술이라고 요약할 수 있다.
(에이지아 시절엔 PPU라고 전용 칩을 단 전용 카드를 따로 썼다.) 이로 인해 세밀하고 사실적인 물리 효과를 표현할 수 있게 됐다.
피직스의 최소 사양은 최소 32 쿠다 코어 및 256MB의 전용 그래픽 메모리가 탑재된 GeForce 8 시리즈 또는 이후의 모델이어야 하며 일반적으로, PhysX 전용 GPU가 장착되어 있지 않다면 512MB 그래픽 메모리가 권장된다. 근데 그 정도 가지고는 제대로 못 돌린다[2]
대표적으로 Unreal Engine 3, Unity 3D, Gamebryo, Vision, Instinct, Trinigy, Diesel, Hero, BigWorld 등이 피직스를 지원하는 게임 엔진이며 EA, THQ, 2K Games, SEGA 등의 게임 개발사들이 피직스 기술을 활용하고 있다.
앨리스 매드니스 리턴즈, 미러스 엣지, 배트맨: 아캄 시티, 배트맨: 아캄 오리진, 보더랜드 2, 와치 독스, 염소 시뮬레이터(...)에서 대표적으로 적용되었다.
배트맨: 아캄 오리진에 적용된 피직스 기술 영상. 화려한 물리 효과가 돋보인다.
AMD에서는 개방된 기술이 아닌 이러한 배타적 표준 기술은 망할 수 밖에 없다고 NVIDIA를 비판했으며 존 카멕도 "이건 아무 쓸모 없는 짓"이라고 깐 적이 있다. # 부서지는 유리창의 표현이나 바람에 휘날리는 옷자락 같이 사실적인 물리적 표현이 게임 플레이라는 면에서 볼 때 별로 중요치 않은 건 사실이다. 일례로 Tressfx는 DirectCompute 기반이므로 AMD나 NVIDIA의 GPU 모두 적용 가능한 반면, PhysX는 NVIDIA GPU만 가능해서 사용자가 어떤 VGA를 쓰냐에 따라 게임의 사양이 달라지게 된다.
사실 AMD는 더 이전부터 해당 기술을 밀고 있었고 하복 엔진과 협력하고 있었지만, 하복은 GPU 가속에 관심없는 인텔이 인수해버리고, 같이 하복에 물먹은 NVIDIA는 에이지아 인수로 먼저 결과물을 내놓는 바람에(...) 이 포도는 신맛이 날께 틀리없어, 왜나면 내가 물먹었으니깐! 이후 오픈 소스인 뷸렛 엔진과 협력하여 성과[3]를 내놓기도 했으나, 원래 목적인 PC 게임에서의 PhysX의 대항마에서는 지원 게임이 거의 없다. 안습 PhysX와 관련된 사건들을 쭉 정리한 글이 있으니 관심있는 위키러는 읽어보자.
여담으로 윈도우 7부터 복수의 VGA를 별도로 사용이 가능해짐에 따라 라데온을 메인, 지포스를 피직스 가속 장치로만 사용하는 편법, 일명 '하이브리드 피직스'라는 것이 생겨났다. 다만 그냥 장치를 설치만 해서는 피직스 사용이 불가능하고[4], 별도의 피직스 크랙을 설치해야 하는 등 과정이 다소 복잡하다는 게 흠. 엔비디아도 이걸 알고 있는지, 갈수록 설정 방법이 복잡해지고 있고 최신 드라이버로 길수록 수정이 오래 걸리고 있다. 그래도 CUDA 사용이 가능한 지포스(=8xxx 이상급)만 있다면 피직스 지원 게임에서 라데온 단일 카드보다 프레임이 넘사벽으로 나오기도 한다.[5][6]
분명 나쁘지 않은 기술이기는 하지만, 현재로서는 그냥 화면의 그래픽 효과를 좀 화려하게 만드는 것 이상으로 적용하기에는 힘든 기술이다. 그래픽 효과가 아닌 게임 플레이 그 자체에 피직스 기술을 대량 적용하자니 CPU로 연산 가능한 하복과 달리 피직스는 별도의 GPU 파워를 필요로 하고, 그 말은 자칫 피직스 연산을 수행할 하드웨어 시스템이 마련되지 않은 기기, 즉 지포스가 달려있지 않은 기기에서는 게임 자체를 플레이하지 못하게 될 공산이 크기 때문이다.[7] 더욱이 PC도 PC지만 콘솔 이식에도 차질이 생긴다는 문제도 있다. 그래서 엔비디아가 피직스를 푸시한 지 몇 년이 지난 지금도 유리창이 와장창 깨지거나, 옷이나 천막이 미친듯이 펄럭이고 연기나 안개가 신비롭게 퍼지는 정도에나 피직스가 활용되는 수준으로 그치고 있다.
게다가 안정성을 중시하는 게이머들은 그래픽카드의 성능이 아주 좋지 않으면 프레임 하락을 방지하기 위해 그냥 꺼버리기 일수다. 아니, 오히려 갈수록게임들의 최적화가 개판이 되가면서 그냥 키지 않는 게 기본사양이 되버렸다. 기술은 좋은데 제대로 쓸 수 있는 사람은 한정적이고, 꼭 필요한 것도 아니니 존 카멕의 말마따나 쓸데없는 짓거리가 되버린 것. 애초에 하드웨어 스펙을 미친듯이 따지며 지포스 그래픽카드에서만 구동이 가능하기에 미래가 어두웠으며, 결국 2015년 NVIDIA가 피직스 자체의 소스 코드를 공개하며 오픈소스로 전환하였다. 물론 피직스를 셀링포인트로서 포기한 것은 아니며, GPU 가속 부분은 여전히 오픈소스가 아니다.
하지만, 이전에도 에이지아 시절부터 보급화를 위해 피직스 엔진 자체는 무료였으며, NVIDIA에 인수된 이후론 지원을 잘 받아서 거의 업계 1위의 점유율을 가지고 있다. 때문에 'NVIDIA의 GPU 가속 기술을 이용한 피직스 효과'가 아닌 '물리 엔진으로써의 피직스 엔진'을 사용하는 게임들은 의외로 매우 많다. 드래곤 에이지 오리진도 그 대표적인 예 중에 하나이며, 유니티3D와 언리얼 엔진같은 메이저급 게임 엔진들이 기본으로 내장하고 있는 물리 엔진 또한 PhysX엔진이다. 이로 인해 가끔 라데온에 왜 피직스를 설치하냐는 컴맹들의 오해를 사기도 한다.
사실 피직스의 대중화에 발목을 잡은 건 AMD의 GPU 가속 물리엔진이 몇 차례나 물먹은 끝에 흐지부지 되버린 탓도 있다. GPU 가속 피직스가 표준이 되버리면 지포스가 달려있지 않은 기기에서는 게임 자체를 플레이하지 못하게 될 공산이 크게 된 것. 콘솔 이식 문제 역시, 어차피 들어가는 GPU는 NVIDIA 아니면 AMD 것이 된 시대이므로 AMD 물리 엔진 계획만 성공했더라면 지원에 큰 어려움이 없었을 가능성이 크다고 볼 수 있다.
이 문서의 내용 중 전체 또는 일부는 피직스문서에서 가져왔습니다.</div></div>
2.2.2 Clothing
2.2.3 Destruction
2.2.4 Particles & Fluids
추가바람- ↑ ENB나 ReShade 등의 그래픽 모드들이 건드리는 것도 바로 이 후처리 과정이다.
- ↑ 이건 세월이 지나면서 PhysX를 지원하는 게임의 사양도 올라갔기 때문이다. GPU PhysX가 처음 구현되었을 땐 정말 이 사양으로도 돌아갔다.
- ↑ 3DMark11의 물리 연산 테스트도 뷸렛 엔진이다.
- ↑ 지포스 드라이버인 포스웨어가 하드웨어 중 라데온이 잡히면 피직스 기능을 비활성화시킨다고 한다.
- ↑ 라데온 + 지포스 조합뿐만 아니라 지포스 + 지포스 조합 또한 가능하다. NVIDIA의 SLI는 동일 제품군의 VGA만 가능하기 때문에, 구형의 잉여 지포스 카드가 있다면 피직스 전용으로 활용이 가능하긴 하다.
- ↑ 하지만 전력소모를 무시 못하기 때문에 파워가 영 아니라면 권장할 수는 없다. 하드웨어적으로 묶지 못할 뿐 전력 소모는 CF나 SLI랑 다를게 없다!
- ↑ 또한 지포스 그래픽카드가 달려 있다 하더라도, 프레임 손실 없이 원활한 환경에서 게임을 플레이하려면 사실상 두 개 이상의 카드로 SLI를 해야 한다.