V-Ray에서 변위 맵의 작동 방식

V-Ray에서 변위 맵의 작동 방식 및 최적화 방법 2부

소개

가이드의 1부에서는 3ds Max에 대해 V-Ray 변위 기능의 설정을 최적화하는 방법과 더불어 3D 매핑 변위 모드의 설정을 최적화하는 방법을 소개하였습니다.    

2부에서는 2D 매핑(랜드스케이프) 변위와 리소스(주로 RAM) 절감을 돕는 다양한 기술에 대해 설명하면서 V-Ray 변위로 씬을 렌더링하겠습니다.

목차

2D 변위 최적화(랜드스케이프)

V-Ray 설명서에 따른 2D 변위(랜드스케이프):

  • 2D 매핑 – 사전에 알려진 텍스처 맵을 기반으로 변위를 설정합니다. 변위된 표면은 해당 텍스처 맵에 따라 뒤틀린 높이 필드로 렌더링됩니다. 변위된 표면의 실제 레이트레이싱은 텍스처 공간에서 이루어지며, 결과는 다시 3D 공간으로 매핑됩니다. 이 방법의 장점은 변위 맵의 모든 세부 사항을 보존한다는 것입니다. 그러나, 개체에 유효한 UV 좌표를 가지고 있어야 합니다. 3D 절차적 텍스처 또는 오브젝트 또는 월드 좌표를  사용하는 다른 기타 텍스처에는 이 방법을 사용할 수 없습니다. 변위 맵은 모든 값을 가질 수 있습니다.

그것은 V-Ray 변위의 매우 효율적인 모드이며 일반적으로 지면, 잔디, 포장 및 바닥 타일과 같은 모든 종류의 평평한 표면을 만드는 방법으로 사용됩니다.    

2D 변위  모드는 3D 모드가 가지고 있는 "연속성 유지" 설정이 부족합니다. 이 옵션은 변위된 모델의 모서리를 연속 형상에 혼합하려고 시도하며 2D 표면이 아닌 모든 종류의 3D 쉘에 변위를 적용하는 데 매우 유용합니다. 예를 들어, 변위를 사용하여 생성된 벽돌 형상이 있는 벽의 코너입니다.    

그러나 닫힌 3D 개체에서도 이 모드를 사용할 수 있는 트릭이 있으며, 많은 경우 변위된 메쉬의 연속성을 유지할 수 있습니다.

닫힌 3D 오브젝트를 2D 변위로 렌더링하는 팁

일반적으로 2D 매핑 변위는 지상이나 해수면과 같은 평평한 표면에서 사용하도록 되어 있지만 이 모드에서는 3D 매핑 변위와 같은 "연속성  유지" 옵션이 없음에도 불구하고 모든 3D 모델에서 사용할 수 있습니다.

이러한 설정을 위한 단계는 다음과 같습니다.

V-Ray에서 변위 맵의 작동 방식

동일한 스무딩 그룹으로 설정된 폴리는 특히 변위 맵과 일치하여 동일한 부분이 모서리에서 만나도록 하는 경우 연속성을 유지합니다. 때로는 코너에  베벨을 추가하는 것이 도움이 됩니다. 이 작업은 편집 가능한 폴리에 대한 3ds Max 'bevel(베벨)' 옵션 또는 적절히 준비된  메쉬로 편집 가능한 폴리 모델에 추가된 Turbosmooth를 통해 수행할 수 있습니다.    

메쉬 밀도를 높이기 위해 Turosmooth, Meshmooth 또는 편집 가능한 폴리 NURMS 세분화와 같은 수정자를 사용하는 경우 이 설정으로  충분한 결과를 얻지 못할 수 있습니다.    

이러한 경우 스무딩 그룹 통합을 적용하기 전에 메쉬를 편집 가능한 폴리로 축소해야 합니다. Tesselate 또는 Subgride와 같은 수정자는 더 나은 결과를 제공하지만 축소된 메쉬만큼 좋지는 않습니다.    

동일한 씬에서  2D 대 3D 변위를 사용하는 씬에서 사용되는 리소스 수를 비교해 보겠습니다.

테스트 설정:

  • 하드웨어: Intel V2 프로세서, 2.80GHz, 128GB RAM
  • 소프트웨어: 3dsMax 2017 + V-ray 4.10.02
  • GI는 Light Cache + Brute Force, 기본 설정으로 설정되었습니다.
  • 은 6k x 6k 픽셀 해상도 이미지로 렌더링됩니다.
  • 다른 모든 설정은 기본값으로 유지되었습니다.

참고: 일부 테스트에서는 리소스 사용량을 늘리고 비교 시나리오에 영향을 미칠 수 있는 임의의 차이를 제외하기 위해 변위를 일부러 매우 높은 값으로 설정했습니다. 또한 RAM 테스트는 3ds Max의 최대 RAM 사용량을 보여주는데, 거의 모든 경우 이미지를 렌더링하는 V-Ray의 "Building Embree 정적 가속기" 단계에서 발생합니다.

우리는 두 씬을 테스트할 것입니다.

왼쪽에 있는 것은 Turbosmooth, UVW 평면 매핑 및 VrayDesplacementMod가 적용된 편집 가능한 폴리로 축소된 평면입니다.    

오른쪽의 씬은 메쉬가 세분화되고 모서리가 Turbosmooth 수정자로 둥글고 편집 가능한 폴리로 축소되고 VRayDisplacementMod가 적용된 몇 개의 상자입니다.    

파란색 사각형은 확대하여 표에서 테스트와 비교할 영역을 나타냅니다.

V-Ray에서 변위 맵의 작동 방식

우리는 2D모드에서 다양한 해상도에 텍스처들을 사용하여 변위가 있는 씬을 렌더링 하는 데 필요한 리소스의 양을 테스트를 하겠습니다.

그런 다음 비교를 위해 2D 변위 모드로 렌더링된 씬과 동일한 양의 RAM을 사용하도록 설정된 3D 매핑(View Dependent)으로 씬을 렌더링하고 품질 및 렌더 시간을 비교합니다.    테스트 결과  256px와 512px 변위 맵이 있는 씬은 만족스럽지 않아 보입니다. 텍스처 픽셀은 변위로 표시됩니다. 1024와 2048 렌더링에서는 픽셀이 잘 보이지 않지만 암석의 가파른 가장자리에는 눈에 보이는 낮은 품질의 아티팩트가 보입니다.

V-Ray에서 변위 맵의 작동 방식

테스트 결과 256px와 512px 변위 맵이 있는 씬은 만족스럽지 않아 보입니다. 텍스처 픽셀은 변위로 표시됩니다. 1024와 2048 렌더링에서는 픽셀이 잘 보이지 않지만 암석의 가파른 가장자리에는 눈에 보이는 낮은 품질의 아티팩트가 보입니다.

4096과 8192 변위 텍스처는 거의 동일한 이미지를 렌더링했기 때문에 훨씬 더 많은 RAM을 사용하는 8192 이미지를 버리고 4096 이미지를 남겨둘 수 있습니다.

그 씬의 테스트는 2D 변위에 사용되는 RAM이 가장 큰 맵에서 빠르게 상승하기 시작한다는 것을 보여주었습니다. RAM 사용량이 유사한 3D 매핑은 조금 더 흐릿한 변위 세부 사항을 제공했지만 훨씬 빠르게 렌더링되었습니다. 128GB RAM에서 가능한 가장 높은 수준으로 설정된 3D  매핑 변위는 13px로 설정된 이미지보다 훨씬 더 좋지 않지만, 이 줌 레벨과 해상도로는 텍스처 자체에 의해 제한됩니다.

V-Ray에서 변위 맵의 작동 방식

두 번째 씬의 경우 256개부터 2048개까지의 맵의 렌더링이 만족스럽지 않아 보입니다. 4096 해상도에서 사라지는 가시적 변위 맵 픽셀이 있습니다. 8192개의 맵은 거의 동일하게 렌더링되었지만 RAM을 훨씬 더 많이 사용하는 대신 임의의 아티팩트의 수를 줄였습니다.    

사용된 10GB RAM으로 렌더링하는 3D 매핑된 씬 세트(8K 텍스처 사용)는 2D 모드에서 씬의 1024와 2048 및 4096px 사이의 화질을 가진 이미지를 제공했습니다. 또한 가능한 최대 모서리 길이 2px 및 57 RAM 사용으로 설정된 씬은 2D 변위 씬보다 디테일이 덜 선명합니다. 그러나 그것은 훨씬 더 빨리 렌더링되었습니다.        

TIP : 2D 변위 모드에서는 변위 설정의 텍스처 해상도를 실제 텍스처 해상도와 일치시키는 것이 가장 좋습니다. 빠른 테스트를 실행하고 이미지의 첫 번째 픽셀이 표시될 때까지의 시간을 단축해야 하는 경우 수정자의 해상도를 낮은 값으로 설정하고 일반 렌더링을 위해 전체 값으로 다시 설정할 수 있습니다.

2D 변위 장점:

  • 렌더링 해상도와 무관한 RAM 사용량
  • "변위 사전 계산" 단계 없음, RAM 사용량 감소
  • 애니메이션 도중에도 카메라의 거리나 시점과 상관없이 동일한 수준의 디테일
  • 더 깔끔한 디테일 제공

단점:

  • 텍스처가 크면 RAM을 많이 차지할 수 있습니다.
  • 카메라에서 멀리 떨어진 모델에 필요하지 않은 설정으로 오버슛을 할 수 있습니다.
  • 변위 품질을 미세 조정하는 옵션이 많지 않습니다.
  • 절차 맵을 지원하지 않습니다.
  • 2D 변위가 작동하려면 모델을 제대로 매핑해야 합니다.
  • 닫힌(쉘) 모델이라고 해서 항상 잘 작동하는 것은 아닙니다.

더 나은 RAM 결과를 위해 메쉬 분할

메쉬의 다양한 밀도로 모델을 테스트하지만 모든 렌더링에 대해 동일한 값으로 설정된 VrayDisplacementMod 설정으로 변위됩니다.

V-Ray에서 변위 맵의 작동 방식

VRayDisplacementMod를 적용하기 전에 메쉬를 세분화하면 RAM이 크게 절약되며, 경우에 따라 렌더링 시간이 약간 더 길어지기도 합니다. 메쉬 밀도의 특정 임계값에 도달하면 RAM 사용이 다시 증가하기 시작합니다.    

이는 V-Ray 변위가 시프트를 적용하기 전에 지오메트리 면을 하위 삼각형으로 나누기 때문입니다. 모델이 큰 면 몇 개에서 차례로 로드되고 세분되므로 V-Ray는 모델의 매우 큰 부분에 대해 작업하고 해당 면에 대해 매우 큰 메시를 계산해야 합니다. 그러면 더 많은 RAM이 필요할 수 있습니다.    

반면에, V-Ray가 메쉬의 초기 계산을 시작할 때, 그것은 가능한 한 많은 교체된 메쉬를 메모리에 유지해야 합니다. 이렇게 하면 인접 모서리를 계산하여 연속성을 유지할 수 있습니다. 변위된 메쉬가 너무 촘촘해지면 메모리에 너무 많은 요소를 유지하고 RAM을 너무 많이 사용해야  합니다.        

변위를 적용하기 전에 메쉬에 더 많은 세분화를 추가하면 품질을 높이고 변위 아티팩트를 제거할 수 있습니다. 다음은 예시입니다.

V-Ray에서 변위 맵의 작동 방식

Turbosmooth와 같은 수정자를 사용하여 메쉬를 빠르게 세분화할 수 있지만, 메쉬를 편집 가능한 폴리로 축소하지 않으면 매우 작은 결과를 얻을 수 있습니다.        

TIP : 브루트 포스(Brute Force)는 메모리 사용 측면에서 더 최적화되었기 때문에 보조 바운스 엔진으로 사용할 수 있습니다. 계산을 진행하려면 Light Cache가 모든 어셋을 로드해야 하지만 BF 및 Irradiance Map은 버킷당 해당 어셋을 로드해야 합니다.    

TIP : 경우에 따라 범프 또는 노멀 맵을 동일한 모델의 변위 맵과 결합할 수 있습니다. 더 큰 기능에는 변위를 사용하고 더 미세한 세부 사항에는 노멀 또는 범프를 사용할 수 있습니다.

불필요한 지오메트리를 삭제하거나 범프로 변경

이제 변위 렌더링을 최적화하는 다른 방법을 사용해 보겠습니다.

V-Ray는 샷에서 보이지 않는 부분까지 변위가 적용된 전체 모델을 렌더링합니다. 이들은 반사나 굴절에서 볼 수 있고 GI 렌더링에 영향을 미칠 수 있으므로 계산에 반영됩니다.    

아래 테스트에서 카메라 뷰 바로 바깥으로 모델을 이동했습니다. 처음 두 테스트에서 변위가 있는 모델은 공의 표면에 반사됩니다.

V-Ray에서 변위 맵의 작동 방식

우리가 변위가 있는 모델을 삭제해야만 사용 리소스의 양이 감소합니다. 만약 변위가 반사된 부분에서만 보여야 한다면, 많은 경우 범프 매핑만으로 충분합니다.        

예를 들어 프레임에 보이지 않는 모델의 부분을 잘라 분리하여 샷에 보이지 않는 부분을 삭제할 수 있습니다.

V-Ray에서 변위 맵의 작동 방식

모델 뒤에 있는 다각형은 렌더링된 이미지에 영향을 미치지 않고 삭제할 수 있으며 절약된 RAM의 양은 상당합니다.

렌더링 영역을 켠 상태에서 씬을 렌더링하면 어떤 일이 일어나는지 확인해 보겠습니다.

V-Ray에서 변위 맵의 작동 방식

보시다시피 RAM 사용량은 크게 변하지 않습니다. 이는 렌더링 영역에 포함되지 않더라도 V-Ray가 프레임에서 메모리로 전체 모델을 로드하기 때문입니다.    

때로는 좋은 결과를 얻기 위해 변위를 사용할 필요가 전혀 없습니다. 오브젝트가 카메라와 멀리 떨어져 있는 경우에는 일반 범프면 충분합니다.

V-Ray에서 변위 맵의 작동 방식

렌더링의 품질이 눈에 띄게 저하되지 않고 사용된 리소스를 줄여 범프를 사용할 수 있는 시점은 언제입니까?

  • 모델들이 사진에서 보이지 않고 반사되어 보일 때.                                                          
  • 매번 모델이 샷에서 보이지 않지만 GI에 영향을 미칩니다. 이 경우 변위나 범프를 사용하지 않고 확산 맵만 켜진 상태로 유지할 수 있습니다.
  • 변위된 모델이 카메라에서 멀리 떨어져 있거나 이미지의 이 부분의 해상도가 낮아 세부 정보가 보이지 않는 경우.
  • 특히 카메라와 가까이 있지 않은 경우 석고 긁힘, 페인트 붓질, 가죽 무늬와 같은 미세한 디테일을 위한 경우.

메모리 절약

메모리 절약 옵션을 사용하면 렌더링 시간이 약간 길어지는 대신 사용된 RAM의 5~10% 정도를 빠르게 절약할 수 있습니다. 테스트 결과를 보겠습니다. (지난 테스트와 동일한 씬을 사용합니다.)

V-Ray에서 변위 맵의 작동 방식

렌더링 > 렌더 설정 > 설정 > 메모리 절약에서 켤 수 있습니다.

추가 설정

아래에 언급된 설정은 사용 중인 변위 유형에 대해 기본적으로 켜져 있거나 꺼져 있습니다. 그것들은 그렇게 두는 것이 좋으며, 그것들은 대부분 렌더링이 통제 불능이 되었을 때, V-Ray 변위가 다른 플러그인과 충돌할 때, 그리고 아티팩트나 버그를 우회하는 데 사용됩니다.    

그러나 씬을 렌더링하는 데 도움이 되는지 확인하기 위해 그것들을 갖고 시도해 보고 싶을수도 있습니다.

TIP : GI 단계를 계산하는 동안 메모리 사용량이 너무 많을 경우 먼저 씬\오브젝트에서 변위가 꺼진 파일로 GI를 렌더링한 다음 변위가 켜진  파일에서 GI가 로드된 상태로 씬을 렌더링할 수 있습니다. 이러한 속임수는 변위된 특징이 매우 작은 경우 좋은 결과를 제공할 수 있습니다.    

정적 지오메트리(기본 활성화됨) - 변위된 지오메트리는 처음부터 가속 구조로 사전 컴파일되어 프레임 끝까지 유지됩니다. 렌더링 속도는 빨라지지만 메모리 사용량은 증가합니다.    동적 메모리는  "정적 지오메트리"를 끈 경우에만 변위 표면에 사용됩니다. 타일링 된 텍스처와 V-Ray 프록시는 동적 메모리에 저장되며  일반 지오메트리, 타일링 되지 않은 비트맵 및 렌더링에 필요한 기타 데이터는 정적 메모리에 유지됩니다.        

TIP :  정적 지오메트리가 켜진 상태에서 변위를 수행하면 렌더링 속도가 빨라지지만 RAM 사용량이 더 많아집니다. 이 경우 전체 변위가 사전 계산되어 RAM에 저장됩니다. 이 기능을 해제하면 동적 메모리에 저장되며 렌더링 중에 필요에 따라 로드 및 언로드됩니다. 이 경우 동적 메모리 제한을 컴퓨터의 RAM보다 약 10GB 작은 값으로 설정해야 합니다. 이를 통해 V-Ray는 동적 메모리에 데이터를 저장하고 운영  체제와 실행 중인 응용 프로그램을 위한 일부 메모리를 남길 수 있습니다.

가장 효율적으로 렌더링 할 수 있도록 렌더링 설정 > 설정 > Dyn.mem.limit에서 동적 메모리 제한을 컴퓨터의 RAM에서 다른 응용 프로그램에 필요한 RAM을 뺀 값으로 설정하고 로드된 씬과 함께 3ds Max 그 자체로 설정합니다(예를 들어 5~10GB 적게).        

엄격한  경계(Tight bounds) – 기본 활성화됨(V-Ray 수동 이후) – 활성화된 경우 V-Ray는 원래 메시에서 변위된 삼각형의 정확한 경계 볼륨을 계산합니다.    

이것은 변위 텍스처의 사전 샘플링을 필요로 하지만 텍스처가 큰 흑백 영역을 가지고 있다면 렌더링 속도가 더 삘라집니다. 그러나 변위 텍스처가 느리게  평가되고 완전한 흑백 간에 차이가 많이 나는 경우에는 이 옵션을 해제하는 것이 더 빠를 수 있습니다. 꺼진 경우 V-Ray는 최악의 경우 경계 볼륨을 가정하고 텍스처를 미리 샘플링하지 않습니다.    

변위를 미리 계산하는 데 너무 오래 걸리므로 V-Ray가 실제로 필요한 경우에만 변위를 샘플링할 때 이 옵션을 사용할 수 있습니다.    

TIP :  변위에 대한 사전 샘플링 단계는 변위된 형상에 대한 보다 정확한 경계 상자를 결정하는 데 사용됩니다. 변위 수정자에서 "엄격한  경계" 옵션을 해제한 경우 이 옵션을 건너뛸 수 있습니다. 특히 잔디, 체커 등과 같이 규칙적인 변위 맵이 다소 있는 경우 이  옵션을 끄면 렌더링 프로세스의 초기 부분이 빨라질 수 있습니다.    

캐시 노멀 –  기본 사용 안 함 - 이 옵션이 활성화 되면 V-Ray에서 새로 생성된 각 정점의 노멀에 대한 정보를 생성하고 저장합니다. 이렇게 하려면 추가 메모리가 필요하지만 렌더링 중에 음영 계산이 빨라집니다.

TIP :  가이드 첫 번째 부분에서 매우 낮은 모서리 길이로 설정된 3D 변위는 노멀 또는 범프 매핑과 유사한 효과를 남긴다고 언급했습니다. 표준 캐시 상자를 선택 해제하여 이 효과를 해제할 수 있습니다.    

경계 상자에 상대적임 – 기본값은 비활성화 되어있음 – 이 설정은 변위량을 모델의 경계 상자 크기에 바인딩하므로 최적화에 적합하지 않습니다.

요약

제대로 최적화되지 않은 변위 설정은 거의 항상 씬의 RAM 사용에 영향을 미칩니다. RAM 사용량이 3D 어플리케이션이 가상 메모리로 HDD의  메모리를 교체해야 하는 수준에 도달하면 렌더링 시간이 더 큰 영향을 받을 수 있습니다. 최악의 경우 씬이 그냥 멈춰 버립니다.        

변위를 최적화하는 첫 번째 규칙은 형상을 최적화하는 경우와 동일합니다. 원하는 효과를 얻기 위해서는 컴퓨터가 계산할 수 있는 최소한의 데이터를 줄 필요가 있습니다. V-Ray 변위는 카메라의 FOV에서 보이지 않는 경우에도 계산에 포함되기 때문에, 가장 쉬운 방법은 샷에서 보이지 않는 변위 모델의 모든 부분을 삭제하는 것입니다.    

선명한 결과 때문에 2D 변위를 선택하는 경우가 종종 많지만 고해상도 맵을 사용하면 RAM 사용량이 매우 빠르게 증가할 수 있습니다. 또한 너무 낮은  품질의 옵션이 설정된 2D 변위는 변위된 표면에 변위 맵 픽셀이 보이기 때문에 낮은 품질의 3D 변위보다 덜 자연스러워 보입니다.    

변위 지오메트리에 몇 개의 추가 부분들을 추가하는 것은 또한 RAM을 줄이고 사실상 렌더링 시간을 단축하는 데 도움이 됩니다. V-Ray는 한 번에 'bite'에서 지오메트리의 더 작은 부분에 대해 작업할 수 있습니다. 하지만 너무 촘촘한 메쉬로 설정하면 RAM이 다시 채워집니다.    

메모리 절약은 렌더링 시간이 약간 더 길어질 때 메모리의 5~10% 정도를 매우 빠르게 저장할 수 있는 방법입니다.
엄격한 경계, 정적 지오메트리 및 캐시 노멀과 같은 다른 옵션은 RAM 사용량을 낮추고 더 빠른 렌더링 시간 사이에서 선택할 수 있습니다.

출처

https://www.cggallery.com/tutorials/displacement/

https://docs.chaosgroup.com/display/VRAY3MAX/Displacement+Modifier+%7C+VRayDisplacementMod - V-Ray 3.6 문서

https://docs.chaosgroup.com/display/VRAY4MAX/VRayDisplacementMod - V-ray 4 문서

https://forums.chaosgroup.com/forum/ - 카오스 그룹 포럼

저자의 경험과 테스트

일러스트레이션 및 테스트에 사용된 텍스처는 https://www.textures.com/ https://texturehaven.com/에서 가져왔습니다.

저자

가라지팜 팀의 일원인 Michał Moś (일명 Andrew)가 작성하였고 가라지팜 에디토리얼 팀의 도움으로 편집되었습니다. 이 글에 사용된 대부분의 지식과 정보는 거의 10년 동안 렌더 팜을 운영한 광범위한 경험과 Autodesk Knowledge Network 및 Chaos Group V-ray 문서를 바탕으로 하였습니다. 테스트에 사용된 텍스처는 https://www.textures.com/ 및 https://3dbee.it/에서 가져왔습니다.

가라지팜 팀의 일원인 Michał Moś (일명 Andrew)는 애니메이션 및 문제 해결에서 기술 문서 작성에 이르는 3D 렌더링 주제 전문가 입니다. 그는 CG 아티스트, 디자이너, 그리고 강사로 수많은 디자인 및 건축 회사에서 일했습니다. 3ds Max, C4D, V-Ray 및 Octane를 즐겨 사용하는 그는 그림 그리기, 창작 글짓기, 탁상용 RPG 게임을 좋아합니다.

https://michalmos.carbonmade.com
https://blog.garagefarm.net/

관련 포스트

Chat