mir.pe (일반/어두운 화면)
최근 수정 시각 : 2024-11-16 00:30:00

NVIDIA GameWorks

게임웍스에서 넘어옴
파일:external/developer.nvidia.com/gameworksAnnounce.png

1. 개요2. 구성
2.1. VisualFX
2.1.1. FlameWorks2.1.2. FaceWorks2.1.3. HairWorks2.1.4. FleX2.1.5. Turf Effects2.1.6. WaveWorks2.1.7. VXGI2.1.8. Turbulence2.1.9. ShadowWorks2.1.10. Soft Shadows
2.1.10.1. HBAO+
2.1.11. PostWorks
2.1.11.1. Depth of Field2.1.11.2. TXAA
2.1.12. GI Works
2.2. Physics
2.2.1. PhysX2.2.2. Clothing2.2.3. Destruction2.2.4. Particles & Fluids
2.3. OptiX

1. 개요

NVIDIA에서 개발한 미들웨어 소프트웨어 제품군. 소프트웨어 개발 툴을 통칭하는 말이다. Visual FX, PhysX, Optix SDK는 NVIDIA GPU를 위해 미리 최적화된 다양한 개선 사항을 제공한다.

NVIDIA가 2013년에 처음 소개한 이후 2014년에 정식 공개했으며, 2016년 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

VXGI(Voxel Accelerated Global Illumination)는 복셀을 이용해 동적인 전역 조명을 구현하는 NVIDIA GameWorks의 조명 기술이다.

현재까지도 3D 게임들은 단일 씬에 비해 넓은 레벨과 방대한 메시들에 대한 빛 계산량을 줄임으로써, 보다 최적화된 실행을 위해 고정된 라이트맵을 구워내는 방식으로 간접광 및 전역 조명을 표현하고 있다. VXGI는 Voxel Cone Tracing 방식을 베이스로 각 메시를 복셀화하여 빛을 받는 영역을 나누고, 나뉘어진 각 복셀마다 프레임 단위로 라이팅을 업데이트하여 실시간 동적 라이팅을 구현한다.

가장 큰 장점은 그림자와 앰비언트 오클루젼 등의 효과를 위해 라이트맵을 일일이 굽는, 굉장히 오랜 시간이 소요될 수 있는 작업이 필요 없다는 것이다.

또한, 복셀들이 빛의 산란까지도 처리하기 때문에 정확한 디퓨즈 및 컬러 블리딩 표현이 가능하다. 또 다른 특징으로는 라이팅 정보가 반영되지 않았던 기존의 Emissive 머티리얼에도 간접광 효과를 부여할 수 있고 재질의 Specular에 따라 변하는 반사광 표현을 통해 SSR(Screen Space Reflection)의 특징을 극대화하는 등 사실적인 라이팅이 가능하다는 것이다.

이러한 고품질의 라이팅 표현으로 인해 컴퓨터의 사양을 굉장히 많이 타는 기술이다. 또한 Specular 반사 효과의 해상도도 아직은 낮은 수준으로 지원하며, 애니메이션이 들어간 메시가 씬에 들어갈 경우에 기존 방식보다 오류와 프레임률 측면에서의 안정성이 떨어진다는 것이 단점이다.

Maxwell 아키텍처 이상의 최소 지포스 GTX 950급 그래픽카드가 필요하다.


언리얼 엔진 4와 VXGI를 이용한 데모 영상

현재 GitHub를 통해 언리얼 엔진 4와의 통합 소스 코드를 받을 수 있다.

2.1.8. Turbulence

2.1.9. ShadowWorks

파일:external/www.geforce.com/pcss-high.jpg 파일:external/www.geforce.com/pcss-ultra.jpg
기존의 그림자 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

포스트 프로세싱, 즉 후처리 효과들로 구성된 패키지. ENB나 ReShade 등의 그래픽 모드들이 건드리는 것도 바로 이 후처리 과정이다.
2.1.11.1. Depth of Field
카메라 초점을 모방해 초점 잡힌 곳은 선명하게 하고 나머지는 흐리게 하는 효과. 컷씬 등에서 시네마틱한 분위기 연출을 위해 필수적인 이펙트 중 하나다. 사진에서의 아웃포커싱과 비슷한 효과다.
2.1.11.2. TXAA
크롤링 및 플리커링을 줄여주는 영화 스타일의 안티에일리어싱. 자세한 내용은 안티 에일리어싱 항목 참조.

2.1.12. GI Works

2.2. Physics

2.2.1. PhysX

파일:external/upload.wikimedia.org/Nvidia_physx_official_logo.png
NVIDIA에서 제공하는 물리 엔진. 피젝스(피즈-엑스)라고 읽는다. 원래 Aegia의 소유였으나 2008년에 NVIDIA가 Aegia를 인수하여 NVIDIA의 소유가 되었다. 그래픽 카드의 GPU를 이용하여 3D 가속을 하는 기술이라고 요약할 수 있다.
파일:external/www.legitreviews.com/asus_physx.jpg
(Aegia 시절엔 PPU라고 전용 칩을 단 전용 카드를 따로 썼다.) 이로 인해 세밀하고 사실적인 물리 효과를 표현할 수 있게 됐다.

파일:99128381283wqew.jpg
2세대 PPU는 인터페이스가 PCI에서 PCIE로 변경되었고 단순 물리연산 뿐만 아니라 렌더링에도 도움을 주게 설계되었다.

PhsyX의 최소 사양은 최소 32개의 CUDA 코어 및 256MB의 전용 그래픽 메모리가 탑재된 지포스 8 시리즈 이후의 모델[1]이어야 하며 일반적으로, PhysX 전용 GPU가 장착되어 있지 않다면 512MB 그래픽 메모리가 권장된다. 이건 세월이 지나면서 PhysX를 지원하는 게임의 사양도 올라갔다. GPU PhysX가 처음 구현되었을 2008년 당시엔 정말 이 사양으로도 돌아갔다. 물론 GPU의 성능이 상향 평준화된 오늘날은 몰라도 상관없는 이야기가 되었다.

대표적으로 Unreal Engine 3, Unreal Engine 4, Unity 3D, Gamebryo, Vision, Instinct, Trinigy, Diesel, Hero, BigWorld 등의 유명 게임 엔진들이 PhysX를 기본 물리 엔진으로 차용하고 있으며, EA, THQ, 2K Games, SEGA 등의 게임 개발사들이 PhysX 기술을 활용하고 있다. 소스 2의 초기 버전에서도 쓰였으나 이후에 루비콘 엔진으로 대체되었다. EA의 경우 프로스트바이트 2.0 엔진 이후로는 Microsoft의 DirectX에 내장된 DirectCompute 기반 물리엔진으로 갈아탔다.

앨리스 매드니스 리턴즈, 미러스 엣지, 배트맨: 아캄 시티, 배트맨: 아캄 오리진, 보더랜드 2, 와치 독스, 염소 시뮬레이터(...)에서 대표적으로 적용되었다.


배트맨: 아캄 오리진에 적용된 PhsyX 기술 영상. 화려한 물리 효과가 돋보인다.

AMD에서는 개방된 기술이 아닌 전용 기술은 망할 수 밖에 없다고 NVIDIA를 비판했다. # 존 카맥도 퀘이크콘 2009에서 하드웨어 PhysX(PPU)는 소비자가 구매하더라도 시간이 지나면 구식이 되기 때문에 나쁜 생각이라며, NVIDIA가 Aegia를 인수했을 때 많은 돈을 주지 않았길 바란다며 농담했다. 부서지는 유리창의 표현이나 바람에 휘날리는 옷자락 같이 사실적인 물리적 표현이 게임 플레이라는 면에서 볼 때 별로 중요치 않은 건 사실이다. 일례로 Tressfx는 DirectCompute 기반이므로 AMD NVIDIA의 GPU 모두 적용 가능한 반면, PhysX는 NVIDIA GPU만 가능해서 사용자가 어떤 VGA를 쓰냐에 따라 게임의 사양이 달라지게 된다.

사실 AMD는 더 이전부터 해당 기술을 밀고 있었고 하복 엔진과 협력하고 있었지만, 하복은 GPU 가속에 관심없는 인텔이 인수해버리고, 같이 하복에 물먹은 NVIDIA는 Aegia 인수로 먼저 결과물을 내놓는 바람에 이후 오픈 소스인 블릿 엔진과 협력하여 성과[2]를 내놓기도 했으나, 원래 목적인 PC 게임에서의 PhysX의 대항마에서는 지원 게임이 거의 없다. PhysX와 관련된 사건들을 쭉 정리한 글이 있다.

여담으로 Windows 7부터 복수의 VGA를 별도로 사용이 가능해짐에 따라 라데온을 메인, 지포스를 PhsyX 가속 장치로만 사용하는 편법, 일명 '하이브리드 PhysX'라는 것이 생겨났다. 다만 그냥 장치를 설치만 해서는 PhsyX 사용이 불가능하고[3], 별도의 PhsyX 크랙을 설치해야 하는 등 과정이 다소 복잡하다는 게 흠 엔비디아도 이걸 알고 있는지, 갈수록 설정 방법이 복잡해지고 있고 최신 드라이버로 갈수록 수정이 오래 걸리고 있다..[4] 그래도 CUDA 사용이 가능한 지포스 8 시리즈 이상의 그래픽 카드만 있다면 PhsyX 지원 게임에서 라데온 단일 카드보다 프레임률이 넘사벽으로 나오기도 한다.[5][6]

분명 나쁘지 않은 기술이기는 하지만, 현재로서는 그냥 화면의 그래픽 효과를 좀 화려하게 만드는 것 이상으로 적용하기에는 힘든 기술이다. 그래픽 효과가 아닌 게임 플레이 그 자체에 PhsyX 기술을 대량 적용하자니 CPU로 연산 가능한 하복과 달리 PhsyX는 별도의 GPU 파워를 필요로 하고, 그 말은 자칫 PhsyX 연산을 수행할 하드웨어 시스템이 마련되지 않은 기기, 즉 지포스가 달려있지 않은 기기에서는 게임 자체를 플레이하지 못하게 될 공산이 크기 때문이다.[7] 더욱이 PC도 PC지만 콘솔 이식에도 차질이 생긴다는 문제도 있다. 그래서 엔비디아가 PhsyX를 푸시한 지 몇 년이 지난 지금도 유리창이 와장창 깨지거나, 옷이나 천막이 미친듯이 펄럭이고 연기나 안개가 신비롭게 퍼지는 정도에나 PhsyX가 활용되는 수준으로 그치고 있다.

게다가 안정성을 중시하는 게이머들은 그래픽 카드의 성능이 아주 좋지 않으면 프레임률 하락을 방지하기 위해 그냥 꺼버리기 일수다. 아니, 오히려 갈수록 게임들의 최적화가 개판이 돼 가면서 그냥 켜지 않는 게 기본 사양이 돼 버렸다. 기술은 좋은데 제대로 쓸 수 있는 사람은 한정적이고, 꼭 필요한 것도 아니니 존 카멕의 말마따나 쓸데없는 짓거리가 돼 버린 것. 애초에 하드웨어 스펙을 미친 듯이 따지며 지포스 그래픽 카드에서만 구동이 가능하기에 미래가 어두웠으며, 결국 2015년 NVIDIA가 PhsyX 자체의 소스 코드를 공개하며 오픈소스로 전환하였다. 물론 PhsyX를 셀링포인트로서 포기한 것은 아니며, GPU 가속 부분은 여전히 오픈소스가 아니다.

하지만, 이전에도 Aegia 시절부터 보급화를 위해 PhsyX 엔진 자체는 무료였으며, NVIDIA에 인수된 이후론 지원을 잘 받아서 거의 업계 1위의 점유율을 가지고 있다. 때문에 'NVIDIA의 GPU 가속 기술을 이용한 PhsyX 효과'가 아닌 '물리 엔진으로서의 PhsyX 엔진'을 사용하는 게임들은 의외로 매우 많다. 드래곤 에이지 오리진도 그 대표적인 예 중의 하나이며, 유니티3D와 언리얼 엔진같은 메이저급 게임 엔진들이 기본으로 내장하고 있는 물리 엔진 또한 PhysX 엔진이다. 이로 인해 가끔 라데온에 왜 PhsyX를 설치하냐는 컴맹들의 오해를 사기도 한다. 이후에도 이런 게임은 간간히 나오고 있으나, 컨트롤(게임) 처럼 아예 게임 자체적으로 PhysX 라이브러리를 같이 설치하는 방식을 택해서 지포스 사용자도 PhysX 게임인지 모르는 경우가 대부분이 되었다.

사실 PhsyX의 대중화에 발목을 잡은 건 AMD의 GPU 가속 물리엔진이 몇 차례나 물먹은 끝에 흐지부지 돼 버린 탓도 있다. GPU 가속 PhsyX가 표준이 돼 버리면 지포스가 달려있지 않은 기기에서는 게임 자체를 플레이하지 못하게 될 공산이 크게 된 것. 콘솔 이식 문제 역시, 어차피 들어가는 GPU는 NVIDIA 아니면 AMD 것이 된 시대이므로 AMD 물리 엔진 계획만 성공했더라면 지원에 큰 어려움이 없었을 가능성이 크다고 볼 수 있다.

2018년 12월 3일 GPU 가속을 포함한 모든 PhsyX SDK가 오픈 소스로 전환되면서 다양한 시스템에서 활용할 수 있을 것으로 기대되고 있다.

그리고, 채굴용 그래픽 카드(그래픽 카드 출력 포트가 없고 개조된)가 몇 년 전부터 채굴기로 ASIC을 주로 쓰다 보니 폐기 대신에 중고로 저렴한 가격으로 나오고 있는데[8] 이걸 PhysX 카드 처럼 쓰는 방법이 생겨났다. 일명 NVIDIA Optimus와 비슷한 방식 [9][10]


파일:CC-white.svg 이 문서의 내용 중 전체 또는 일부는
문서의 r58
, 번 문단
에서 가져왔습니다. 이전 역사 보러 가기
파일:CC-white.svg 이 문서의 내용 중 전체 또는 일부는 다른 문서에서 가져왔습니다.
[ 펼치기 · 접기 ]
문서의 r58 ( 이전 역사)
문서의 r ( 이전 역사)

2.2.2. Clothing

2.2.3. Destruction

2.2.4. Particles & Fluids

2.3. OptiX

2009년에 처음 발표된 프로그래머블 레이 트레이싱(광선 추적) 구현을 위한 프레임워크. 정교한 앰비언트 오클루젼(Ambient Occlusion) 및 라이트 베이킹과 같은 작업을 GPU 가속화하기 위해 개발되었으며, 게임웍스가 나오기 이전까진 범용이었으나 게임웍스로 편입되면서 게임용 OptiX를 OptiX For Games라고 정의하고 있다.
PhysX처럼 CUDA를 이용하므로 CUDA를 지원하는 지포스 8 시리즈 이상의 그래픽카드라면 구현할 수는 있지만 레이 트레이싱 기법의 렌더링 자체가 실시간 렌더링이 주가 되는 게임에서 모두 활용하기엔 현세대 플래그십 그래픽카드 1장으로는 어림도 없을만큼 매우 높은 사양을 요구하기 때문에 활용도가 높지 않다.

그러다가 지포스 RTX 20 시리즈가 나오면서 제한적이나마 실시간 레이 트레이싱 연산 구현이 가능하게 되었다. 하지만 RT 코어가 탑재된 RTX 20 시리즈 그래픽카드조차 레이 트레이싱 기술이 어느 정도 구현된 AAA 게임들 한 해서 제대로 즐길 수 있는[11][12] 모델이 일반 게이밍용 제품군에서 최상위 라인인 RTX 2080 Ti 말고는 딱히 없을 정도로 레이 트레이싱 연산의 절대적인 성능 자체가 부족해서 RTX 20 시리즈 그래픽카드 제품군의 투입 자체가 시기상조라는 반응이 많다.

오히려 게임 보다는 CG 업계의 렌더러 소프트웨어에 탑재되는 일이 더 많은 편.


[1] 정확히 따지면 리테일 기준으로 지포스 8600GT 이상, 9500GT 이상, GT 220 이상의 그래픽 카드. [2] 3DMark11의 물리 연산 테스트도 뷸렛 엔진이다. [3] 지포스 드라이버인 포스웨어가 하드웨어 중 라데온이 잡히면 PhsyX 기능을 비활성화시킨다고 한다. [4] 16년 9월 이후 출시된 윈도우 10 드라이버는 하이브리드 PhsyX 크랙이 필요하지 않으며,지포스 쪽에 모니터만 하나 활성화 시켜주면 제한없이 하이브리드 PhsyX 사용이 가능하다 [5] 라데온 + 지포스 조합뿐만 아니라 지포스 + 지포스 조합 또한 가능하다. NVIDIA의 SLI는 동일 제품군의 VGA만 가능하기 때문에, 구형의 잉여 지포스 카드가 있다면 PhsyX 전용으로 활용이 가능하긴 하다. [6] 하지만 전력소모를 무시 못하기 때문에 파워가 영 아니라면 권장할 수는 없다. 하드웨어적으로 묶지 못할 뿐 전력 소모는 CF나 SLI랑 다를게 없다! [7] 또한 지포스 그래픽 카드가 달려 있다 하더라도, 프레임률 손실 없이 원활한 환경에서 게임을 플레이하려면 사실상 두 개 이상의 카드로 SLI를 해야 한다. [8] 요즘은 이 방법이 생겨나서 그런지 가격이 오르고 있다... [9] 다만, 드라이버를 그냥 설치해서는 안되고(그냥 설치하면 채굴 전용으로 잡혀서 연산 기능만 잡히고 DirectX PhysX 같은게 죄다 안 잡힌다) 방법이 매우 까다롭고(윈도우에서 드라이버 업데이트를 꺼줘야 되고 테스트 모드로 켜고 417.22버전 드라이버 개조해주고 설치.개조라고 해봤자 그냥 한 파일을 열고 몇줄만 고치면 된다... 아니면 382.53 버전을 위의 방법 필요 없이 그냥 설치하면 되는데, 417.22 보다 성능이 제대로 안 나올 수가 있다. 하지만 417.22 이후는 NVIDIA가 이걸 못 마땅하게 생각했는지 아예 개조도 못하게 막혔다. 그러므로 작동이 되는 최종 버전이 417.22) 윈도우 10(도 버전이 있는데 RS4이상. 이 밑으로는 작동 안될 수도 있다. 이는 윈도우 10의 특정 버전 이상부터 생긴 DirectX 12의 기술을 이용한 것이다.)이랑 메인보드가 듀얼 그래픽 포트를 지원(그래픽 카드를 끼워도 내장을 작동하게 해주는것. 보통 내장 그래픽 지원 보드는 거의 된다.) 해줘야 되고 인텔 4세대, AMD Ryzen 2세대 이상에서만 작동이 된다.(인텔 3세대 아래 에도 작동이 된다는 소리가 있지만... 확인 불가) 내장 그래픽 카드가 없으면 외장 그래픽 카드를 따로 설치해야 되는데. 같은 NVIDIA 그래픽 카드면... 흠. 그리고 Optimus 같이 그래픽 코어를 사용 안 한다고 해서 자동으로 끄거나 켜지지 않는다. 전력만 적게 먹을뿐 계속 켜져있다. 그리고 NVIDIA 제어판이 있어도 사용이 불가능 하다. 연결된 디스플레이가 없다고 뜬다. [10] 하지만 여기서 끝나지 않고 536.40버전을 또 수정해서 설치 가능하게 만들었다. 처음에 어떤 인증서를 설치를 하고 뒤에 패치로 나온 파일들을 원래 드라이버 파일에 씌운뒤에 Setup.exe가 아니라 장치 관리자에 들어가서 3D 그래픽 카드 같은걸 찾아서 설치 하는 방식이다. 물론 설치할때 GTX 1060(또는 채굴 그래픽 카드의 칩셋 이름이랑 똑같은것. 칩셋이 같아도 그래픽 램에 따라 또 다르다)으로 찾아서 설치해야 된다. 게다가 또 이걸로 끝나지 않고 536.99버전을 패치 하는 방식으로 나왔는데 이건 거의 Optimus 방식 같이 작동하며 원래 드라이버 파일을 씌우는 방식은 똑같지만 인증서 패치도 필요 없이 install.bat 클릭 한번(물론 관리자 권한으로 실행 으로 눌러야 된다)으로 설치가 된다.(설치는 Setup.exe로 하는데 실제로는 패치된 드라이버가 깔린다) 게다가 이 드라이버는 P106-100으로 잡히지만 PhysX랑 3D그래픽이 모두 작동된다.(이름 바꾸는건 인터넷에 hardware name change 같은거 검색하면 나온다) NVIDIA 제어판도 이전 패치 드라이버랑 다르게 정상 작동한다(!) 진짜 Optimus... 물론 전원은 노트북 Optimus 처럼 꺼지고 켜지지는 않는다. 현재 버전은 551.23 / 더 나아가서 551.86 버전도 생겼는데 아예 install.bat이 없어지고 Setup.exe만 열어도 설치가 될뿐더러 P106-100이 GTX 1060 6GB로 바뀐다(!) 게임이나 그래픽 프로그램에서도 저렇게 나온다. 아마도 패치 드라이버에 장치 이름을 바꾸는 무언가를 추가한듯... (다른 채굴 그래픽 카드도 해당 칩셋을 사용하는 그래픽 카드에 맞게 바껴서 나온다) 그 후에도 계속 그래픽 드라이버 버전이 업그레이드 되고 좀 지나면 패치 드라이버가 올라오는데 요새 마이크로소프트 디펜더 에서 드라이버 파일들을 감지하는듯 하다. 드라이버를 사용하는 게임이나 프로그램을 실행하면 디펜더에서 갑자기 패치된 드라이버들을 바이러스로 감지가 되면서 게임이나 프로그램이 꺼진다. 계속 사용하려면 디펜더에서 예외설정을 해야할듯... [11] 1080p FHD 풀옵션 환경에서 60FPS으로 즐길 수 있는 수준이다. [12] 레이 트레이싱 기술 적용된 게임들 대부분이 레이 트레이싱 옵션을 켠 채로 구동하면 옵션 껐을 때보다 프레임률이 크게 하락되기 때문이다. 프로스트바이트 엔진으로 개발된 배틀필드 V가 그나마 최적화가 가장 잘 된 편이다.