이제 NVIDIA MDL 및 MaterialX 재질을 가져오고, 재질 편집기에서 노출된 매개변수를 조정하고, 세 가지 렌더 모드(OpenGL, CPU 레이트레이싱 및 GPU 레이트레이싱)에서 모두 렌더링할 수 있습니다. 또한 재질 거칠기 컨트롤을 보다 쉽게 제어할 수 있도록 0 - 1 범위의 지각적 선형 동작으로 변경했습니다.
동영상 캡션: VRED 2024에서는 전체 사용자 인터페이스를 현대화하고 재작업하기 시작했습니다. 또한 MaterialX 및 MDL 재질을 가져오는 기능이 추가되었습니다. 이를 통해 재질로 작업할 때 더 많은 옵션이 제공됩니다. 복잡한 재질 정의를 캡처할 수 있고 절차적인 방식으로 처리할 수 있습니다. 하지만 이것은 Autodesk 내부 및 외부와의 교환 가능성 개선을 위해 많은 응용프로그램에서 사용되는 개방형 표준입니다.
예를 들어 Nvidia 웹사이트에서 MDL 재질을 다운로드하고 AMD 웹사이트에서 MaterialX를 다운로드할 수 있습니다. 그 후에는 MaterialX 또는 MDL 재질을 만든 다음 재질 정의를 로드합니다. 이제 사용 가능한 모든 편집 가능 매개변수가 표시됩니다. 이는 재질 작업 시 파이프라인을 크게 향상시킬 수 있습니다.
시청해 주셔서 감사합니다.
아래 링크를 클릭하여 다음 재질 라이브러리에 액세스합니다.
VRED에서는 NVIDIA MDL 또는 MaterialX 재질을 처음부터 만들 수 없으며 노드 기반 재질 편집기도 없습니다.
이러한 재질 라이브러리의 일부 재질은 방대하고 고급 매개변수 또는 최대 16개의 텍스처를 포함하며 특히 레이트레이싱 시 렌더링 성능을 크게 저하시킬 수 있으므로 렌더링 성능을 모니터링하는 것이 좋습니다.
MaterialX와 MDL은 일반 ASCII 텍스트 파일이므로 자체 재질 파일을 작성하려면 외부 편집기를 사용할 수 있어야 합니다.
MDL을 이해하고 사용하는 데 도움이 되는 추가 리소스는 NVIDIA MDL - 핸드북을 참조하십시오. 언어의 배경, 이론 및 실제 예를 제공합니다.
OpenGL 렌더러와 CPU 및 GPU 레이트레이서의 사전 계산된 조명 모드의 경우 실시간 구속 조건으로 인해 MDL 재질이 단순화된 모델로 처리됩니다. 이 단순화된 모델은 거칠기/금속성 PBR 모델을 기반으로 하며 일부 수정 사항을 포함합니다. MDL 재질은 비등방성/등방성 GGX BRDF로 모델링된 일반 금속, 반사광 및 분산 레이어로 단순화됩니다. 이러한 레이어 위에는 등방성 GGX BRDF로 모델링된 클리어 코트 레이어가 있습니다. 반사광 투과는 OpenGL에 대한 경계(굴절 또는 내부 반사 없음) 사이에서 IOR을 변경하지 않고 레이트레이서의 사전 계산된 조명 모드의 경계 사이에서 IOR을 완전히 고려하지 않고 비어-람베르트 법칙에 대한 결합 계수로 absorption_coefficient
및 scattering_coefficients
를 사용하여 모델링됩니다. OpenGL의 분산 투과는 하위 표면 분산의 단순화된 분산 라이트 근사값으로 근사화됩니다. 투명도는 알파 혼합으로 구현됩니다. 방출은 장면을 비추지 않습니다.
MDL 재질을 단순화하는 프로세스에서는 OpenGL 렌더러 및 CPU/GPU 레이트레이서의 사전 계산된 조명 모드 구속 조건을 기반으로 원본에 가까운 재질이 생성됩니다. 이 프로세스에서는 MDL의 일부 기능이 제거되거나 단순한 양식으로 전환됩니다.
다음 기능은 OpenGL 렌더러 및 CPU/GPU 레이트레이서 사전 계산 모드에서 지원되지 않습니다.
measured_bsdf
measured_curve_layer
, thin_film
, directional_factor
및 measured_curve_factor
다음 기능은 OpenGL 렌더러에서만 지원되지 않습니다.
다음 기능은 OpenGL 렌더러 및 CPU/GPU 레이트레이서 사전 계산 모드에서 부분적으로 지원됩니다.
microfacet_ggx_vcavities_bsdf
및 diffuse_reflection_bsdf
를 사용하여 최대한 근사화됩니다.또한 재질 거칠기 컨트롤을 보다 쉽게 제어할 수 있도록 0 - 1 범위의 지각적 선형 동작으로 변경했습니다. 이렇게 하면 VRED에서 다른 재질 라이브러리의 거칠기 값을 매핑할 수 있습니다. 기존 장면을 열 때 재질 모양은 변경되지 않지만 값은 새로운 0 - 1 범위로 조정됩니다.
이 새 거칠기 배율로 변환해야 하는 이전 재질이 있는 경우 수동 또는 Python을 사용하여 이 작업을 수행할 수 있습니다.
새 변환 값에 계산기를 사용합니다. 예를 들어, 특정 재질 유형(예: 가죽)에 VRED 거칠기 값 2.0을 사용한 경우 2024 버전에서 사용할 값을 계산해야 합니다.
특정 값을 가진 이전 버전의 재질을 2024로 가져오면 변환이 자동으로 수행되고 새 값이 표시됩니다.
이 공식을 사용하여 이전 거칠기 값을 새 거칠기 값으로 변환하거나 그 반대로 변환할 수 있습니다.
이전 값에서 새 값으로 - 새 값을 얻으려면 이전 거칠기 값을 40.0으로 나눈 다음 결과의 제곱근을 두 번 가져옵니다.
newRoughness = sqrt(sqrt(oldRoughness / 40.0))
새 값에서 이전 값으로 - 이전 값을 얻으려면 새 거칠기 값을 네 번 곱하고 그 값에 40.0을 곱합니다.
oldRoughness = (newRoughness ^4) * 40.0
재질 거칠기는 Python 스크립트를 사용하여 설정할 수 있습니다. VRED 2024에서는 값이 새 범위(0 - 1)를 사용할 것으로 예상합니다. VRED 2023 이하 버전에서는 값이 이전 범위(0 - 40)를 사용할 것으로 예상합니다.
따라서 이전 VRED 버전(2023.4 이하)용으로 작성된 스크립트는 특정 거칠기 값을 설정할 수 있습니다.
예:
leather = vrMaterialService.createMaterial("leather", vrMaterialTypes.Plastic)
leather.setRoughness(2.0) # legacy roughness value for VRED 2023
VRED 2024에서 이 스크립트를 사용할 때 이전 VRED 버전과 동일한 시각적 결과를 얻으려면 이 값을 변환해야 합니다. 이렇게 하려면 이전 공식을 다음 두 가지 Python 함수로 정의할 수 있습니다.
from math import sqrt, pow
def toNewRoughness(oldRoughness):
return sqrt(sqrt(oldRoughness / 40.0))
def toOldRoughness(newRoughness):
return pow(newRoughness, 4.0) * 40.0
따라서 VRED 2024의 경우 이렇게 하면 기존 거칠기 값이 2024 값으로 변환됩니다.
leather = vrMaterialService.createMaterial("leather", vrMaterialTypes.Plastic)
leather.setRoughness(toNewRoughness(2.0)) # convert legacy roughness value to 2024 value