Digital_Twin/Omniverse

옵니버스에 들어가기 앞서

초짜공대생 2025. 10. 10. 14:51

물리 엔진을 적용한 대용량 시뮬레이션을 구현 하는 것은 기업에서도, 학교에서도 연구소에서도 매우 중요한 과제 중 하나이다.

미국에서 매년 열리는 HPC/SC에서도, Science journal이나 Nature에서조차 novelty가 매우 큰 영역으로 분류된다.

 

Entity, Gameobject, Agent등 여러 물리 엔진 툴에서 부르는 우리가 실험하고자 하는 '오브젝트'들은 최소 수천개부터 수억개까지 생성하고 각각의 현실과 같은 물리 효과를 부여해야하며 관리해야하는 상황에 놓이게 된다. 

각자 가진 컴퓨터의 사양의 한계로 인해 제대로 생성하지 못하는 현상도 발생하기도 하며, 아무리 좋은 사양의 하드웨어라 하더라도 연구가 불가능한 현상이 발생하게 된다.


Unity와 같은 물리엔진에서는 대용량 시뮬레이션을 위해서 기존의 객체지향 프로그래밍(OOP)의 한계를 벗어나, 데이터 지향 프로그래밍 (DOTS)의 ECS(Entitiy-Component-System)로 발전하고 현재 계속적으로 개발되고 있는 부분이다. Job System과 C# Burst로 인해서 기존 Unity 시뮬레이션의 로드를 수백배 감소시켰고, 실제로 2023년 6월에 Entities 1.0버전이 릴리즈되면서 개발자들이 사용하기 적합한 상황이 되었다. 

 

또한, Unity에서는 강화학습을 위한 ml-agent 역시 꾸준하게 개발되고 있는 상황이다.

기본적으로 ddpg,sac,ppo와 같은 강화학습 알고리즘을 지원하며, 소켓 통신으로 커스텀 알고리즘을 제작하여 유니티 에디터, 또는 빌드된 상태에서 학습을 진행할 수도 있다.

 

Unity가 이러한 강점을 가지고 있는데 Unreal Engine과 Omniverse를 굳이 공부해야하는 필요성을 느끼게 될 수는 있다.

Unreal Engine의 경우, 기본적으로 C# 베이스의 Unity가 아닌 C++ 베이스이기 때문에 더욱 빠른 처리를 기대할 수 있으며, 그래픽적으로 더욱 큰 우월성을 Unity보다 보여주고 있다. 특히 UE5의 경우에는 압도적인 퍼포먼먼스를 보여주어, 이전에 게임들이 UE5로 재개발되는 모습들을 찾아볼 수 있다. Omniverse의 경우에는 실제로 과학 플랫폼에서 매우 정확한 성능을 보여준다. Unity와 Unreal Engine, Havok physics 등을 보면 매우 빠르고 real-time이거나 근접하게 되지만 approximation의 한계는 존재한다. 연구자로서 제일 정확한 물리 효과를 기대하기 위해서는 real-time이 필요하지 않는다고 하면 Omniverse는 꽤 괜찮은 선택일 수 있을 것 같다.

 

물론 Omniverse는 이제 released되어 많은 자료를 찾아보기는 힘들다. 특히 Omniverse의 경우에는 기본적으로 여러 tool들이 종합적으로 합쳐진 플랫폼이기 때문에 코드의 동작 과정 뿐만이 아니라, 아예 새롭게 시작해야하는 부분들이 많다.

하지만, 공부해야하는 이유는 여러 차량 회사(BMW)들이나 정확성을 중요시하는 NASA와 같이 산업계에서 많이 사용하기 때문에 취업이든 연구를 하던 간에 알아야 할 필요성은 매우 중요해보인다.