게임의 기하학적 LOD에서 최첨단 기술은 무엇입니까?


15

현대 게임은 캐릭터, 지형 및 잎과 같은 오브젝트 메시에 대해 지오메트리 레벨을 어떻게 상세하게합니까? 내 질문에는 두 부분이 있습니다.

  1. 자산 파이프 라인은 어떤 모습입니까? 아티스트가 나중에 소멸되는 하이 폴리 모델을 제작합니까? 그렇다면 어떤 데시 메이션 알고리즘이 가장 많이 사용됩니까? LOD 메시는 때때로 손으로 이루어 집니까?
  2. 런타임에 엔진이 다른 객체 LOD간에 어떻게 전환합니까? 부드럽고 점진적인 전환이 있습니까?

답은 "다른 스튜디오는 다른 기술을 사용합니다." 그렇다면 가장 일반적인 관행 중 일부를 식별하십시오. 특정 예제를 다루는 백서 / 슬라이드를 알려 주시면 좋을 것입니다.


1
실시간 렌더링에서 SIGGRAPH 2014의 발전은 call of duty의 세분화 표면에 대해 정말 흥미로운 이야기입니다. 당신은 그것을 확인해야합니다. 낮은 폴리로 만들어진 높은 폴리 메시 대신, 분석적으로 형태를 정의하고 필요에 따라 더 많은 삼각형을 추가했습니다
Alan Wolfe

LOD 알고리즘과 데이터 구조에서 최신 기술에 대해 이야기 할 수 있지만, 현대 게임이 구체적으로 어떻게 수행되는지에 대한 질문이 있다면 gamedev.se에서 더 운이 좋을 것입니다. gamedev.stackexchange.com
가명

3
의심 스럽다. 게임 개발자는 매우 그래픽 조명입니다. 대부분의 경로 찾기 및 고정 프레임 속도 질문과 함께 단일 및 Java 질문입니다 .p
Alan Wolfe

1
@Alan, Activision은 많은 최신 알고리즘을 사용하여 아이소 메트릭 Sprite 기반이 아닌 실제 3D 전략 게임을 만들었습니다.하지만 이것으로 괜찮 았지만 대구에서 훌륭하게 일했지만 여전히 약간 느리고 게으 릅니다. 적은 수의 자산으로 초기 수준에서도 (Iphone 5s에서 모바일 게임에 대해 이야기하고 있습니다). 그런 게임을 성공적으로 작성하려면 OpenGLES 전문가 기능과 기본 레이어를 배워야한다고 생각합니다.
Iman

콘솔 버전의 콜 오브 듀티에 대해 이야기하고 있습니다.
Alan Wolfe

답변:


22

지오메트리 LOD의 경우 대부분의 게임은 미리 정의 된 여러 LOD 메시 사이를 전환하기 만하면됩니다. 예를 들어 "Infamous : Second Son"은 3 개의 LOD 메쉬 ( Adrian Bentley- "inFAMOUS : Second Son 엔진 사후 검사", GDC 2014 )를 사용하고 "Killzone : Shadow Fall"은 문자 당 7 개의 LOD 메쉬를 사용합니다 ( Michal Valient- "Killzone : Shadow fall) 사후 데모 ", Devstation2013 ). 대부분은 생성되지만 주인공과 같은 더 중요한 것은 손으로 만들 수 있습니다. 메시는 종종 인기있는 Simplygon 미들웨어를 사용하여 생성되지만 때로는 그래픽 아티스트가 선호하는 3D 패키지로 생성하기도합니다.

드로우 거리가 큰 게임은 단풍, 나무 및 높은 건물에 임 포스터를 추가로 사용합니다 ( Adrian Bentley- "inFAMOUS : Second Son engine postmortem", GDC 2014 ). 또한 일련의 객체를 하나로 대체하는 계층 적 LOD를 사용합니다. 예를 들어 "Just Cause 2"에서 트리는 먼저 일반 LOD 메시로 개별적으로 렌더링 된 다음 개별적으로 임 포스터로 그리고 마지막으로 병합 된 단일 포리스트 메시 ( Emil Persson, Joel de Vahl- "Populating a Massive Game World", Siggraph2013 ) 및 세계의 "일몰 오버 드라이브"먼 부분은 자동으로 생성 된 단일 자동 생성 메시 ( Elan Ruskin- "스트리밍 선셋 오버 드라이브의 오픈 월드", GDC2015 )로 대체 됩니다.

LOD 시스템의 또 다른 구성 요소는 머티리얼과 쉐이더의 단순화입니다. 예를 들어 "Killzone : Shadow Fall"은 원격 LOD에 대한 탄젠트 공간 및 노멀 매핑을 비활성화합니다 ( Michal Valient- "Killzone : Shadow fall demo postmortem", Devstation2013 ). 이는 일반적으로 LOD 당 전체적으로 셰이더 기능 세트를 비활성화하여 구현되지만 아티스트가 사용자 정의 셰이더를 생성 할 수있는 셰이더 그래프가있는 엔진의 경우 수동으로 수행해야합니다.

LOD의 전환을 위해 일부 게임은 단순히 메쉬와 부드러운 LOD 전환을 위해 디더링 일부 사용 전환 -이 메시를 렌더링하는 LOD 스위치의를 첫째 점차 페이드 아웃과의 두 번째 페이드 ( 시몬 schreibt 블로그 - "자객 크리드 3 - 디테일 정도 혼합" ). 클래식 CPU 프로그레시브 메시 기법은 값 비싼 메시 업데이트가 필요하고 GPU에 업로드해야하므로 사용되지 않습니다. 하드웨어 테셀레이션은 몇 가지 제목으로 사용되지만 속도가 느리고 일반적으로 사전 정의 된 형상 LOD를 대체 할 수 없으므로 가장 상세한 LOD를 다듬는 데에만 사용됩니다.

지형 LOD는 특정 속성을 활용하기 위해 별도로 처리됩니다. 지형 지오메트리 LOD는 일반적으로 클립 맵을 사용하여 구현됩니다 ( Marcin Gollent- "REDengine 3에서 랜드 스케이프 생성 및 렌더링" ). 재료 LOD를 지형 중 하나는 LOD를 메쉬 또는 가상 질감의 어떤 종류를 사용하는 유사하게 처리하는 "적응 형 가상 텍스쳐 렌더링에서 파 크라이 4 - 카 첸 .

마지막으로 실제 게임 LOD 파이프 라인을보고 싶다면 최신 게임 엔진 ( Unreal Engine 4- "LOD 생성 및 사용" , CryEgnine-Static LODUnity-LOD)에 대한 문서를 찾아보십시오 .


1
게임 엔진에는 일반적으로 사전 정의 된 메소드 세트가 있으며 실제로 LOD 알고리즘을 변경하기 위해 코어에 들어갈 수 없습니다. 내가 맞아? OpenGL 또는 SpriteKit 프레임 워크로 게임을 직접 작성하는 경우에 대해 이야기하고 있었지만 Unity 또는 Unreal에서 LOD 알고리즘을 사용자 정의 할 수 있는지 모르겠습니다. 가능합니까?
Iman

3

LOD (Level of Detail)는 서로 다른 디스플레이 스케일로 객체를 관리하는 것을 의미하며, 두 부분으로 나눌 수 있습니다. 그러나 그중 하나를 사용할 수 있으며 대부분의 경우 충분합니다.

  1. 크기 (표시 배율)에 따라 레이어 (동일한 유형의 객체 그룹)를 표시하거나 숨 깁니다.

  2. 일반화 (다각형을 단순화하는 알고리즘)라고하는 대수 지오 메리 기반 방법. 다음 그림을보십시오

    일반화

다각형 메쉬를 일반화 (간체 화)하는 가장 유명하고 효율적인 방법은 Descartes-Euler polyhedron theorem (수식 4.5 책을 참조하면 유감 입니다)으로 알려져 있으며 대부분의 공간 데이터베이스에서 사용됩니다 예를 들어 PostgreSQL의 PostGIS 모듈. 단순히 다각형의 작은면을 제거하고 매우 둥근면을 만듭니다. (사진 위)

게임에서 LOD를 구현하려면 확대 / 축소 작업 중에 맵의 규모 (장면)를 저장하고 관리해야합니다. 스케일은 0에서 무한대로 변경되며이를 다음과 같이 특정 수의 범위로 나눠야합니다.

  1. 1 / zero = 무한대 1/50
  2. 1/50에서 1/100
  3. 1/100에서 1/1000
  4. 1/1000 ~ 1 / 무한대 = 0

그런 다음 위의 각 범위에서 어떤 유형의 객체 (레이어)가 보이거나 보이지 않아야하는지 정의해야합니다. 예를 들어, 사용자가 네 번째 범위에있을 때 소화전 밸브와 같은 작은 유형의 물체는 그 규모로 매우 작고 식별 할 수 없으므로 표시하지 않아야합니다. 화면.

따라서 사용자가 확대 및 축소를 사용하여 확대율을 변경하면 위의 한계를 한 범위에서 다른 범위로 이동하고 게임은 이러한 표시 배율을 사용하여 장면에 객체를 표시하거나 숨겨서 세부 수준을 관리합니다. 이렇게하면 축소 작업 중에 객체가 갑자기 사라지는 별도의 솔루션을 만들 수 있지만 디스플레이 스케일과 확대 범위를 신중하게 정의하면 사용자는 아무 느낌도 느끼지 않습니다.

위의 4 가지 범위 그룹은 예일 뿐이며 시행 착오를 통해 자신의 사례에 가장 적합한 것을 찾아야합니다. 이에 대한 규칙은 없습니다.

때때로 게임은 즉시 자신의 LOD 방법 인 지하철 서퍼를 사용하여 멀리 떨어진 건물을 보여주기 위해 텍스처 사각형이없는 작은 것을 보여줍니다. 갑자기 가까워지면 텍스처가 생겨 게이머가 느끼게됩니다. 매우 중요한 프로젝션 시스템에 대해 이야기하지 않았으며 어떤 종류의 게임을 만들고 있는지에 대해서도 이야기하지 않았습니다.

그러나 openGl을 사용하여 전체 3D 게임을 구현하고 있으며 메쉬를 그래픽 하드웨어로 전송하기 전에 일부 메쉬를 필터링한다고 가정하면 버퍼 객체 및 정점 배열 (VBO, VAO)의 바인딩 / 바인딩 작업을 줄이는 데 도움이됩니다. OpenGl 다루기.

레이어 관리 만 사용하거나 Euler의 일반화 구현

대부분의 경우 일반화 알고리즘을 구현할 필요가 없으며 객체 필터링이 작동하기 만하면 필요한 효율성 (갱신 률)을 얻을 수 있지만 경우에 따라 완전히 달라집니다. 다각형의 작은 면만 제거하는 쉬운 알고리즘이지만 크기와 상수의 곱인 임계 값을 정의해야하므로 더 큰면이 훨씬 더 넓은 관점에서 필터링됩니다.

레이어 조작을 잊고 Eulers 일반화 알고리즘 만 구현하면 미리 정의 된 임계 값에 대해 각면과 선을 확인하고 화면에서 식별하기에 충분히 큰 경우에만 표시하는 매우 깔끔하고 연속적인 방법을 제공합니다.

추신 : 배율은 1 / 스케일과 같은 부동 소수점 수> 0이며 스케일은 일반적으로 <1이므로 게임에서 실제 길이를 갖기 때문에 <1입니다.


다운 유권자, 여전히 -1 인 경우 다시 투표 해주세요. 의견을 남겨주세요. 감사합니다
Iman

나는 공감하지 않았지만 나의 일부는 여기서 예술의 상태가 무엇인지 궁금해합니까? 그래서 투표도 할 수 없습니다.
joojaa

1
읽기가 어려웠고 IMHO는 게임의 LOD와 관련이 없기 때문에 하향 투표했습니다. 다시 생각한 후 upwoting하여 donwvote를 취소하고 내 자신의 답변을 추가하기로 결정했습니다.
Krzysztof Narkowicz

최첨단 기술은 매우 뛰어난 직무를 의미하지만 다양한 경우에 다른 방법으로 결과가 다르게 나타난다 고 가정합니다. 예를 들어 Call of duty에는 레이어 관리 및 밉 매핑이 있지만 Dear haunting (DH 2014)은 시차 및 밉 매핑이있는 배경을 사전에 일반화 한 것으로 사용합니다. 텍스처. 지하철 서퍼는 완전히 다른 이야기이며, 지하철 서퍼가 건물과 다른 도시 물체를 신중하게 그리거나 줌 또는 패닝하는 동안 콜 오브 듀티가 약간 느리더라도 모든 사람들에게 최첨단이라고 말합니다. 나는 그들의 경우 모두 최고라고 생각합니다.
Iman

3

Iman은 이미 완전한 답변을 준비했지만 그것에 무언가를 추가하고 싶습니다.

LOD는 두 가지 방법으로 수행 할 수 있습니다

  1. 계속해서 CLOD라고하며 다각형 메쉬 최적화
  2. 이 그룹에 속하는 것으로 간주되는 다각형 메쉬 최적화 이외의 거의 모든 알고리즘이 이산 적입니다.

예를 들어 밉 매핑은 위의 secound 그룹에 속하는 훌륭하고 빠르지 만 무겁습니다.

여기에서는 OpenGl을 사용하여 밉 매핑 및 구현 코드에 대한 좋은 설명을 찾을 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.