모델을 3DCoat 로 import 때 뷰포트 렌더러의 normal map 올바르게 표시되지 않는 경우가 있습니다. 하지만 다른 소프트웨어에서 모델을 내보내는 방식부터 시작됩니다.
노멀 맵은 소프트웨어에서 노멀 맵을 읽는 방법에 대한 음영 문제를 약간 해결할 수 있으며 이로 인해 문제가 눈에 덜 띄게 될 수 있지만 문제는 여전히 존재합니다. 실제 문제를 해결하는 데 도움이 되는 몇 가지 규칙을 적용하여 더 나은 노멀 맵을 베이킹하여 작업과 생활을 더 쉽게 만들어야 합니다.
이 규칙을 적용하지 않으면 일반적으로 대부분의 법선은 평균이었고 소수의 법선은 단단했습니다. 이는 보기에 이상했습니다. 그러나 이것이 분명히 문제의 주요 원인입니다. 모델에 대한 스무딩 그룹을 내보내는 방법과 다른 소프트웨어에서 해당 그룹을 읽는 방법입니다.
첫째, 상자는 부드러운 가장자리나 평균일 수 없으며 90° 각도이며, 무엇을 하든 단단한 가장자리로 설정되지 않으면 항상 이러한 조명 문제가 발생합니다. 과거에는 Marmoset과 같은 고급 베이킹 프로그램이 등장하기 전에는 항상 케이지를 만들어야 했고, 케이지는 평균 정점 법선을 갖는 것이므로 케이지를 사용하여 ‘평균’을 수행했습니다. 상자가 단단한 가장자리를 연상시키기 때문에 베이킹 시 오류를 일으키지 않고 하이 폴리를 검색합니다. 물론 이제 Marmoset에는 동일한 기능을 수행하는 “부드러운 케이지” 확인란이 있으므로 케이지가 실제로 필요한 경우가 아니면 케이지가 필요하지 않습니다.
따라서 여기에는 두 가지 ‘규칙’이 있으며 서로 연결되어 있습니다.
1. 90° 각도의 모델을 만들 때는 항상 단단해야 합니다. 물론 약간의 베벨을 수행하고 90° 각도 모서리를 피할 수도 있습니다. 이는 고해상도 모델의 모양을 밀접하게 따를 뿐만 아니라 상자의 부드러운 가장자리를 사용하여 더 보기 좋게 만들고 문제를 덜 일으키며 둥글고 더 예쁘게 만들 수 있습니다.
2. 문제를 방지하기 위해 단단한 가장자리(거의 90° 각도여야 함)는 항상 UV 에서 분할되어야 합니다. 모델에서는 실제로 눈에 띄지 않을 수도 있지만 거기에 있으며, 픽셀은 90° 각도로 만나고 픽셀이 어떻게 혼합될 수 있으며 서로 다르기 때문에 발생할 수 있는 작은 문제를 해결하기 위한 패딩과 같은 공간이 충분하지 않습니다. 예, 해상도와 UVs 및 기타 요소에 따라 달라지며 이로 인해 다른 것보다 더 눈에 띄게 될 수 있습니다. 하지만 예, 상자 작업을 하는 경우에는 90° 모서리를 모두 분할해야 합니다. 예, 이는 문제를 피하기 위해 6개의 상자 측면 = 6개의 섬을 의미합니다.
3DCoat 에 대해 이야기하고 사전 설정 및 기타 기능과 함께 작동하는 방법에 대해 이야기합니다. 내가 이해하는 것은 Blender 또는 Unity 와 같은 사전 설정을 사용하면 실제로 노멀 맵을 처리하는 방법뿐만 아니라 녹색 반전 여부와 함께 미리 정의된 파일을 사용한다는 것입니다. 또한 접선 공간, 삼각측량, 법선 및 기타 옵션을 내보내는 방법도 있습니다. 알 수 없음 옵션을 사용하면 환경설정에서 설정한 항목을 사용할 수 있습니다.
C:Program Files 3DCoat-VXXXToolsPresetsExtTools로 이동하면 XML 파일과 Unity Blender 와 어떻게 다른지 볼 수 있습니다. unity LengyelAreaAngleWeightedSpace로 설정되어 있는 동안 Blender 사전 설정은 MikkTSpace를 사용하기 때문입니다. 그것이 유일한 차이점입니다. 그러나 다르게 해석되기 때문에 분명히 당신이 그것을 볼 수 있을 만큼 충분합니다. 기술적으로는 아무 것도 영향을 미치지 않아야 하며 ‘DirectX’ 또는 ‘OpenGL’인 경우 normal map 읽는 방식에만 영향을 주어야 합니다. 그러나 셰이딩 문제의 근본은 normal map 에 관한 것이 아니라 모델에 관한 것이며 그렇게 될 것입니다. 항상 모델이 되어주세요.
UVs 규칙을 제쳐두고, 이로 인해 발생하는 문제는 미미합니다. 이를 알고 있다면 UV 공간을 절약하고 가장자리와 발생할 수 있는 문제를 무시하는 것이 너무 가까이 다가가야 하므로 올바르게 수행하는 것보다 선택하는 것입니다. 문제를 알아차리기 위해. 때로는 가장자리 사이에 큰 간격이 있는 경우가 나에게 발생했습니다.
상자를 평균 정점 법선 또는 소프트로 가질 수 없는 경우 90° 각도 가장자리이기 때문에 가장자리가 단단한 상자처럼 보여야 합니다. 부드러운 가장자리를 사용하려면 경사를 만들어야 합니다.
박서는 가장자리가 100% 딱딱해야 하고, 실린더는 상단과 하단이 단단해야 하며 측면은 부드러워야 합니다.
낮은 폴리 모델의 경우 베벨을 만드는 것이 좋습니다. 특히 오늘날에는 베벨이 전혀 없는 상자를 가질 이유가 없는 오늘날에는 아주 작은 베벨만으로도 큰 차이를 만들 수 있습니다.
3DCoat 사전 설정은 알 수 없음을 사용하여 수동으로 선택할 수도 있는 작은 변형일 뿐이며 사전 설정이 필요하지 않습니다. 이는 단지 3DCoat normal map 과 모델을 해석하는 데 도움을 주기 위한 것일 뿐이지만 저는 Unity 설정을 절대 신뢰하지 않습니다. MikkTSpace로 설정하세요. 하지만 내 요점은 단지 OpenGL과 DirectX normal map 에 관한 것이 아니라는 것입니다.
따라서 일반적으로 페인팅에 사용되는 3DCoat 사용하면 모든 것이 잘 작동하지만 이는 로우 폴리의 모든 것도 좋은지 확인하기 때문입니다. 즉, 좋은 노멀 맵을 만들고 좋은 로우 폴리곤이 필요한 모든 곳에서 작동하도록 하기 위함입니다. 당신이 만든 하이 폴리 디테일을 포착할 수 있는 폴리. 마법은 없습니다. 스무딩 그룹, UVs 등 모든 것을 확인하기 때문에 작동합니다.
내 말은 90° 모서리가 있는 모델은 자동으로 하드 모서리로 설정되어야 한다는 것입니다. 다른 방법은 없으며 그게 전부입니다. 큐브가 이 경우와 같이 6개의 면을 가지고 있는지 아니면 1000개의 세분화된 너비, 높이 및 깊이를 가지고 있는지는 중요하지 않습니다. 상자의 90° 각도를 하드 가장자리로 설정하지 않으면 90°이지만 소프트 등으로 설정된 가장자리에 항상 이상한 음영이 표시됩니다.
전체 개체 세트에 단일 스무딩 그룹을 적용하는 경우… 이는 잘못된 것입니다. 상자에 부드러운 가장자리를 만들 수 없기 때문입니다. 특히 개체가 6개의 면을 가진 큐브인 경우 더욱 그렇습니다.
특히 단순한 6개의 다각형 상자가 있는 경우 상자를 사용하려면 모든 측면을 Hard Edges로 설정하는 것과 같은 것을 “부드럽게” 할 수 없습니다 . 또는 다른 유일한 방법은 가장자리 주위에 경사를 추가하여 90° 각도를 거칠게 깨뜨린 다음 부드럽게 설정하는 것입니다. 문제를 숨기기 위해 normal map Baking 것은 해결책이 아닙니다. 조금 더 좋아 보일 수 있지만 모델에 음영 오류가 여전히 존재합니다. 원통의 측면에도 부드러운 가장자리가 있어야 하며 경사를 추가하지 않는 한 위쪽 및 아래쪽 면에는 단단한 가장자리로 설정되어야 합니다.
그래서 질문은: 여전히 모든 것을 단일 스무딩 그룹으로 유지하시겠습니까? 제대로 작업하고 딱딱한 가장자리와 부드러운 가장자리를 부드럽게 설정하거나 90° 각도마다 베벨을 추가하지 않으면 문제가 해결되지 않으며 normal map 으로 문제를 숨기고 문제 없는 척하면 됩니다. 존재합니다.
여기에 문제가 무엇인지 적절하게 설명하여 향후 normal map 베이킹에 도움이 될 수 있기를 바랍니다.
행운을 빌며 좋은 하루 보내세요!