Search Unity

프랑스 파리에 소재한 기업인 Light & Shadows는 HDRP를 사용하여 현실감이 뛰어난 실시간 이미지와 동영상을 제작하고 있습니다. 이번 블로그 게시물에서는 Light & Shadows에서 이처럼 멋진 결과물을 만들 수 있었던 과정을 소개합니다.

Light & Shadows 소개

유니티는 현실감 있는 비주얼을 실시간으로 구현하는 프로젝트를 수행하기 위해 Light & Shadows와 긴밀하게 협력해 왔습니다. Light & Shadows에서 작성한 이번 블로그 게시물에서는 Light & Shadows가 유니티의 새로운 HD 렌더 파이프라인을 사용하여 Lexus LC 500에 관한 동영상을 매우 현실감 있게 실시간으로 제작한 방법에 대해 기술적 정보를 제공합니다. Light & Shadows는 주요 업계에서 멋진 시각적 콘텐츠에 대한 수요가 증가하는 추세에 대응하고자 2009년에 설립되었습니다. 이 회사는 설립 이래로 비용은 절감하고 생산성을 높이면서, 고품질 렌더링을 비롯하여 고객에게 제공하는 새로운 기능을 지속적으로 도입하고 혁신함으로써 성공을 거두어 왔습니다. 다음 부분부터는 Light & Shadows에서 직접 작성한 내용입니다.

실시간 렌더링: 자동차 업계의 게임 체인저

기술이 발전함에 따라 자동차를 경험하고 판매하고 구매하는 방식이 변화하고 있습니다. PSA 카 컨피규레이터(car configurator) 및 Dassault Aviation과 수행한 프로젝트의 결과에서 확인할 수 있듯이 Light & Shadows는 자동차 시각화 및 오프라인 렌더링 분야에서 풍부한 경험을 보유하고 있습니다. 당사는 최근까지 다른 실시간 엔진을 주로 사용했지만, 이제 새로운 수준의 시각적 품질과 성능을 구현할 수 있는 HDRP를 사용하여 실시간 렌더링 결과를 제공하기 위해 유니티와 협력 관계를 맺었습니다. 이러한 새로운 기능을 구현해 보이기 위해 당사는 최근 Lexus LC500의 실시간 렌더링을 보여주는 동영상을 제작했습니다.

프로젝트 개요

CAD 데이터 준비 프로세스

LC500 프로젝트를 위해 Lexus에서는 보이는 모든 표면과 특정 내부 지오메트리에 대한 경계 표현 방식(B-rep) CAD 데이터에 액세스할 수 있는 권한을 당사에 제공했습니다. 덕분에 어려운 표면 모델링 작업이 필요 없었습니다. 하지만 이 모델은 매우 복잡하기 때문에 데이터를 구성하고 준비하는 자체가 쉬운 일이 아니었습니다. 이 문제를 해결하기 위해 당사는 PiXYZ 소프트웨어의 고급 테셀레이션 및 스크립터블 데이터 준비(scriptable data preparation) 기능을 선택했습니다.

대부분의 복잡한 제품이 흔히 그렇듯이 Lexus 모델도 수천 개에 달하는 자동차 부품을 표현하는 광범위한 오브젝트 계층으로 구성됩니다. 당사는 자동차의 외부와 내부를 분리하여 작업함으로써 유연성을 높이고, 모델의 두 부분을 동시에 작업할 수 있었습니다. 또한 파워트레인, 섀시, 차량 구조 부품을 비롯한 설계 콘텐츠도 분리할 수 있었습니다.

소스 데이터는 파일당 차량 한 대로 구성되어 있지 않고 동일 차량의 모든 지오메트릭 옵션을 포함하는 부품 모음으로 구성되어 있습니다. 이 소스 데이터 덕분에 데이터를 논리적으로 구성하여 Lexus 고객에게 제공되는 다양한 세부 모델(옵션)을 반영할 수 있었습니다. 당사는 XML 파일을 사용하여 소스 데이터의 각 부품을 관련된 옵션 로직에 논리적으로 연결했습니다. 이 XML을 커스텀 스크립트와 함께 사용하여 차량의 다양한 세부 모델을 각 옵션 조합의 시각적 표현이 손쉽게 조립될 수 있는 형식으로 분리할 수 있었습니다.

다양한 부품의 분리를 완료한 다음 테셀레이션을 진행했습니다. 이 프로세스는 CAD 데이터(B-rep)를 3ds Max 또는 Unity와 같은 애플리케이션에서 사용할 수 있는 테셀레이트된 형식(삼각형)으로 변환합니다. 당사는 PiXYZ 소프트웨어를 사용하여 비교적 경량의 테셀레이션 모델을 가지고도 뛰어난 시각적 품질을 구현할 수 있었습니다.

 

최적의 조명 베이킹을 구현하기 위한 옵션

당사는 자체적으로 설정한 매우 높은 수준의 시각적 품질을 구현하기 위해 라이트맵을 사용하여 조명 효과를 개선했습니다. 이 워크플로에 포함된 작업 중 하나가 자동차의 모든 단일 부품을 겹치지 않게 언래핑하는 것이었습니다. 언랩된 메시의 이음새(경계)를 최적으로 배치할 수 있도록 자동 언래핑 툴과 인터랙티브(수동) 언래핑을 함께 사용했습니다.

보이는 표면 전반에 UV 래핑

당사는 라이트맵을 계산하기 위해 두 가지 옵션, Unity의 빌트인 라이트매퍼를 직접 사용하는 것과, 3ds Max에서 Octane 또는 V-Ray와 같은 타사 렌더러를 사용하는 방법을 평가했습니다. 이 평가를 통해 각각의 방법으로 도출되는 품질 수준을 비교하고, Unity의 빌트인 라이트매퍼와 외부 라이트맵을 통합하는 워크플로를 테스트하기로 했습니다. 차량 내부 라이트맵은 Unity에서 직접 계산되었으며 설정을 제대로 지정할 경우 매우 만족스러운 결과가 나왔습니다. 직접 조명은 실시간 조명을 통해 제공되었고 간접 조명은 베이크되었습니다. 이 기술을 사용하면 자동차 핸들을 움직이고 도어를 여는 것과 같이 씬에서 상호 작용이 필요한 부분을 애니메이션화하는 경우에도 현실감 있는 비주얼을 제공할 수 있습니다. Unity의 빌트인 라이트매퍼를 사용하는 방법은 매우 간단했으며 결과도 우수했습니다.

라이트맵이 적용/적용되지 않은 내부

당사는 Octane 라이트매퍼를 사용하여 모델의 외부 오브젝트 각각에 대한 스페큘러 오클루젼을 상호작용하는 방식으로 조정해 보기로 했습니다. 분리된 UV 채널을 제대로 통합하기 위해 HDRP의 스탠다드 셰이더를 편집했습니다. 결과는 매우 만족스러웠으며 이를 통해 매우 현실감 있는 시각적 결과(특히 차체 패널 사이의 간격)를 구현할 수 있었습니다. 이 두 가지 방식을 사용하면서 외부 라이트매퍼의 유연성과 통합 라이트매퍼의 사용 용이성 사이의 절충점을 평가할 수 있었습니다. 최종적으로 두 가지 방식 모두 원하는 결과를 달성할 수 있다는 결론을 내렸습니다.

라이트맵이 적용/적용되지 않은 외부

실사와 같은 현실감 구현(포토리얼리즘) 위한 맞춤형 머티리얼

자동차 오프라인 렌더링 분야에서 쌓은 다년간의 경험을 통해 당사는 디퓨즈 맵, 하이트 맵, 스페큘러 맵, 노멀 맵 등의 형식으로 고해상도 텍스처 모음을 다수 축적하게 되었습니다. 이 Lexus 프로젝트에서 당사는 선호하는 맵을 사용하여 최상의 결과를 얻어보려고 했지만, 성능을 최적화하기 위해서는 Unity에서 단일 맵의 RGB 채널에 메탈릭, 평활도(smoothness) 및 AO 맵을 결합해야 했습니다. 이 방식으로 성능을 최적화할 수 있긴 하지만 맵과 셰이더를 정밀하게 상호 미세 조정해야 하는 어려움이 있었습니다. 이 프로젝트를 시작했을 당시에는 HDRP에서 셰이더 그래프를 사용할 수 없었기 때문에 당사는 스탠다드 HDRP 셰이더에서 텍스처 각각의 맵을 독립적으로 직접 로드하고 미세 조정할 수 있도록 커스텀 텍스처 에디터 툴을 만들어 달라고 개발팀에 요청했습니다. 이 에디터 툴을 사용하여 Unity에서 직접 머티리얼을 미세 조정할 수 있게 되어 매우 효율적으로 작업할 수 있었습니다. 이제는 HDRP에서 셰이더 그래프를 사용할 수 있으므로 모든 Unity 고객이 이 기능을 이용할 수 있습니다.

커스텀 텍스처 편집

포스트 프로세싱

포스트 프로세싱은 3D 씬에 영화와 유사하며 현실적인 느낌을 부여하는 데 꼭 필요한 작업입니다. HDRP에서는 컬러 그레이딩, 블룸, 비네팅, 뎁스오브필드(피사계심도) 등을 비롯하여 최종 씬의 모습을 미세 조정할 수 있는 다양한 옵션을 제공합니다.

포스트 프로세싱이 적용/적용되지 않은 도어 내부

뎁스오브필드는 현실적인 시각화를 구현하는 데 필수적인 시각 효과입니다. 이 효과는 보는 사람이 특정 영역에 집중하여 씬에 몰입할 수 있게 해 줍니다. 실시간 앱 내에서 뎁스오브필드 포커스 포인트에 고정 값을 적용하면 자연스럽지 않은 결과가 도출되므로 당사는 카메라 앞에서 가장 가까운 오브젝트에 포커스를 자동으로 설정하는 소형 카메라 스크립트를 만들었습니다. 가장 가까운 오브젝트를 결정하기 위해 광선을 씬 내부로 드리우는 작업은 Unity에서 매우 쉽게 수행할 수 있었습니다.

뎁스오브필드 효과가 적용/적용되지 않은 내부

중요한 디테일

당사는 Unity의 시네머신을 사용하여 미리 정의된 카메라 경로가 있는 시네마틱 쇼케이스 모드의 일종인 “데모” 모드를 만들었습니다. 이 모드는 자동차를 현재 조작하는 사람이 없는 경우라도 제품의 주요 특징을 보여줍니다.

자동차를 정확히 표현할 수 있도록 다양한 구성을 관리하는 방법이 제공되었습니다. 모든 세부 모델이 정확하게 정의되도록 하기 위해서는 런타임(실행 가능) 앱에서 뿐만 아니라 Unity 에디터 내에서도 세부 모델 간에 전환해야 할 필요가 있었습니다. 이를 위해 “씬 상태”를 기록하고 자동으로 머티리얼을 할당하는 구성 관리 스크립트를 만들었습니다.

세부 모델 구성 로직

네 가지 서로 다른 내부 세부 모델

향후 계획

이 프로젝트를 통해 최고 수준의 시각적 품질을 요구하는 새로운 고객 프로젝트를 진행할 때 HDRP를 사용하면 원하는 결과를 얻을 수 있다는 확신을 갖게 되었습니다. 데이터 준비에 필요한 PiXYZ, Unity의 최신 렌더링, 시네마틱, 포스트 프로세싱 툴, 그리고 Light & Shadows의 커스텀 툴 및 스크립트를 함께 사용하면 새로운 프로젝트를 매우 효율적으로 배포할 수 있습니다.

이 블로그 게시물을 작성하고 동영상 제작에 많은 수고를 해 주신 Light & Shadows에 감사드립니다. 자동차 및 운수 산업용 유니티 솔루션에 대한 자세한 내용은 여기에서 확인하실 수 있습니다.

 

37 코멘트

코멘트 구독

코멘트를 달 수 없습니다.

  1. 28.03.2017

  2. 5/24/2018

  3. Wow, nice showcase, this is really amazing! Best practice in realtime!!!

    How did you solve the UV unwrapping, you wrote that you used ‘automatic unwrapping tools together with interactive (manual) unwrapping’… Which tools did you use? Can this be done in PiXYZ or can you recommend any tools to do such tasks?

    Cheers

    1. Edward Martin

      2월 7, 2019 2:26 오후

      Hi Joe, in this specific case automatic unwrapping was done with the Unwrella plugin within Autodesk 3ds Max (for lightmaps), and manual unwrapping was done manually with built-in 3ds Max tools.

  4. One thing I do not understand, is that how could they do that in VR with the current version of Unity and HDRP that is not actually ready for VR ? (The video say VR Mode at the beginning.)

    1. Edward Martin

      2월 7, 2019 2:32 오후

      Hi Jonathan, we’ve demoed VR in HDRP already, starting at SIGGRAPH 2018. Instructions for doing this are at https://github.com/Unity-Technologies/ScriptableRenderPipeline/wiki/VR-in-HDRP. I’d also encourage you to try out the 2019.1 beta https://github.com/Unity-Technologies/ScriptableRenderPipeline/wiki/VR-in-HDRP.

  5. If even the professional CGI studios don’t want to use your merged map approach, you need to take the hint.
    Nobody who uses a standard shader is packing their maps in RGB channels. Professionals who merge maps don’t use a standard shader, all you do is make quick tests very tedious and add a burden of knowledge 90% of users won’t understand or don’t even have a means of achieving (as it requires a software like Photoshop)

    1. That said, the Demo was very impressive and surely the best ive seen achieved in realtime so far, most offline GPU renderers couldn’t do really better

      1. Please take a look at the Stack Lit shader included with HDRP. Does this cover your requirements? It has separate texture channels like you are suggesting. It also also support for Clear Coat which makes it great for Car Paint materials.

      2. Alex is exactly right – the new Stack Lit shader in HDRP addresses this issue, and adds clear coat as well. It produces great results, especially for carpaint. The (soon to be released) Measured Materials Library includes Stack Lit materials. We think you’ll find it very useful for projects like this.

        1. Could you please tell me where to select and use the Stack Lit shader? Is it included in HDRP 4.9? I’ve tried Unity 2018.3 and the latest beta 2019 with HDRP 5.2.3 but could not find the Stack Lit shader in the Material menu? Or is it meant to be created and edited with shader graph, there I found the option “StackLit Graph”?! I assumed Stack Lit shader is something like the default HDRP Lit shader…

  6. First of all a Really Great! demo of Unity’s HDRP. However there are few things we unity should also include in its LIT shader such as separate slot for metallic, smoothness and AO maps. For now it a bit difficult to edit and reuse the textures.
    I am also waiting for a proper Car Paint Shader in HDRP.
    For those who wants to learn more about HD Render Pipeline I have started a you tube series on HDRP.
    If anybody is interested please watch it here.
    https://youtu.be/Ua08A3kMJWY

    1. Edward Martin

      2월 7, 2019 2:44 오후

      The new Stack Lit shader is the answer to your question. Better yet, we’ve now unveiled the first materials library supporting Stack Lit, including a cool new carpaint material. These can be edited in Shader Graph so that you can customize materials to meet your specific needs. Look for more details on the blog soon, and I’m interested in your feedback! https://assetstore.unity.com/packages/2d/textures-materials/unity-measured-materials-library-138814

  7. I would like to know more about the modification of the render you performed.

    1. There was no modification to the rendering pipeline, this project used the (2018.2) preview of HDRP available to all Unity customers. As mentioned in the article, Light & Shadows created some custom materials using their own process, since Shader Graph became available for HDRP in 2018.3, after this project was completed.

      1. Are they using StackLit shader?

        1. Edward Martin

          2월 7, 2019 3:02 오후

          Yes, Light & Shadows used an early version of the Stack Lit shader. Since then, we’ve made some significant improvements to Stack Lit, and we used Stack Lit for the new HDRP version of the Measured Materials Library.

      2. Does StackLit suitable for game in terms of performance?

        1. Yes, it is. Stack Lit has slightly higher computational demands than Lit, but in practice it performs very well. I’d encourage you to try it out for yourself. Note that Stack Lit is HDRP only.

  8. Hey, I just published an article about improving visual quality within Unity, using tools such as post processing and shader graph. I thought people here might find it helpful. Please let me know if you have any thoughts and if you liked it –

    https://www.linkedin.com/pulse/programmer-art-unity-7-techniques-achieve-impressive-divij-sood/

    1. Very cool, Divij! What I love about working at Unity is learning about all of the amazing ways in which Unity can be adapted to nearly any application a person can imagine. I like what you did to take a data viz problem and turn it into a visually engaging project.

      1. Thanks Edward, I’m glad you liked it! I was tasked to do this at my job – my company wants to experiment with biology inspired AI, and this worm is an inspiration for everyone. It was a different challenge for me, that’s for sure.

  9. DOF is the thing that should never exist – neither in gamedev, nor in archvis! =\
    Let my eyes decide what to look at!

  10. 2018.3 is out since more than a month, but there’s no trace of the promissed car materials yet.

    1. Hi Besjan, we’re very close to releasing the new measured materials library. We’re wrapping up some documentation now. It will be worth the wait!

      1. Cool, thanks.

        1. Edward Martin

          2월 7, 2019 2:45 오후

          Hi Besjan, I’m happy to tell you that the measured materials are now available (for HDRP / Stack Lit)! https://assetstore.unity.com/packages/2d/textures-materials/unity-measured-materials-library-138814

  11. Really nice.
    Will you show the process of creation this ?
    Also there is a bug with texture in video (1:11) around safe belt hole ;)

    1. Hi Denis, good eye! I think that is a shadow at 1:11. If you’re interested in learning more about the process, please reach out to Light & Shadows.

  12. Very nice.

    I have said Unity should provide a basic shader that doesn’t read the metallic from an alpha, but they expect it to be in an alpha channel for some reason, unlike any other app on the planet…

    1. Also, every HD material website provides them as separate maps.

    2. Exactly this. The layered map approach is a very poor choice for a standard shader. Nobody who actually layers maps uses a standard shader. All it does it makes quick tests extremely tedious and confuse new users.

      1. Please take a look at the Stack Lit shader included with HDRP. Does this cover your requirements? It has separate texture channels like you are suggesting. It also also support for Clear Coat which makes it great for Car Paint materials.

        1. Could you please tell me where to select and use the Stack Lit shader? Is it included in HDRP 4.9? I’ve tried Unity 2018.3 and the latest beta 2019 with HDRP 5.2.3 but could not find the Stack Lit shader in the Material menu? Or is it meant to be created and edited with shader graph, there I found the option “StackLit Graph”?! I assumed Stack Lit shader is something like the default HDRP Lit shader…

        2. Edward Martin

          2월 7, 2019 5:07 오후

          I’m replying to Martin … please try out the new materials library at https://assetstore.unity.com/packages/2d/textures-materials/unity-measured-materials-library-138814. I think it will solve your question!