3D 타이틀에서 레벨 컨텐츠에 대한 컨텐츠 예산 (예 : 다각형 수)을 설정하는 방법은 무엇입니까?


13

응답에서 swquinn이 질문에 대답은 내가 답변을 듣고 싶습니다 것이 더 적절한 질문을 제기했다. 나는 우리 자신의 전략을 게시 할 것입니다 (나는 대답으로 받아들이지 않을 것이라고 약속합니다).하지만 다른 사람들의 의견을 듣고 싶습니다.

구체적으로 : 콘텐츠 팀을위한 합리적인 예산을 설정하는 방법은 무엇입니까? 일반적으로 개발에서 가장 먼저 제기되는 질문 중 하나는 다각형 예산이 무엇입니까? 물론 요즘 버텍스 / 폴리 카운트만으로도 제한 요인이 아니라 쉐이더 복잡성, 채우기 속도, 조명 복잡성이 모두 작용하는 경우는 거의 없습니다.

콘텐츠 팀이 원하는 것은 콘텐츠가 실제로 엔진에 들어가면 너무 무겁지 않을 것이라는 합리적인 기대를 가질 수 있도록하기위한 어려운 숫자 / 제한입니다. '의존하다'가 특히 유용한 대답이 아니라는 점을 감안할 때 a) 오도하거나 b) 잘못하지 않고 실행 가능한 제한을 줄 수있는 전략을 듣고 싶습니다.


1
이것은 "제작"보다 "제작"입니다.
Patrick Hughes

답변:


5

필자의 이해를 바탕으로 스키닝 및 리깅 된 모델의 세부 정보를 추가하는 것보다 모델의 복잡성을 줄이는 것이 훨씬 쉽습니다. 일부 회사는 매우 상세한 자산을 풀링하고 상황에 따라 규모를 축소함으로써이를 활용한다는 것을 알고 있습니다.

Valve는이를 NPC와 함께합니다. NPC는 어떤 종류의 매핑 없이도 극도로 상세하게 모델링 된 다음 현재 모델이 수용 할 수있는 수준으로 상세 수준을 축소하고 세부 모델을 기반으로 적용되는 다양한 매핑 기술과 같은 트릭을 자동으로 생성합니다.

또한 자산을 다시 만들 필요가 없으며 각 새 프로젝트마다 tweek만으로 향후 교정에 도움이됩니다. 또한 자산 개발을 시작하기 전에 팀이 상황에 맞는 벤치마킹을 수행 할 때까지 기다릴 필요가 없다는 장점도 있습니다. 아티스트는 1 일부터 완전히 참여할 수 있습니다.


2
하지만 실제로 예산을 제공하는 것은 아닙니다. "필요한만큼 복잡하게 만들고 나중에 축소 할 것"은 생산 전략입니다. :-/
MrCranky

16

자, 우리의 전략은 :

  • 최종 콘텐츠에 적합한 척도의 자리 표시 자 지오메트리를 구성하십시오. 건물이나 캐릭터가 될 수 있습니다. 최종 내용과 같이 보일 필요는 없으며 상자 / 구 등이 될 수 있지만 적절한 수의 다각형을 갖도록 세분화해야합니다. 캐릭터를 수행하는 경우 대표 수의 뼈를 갖도록하십시오.
  • 또는 다른 사람의 지오메트리를 사용하십시오. 품질 수준을 맞추려는 타이틀이있는 경우 DirectX 장면 그래버를 사용하여 모델을 잡을 수있는 방법을 찾으십시오.
  • 지오메트리에 대표 셰이더가 있는지 확인하십시오. 여러 텍스처를 혼합하려는 경우 텍스처가 모두 단일 색상 인 경우에도 그렇게하십시오. 텍스처가 모두 컬러 인 경우에도 텍스처가 사소한 해상도인지 확인하십시오.
  • 적당한 수의 조명을 넣습니다.
  • 카메라를 현실감있는 장소에 놓고 최대한 많은 지오메트리를 가리 킵니다 (예 : 레벨을 바라 보는 언덕 위에 서 있음)
  • 가장 느리고 가장 빠른 대상 하드웨어에 장면을로드하고 FPS를 측정하십시오.
  • 트레이드 오프의 의미를 알기 위해 지오메트리 / 라이트 / 쉐이더 / 텍스처 해상도의 양을 다양하게 조정하십시오 (예 : 12 개의 라이트를 추가 할 수는 있지만 폴리 카운트를 반으로 줄여야합니다).

마지막으로, 당신의 숫자와 보수적입니다. 렌더링은 게임에서해야 할 유일한 일이 아니므로 렌더링에 소비 할 프레임의 비율을 결정하고 목표를 정하십시오. 예를 들어 프레임의 3 분의 2를 30fps 렌더링으로 보내려면 테스트에서 1s / 22ms (45fps)를 대상으로합니다.

그 중에서도 모범적 인 장면을 제시 할 수 있어야합니다. 예를 들어, 여기에는 200K 다각형, 5 개의 정적 조명 및 모델 당 3 개의 동적 조명, 15 개의 50K 폴리곤 및 30 개의 뼈가있는 장면이 있으며 60fps에서 실행되며 30MB의 메모리를 차지합니다.


2
tl; dr : 스스로 벤치마킹;)
Nicol Bolas

+1 이것은 실제로 구축하고 측정하는 유일한 방법입니다.
Patrick Hughes

정말? 우리가 생각하지 못한 똑똑하고 저렴한 솔루션이 있기를 바랐습니다.
MrCranky

@MrCranky 불행히도, 예. 기존 엔진을 사용하는 경우 기존 샘플 데이터를 측정하고이를 기준으로 사용하여 특히 게임의 숫자를 사용자 지정하여 프로세스를 바로 시작할 수 있습니다. 모든 게임이 다릅니다.
Patrick Hughes

4

정점 수

나는 "폴리곤 수"를 15 년 이상 연구했습니다. 특히 최신 소프트웨어 및 하드웨어를 사용하여 한계를 몇 개나 알 수있는 엄격한 방법은 없습니다. 한계는 전체 레벨에서 4,000 개의 삼각형 만 지원하는 엔진에서 훨씬 더 유용했습니다. 이제 게임 환경에서 대부분의 오브젝트가 개별적으로이를 초과한다는 것을 알 수 있습니다.

궁극적으로 중요한 것은 엔진이 다각형 스트립으로 수행하는 작업입니다.

엔진이 각 모델을 렌더링 할 때 UV 매핑 된 좌표, 삼각형에 표시된 텍스처 / 재료를 사용하고 삼각형 스트립을 만듭니다. 대부분의 경우 삼각형 팬은 삼각형마다 별도의 삼각형 스트립으로 나뉩니다. 이것은 삼각형 스트립의 수를 증가시켜 성능을 감소시킵니다.

이것을 고정시키는 가장 좋은 예는 실린더의 평평한 상단입니다. 3D 패키지는 일반적으로 중앙에 정점이있는 삼각형 팬을 설정합니다. 모서리와 중심 정점을 삭제 한 다음면에 사각형을 만듭니다. 그런 다음 다각형 수를 변경하지 않고 여러 단면 스트립 대신 단일 삼각형 스트립으로 삼각 측량해야합니다.

폴리곤 수를 가이드로 삼아 모델링 방법을 관리하고 메시를 UV 매핑합니다. UV 매핑이 더 유리할 때 메시의 분할이 줄어 듭니다.

다음으로 노멀 맵으로 위장 할 수있는 것을 고려하십시오. 세부 사례가 많은 평평한면은 일반적으로 노멀 매핑입니다. 곡선은 실루엣을 볼 수있는 둥글어야합니다. 곡면을 정면에서 볼 때 고해상도 자산과 게임 해상도 자산 사이의 차이를 알 수 없습니다. 실루엣은 노멀 맵이 포함될 때 모델에 차이를 만드는 것입니다. 테셀레이션 및 변위 매핑을 사용하여 DirectX 11에서 실루엣을 수정할 수 있습니다.

게임 디자인

게임을 디자인 할 때 다음을 고려하십시오.

  1. 게임 유형 정의 (예 : 액션 / 어드벤처 / 레이싱 / 스크롤러)
  2. 뷰 유형 정의 (예 : 1 인 / 3 인 / 인구)
  3. 시장의 계산 능력을 정의하십시오. (예 : 매니아 / 캐주얼 게이머)
  4. 달성하려는 시각적 스타일을 만듭니다. 예를 들어 Crysis 2, Borderlands, Bloodforge 또는 Gears of War처럼 보이기를 원하십니까?
  5. 플레이어에게 중요한 물건을 정의하십시오. 소품이 초점의 중심이되거나 단순히 배경이됩니까?
  6. 비주얼 메시도 충돌 메시입니까?

게임 및 뷰 유형을 사용하여 뷰 심도를 결정하십시오. 멀리있는 물체를 볼 수 있습니까? 복도 사수와 같이 시야가 제한된 무언가를 만들고 있습니까? (예 : Gears of War) 열린 풍경으로 자유로운 로밍을하고 있습니까? (예 : 스카이 림)

모양이 무엇인지 알고 나면 비슷한 게임을 조사 할 수 있습니다.

그러면 애니메이션이 다각형 수를 늘리는 기능을 제한합니다. 정적 메쉬, 같은 위치에 남아있는 것은 GPU와 CPU에서 가장 저렴합니다. 특히 물리적 물체가 아닌 경우. 물리 객체의 경우 간단한 충돌 선체와 복잡한 시각적 메쉬를 만들 수 있습니다. 차이를 알아 차릴 수있는 대부분의 게임에는 상호 작용이 충분하지 않습니다. 애니메이션은 정점 당 여러 뼈를 사용하여 모델을 3 차원으로 이동시키고 각 가중치를 혼합합니다. 이는 CPU 시간이 비쌀 수 있으며 AI 및 소프트웨어 기반 물리학과 충돌 할 수 있습니다. 전체 모델의 뼈 수에 영향을받는 정점이 많을수록 CPU 성능이 저하됩니다. 이것이 게임 캐릭터가 "예술"로 간주되는 다른 이유입니다. 다각형 제한을 정의하는 것은 매우 어렵습니다.

나의 예

나는 UDK를 사용하여 언제든지 제한된 수의 플레이어와 NPC를 가지고 속도가 느린 3 인칭 슈팅 게임을 만듭니다. 이를 위해 플레이어 당 약 10,000 개의 삼각형, 일반적인 일반 적의 경우 5,000 개의 삼각형을 목표로하고 있으며 "보스"스타일의 캐릭터를 만들려면 약 15,000을 목표로합니다. 또한 4,000 개의 삼각형 주위에 세 번째 사람을위한 무기가 매우 자세하게 나옵니다. 약 10,000 삼각형의 차량. 시야 거리가 길기 때문에 모든 것이 세부 수준이 필요합니다.

첫 번째 사람을 만들 때는 팔을 약 2,000 개의 삼각형, 약 5,000 개의 삼각형을 기준으로 무기를 기본으로 매핑합니다.

결론

이것이 "의존하는 것"이 ​​의미하는 바이지만 사람들이 자주 궁금해하는 것을 분명히 할 수 있다고 생각했습니다.

  1. 다각형 수를 가이드로 사용하십시오.
  2. 모델링되지 않고 노멀 매핑 될 수있는 영역을 살펴보십시오.
  3. 가능한 경우 삼각형 팬을 배치 할 때 스트립을 만드십시오.
  4. 스트립을 염두에두고 UV 매핑시 메시에서 분할을 줄입니다.

2

내가 생각할 수있는 한 가지 방법은 자동으로 구성된 장면을 사용하여 원하는 정보를 해독 할 수있는 통계 데이터를 생성하는 것입니다.

  1. 대량의 자산을 가져옵니다 (잠재적으로 자동 생성 될 수 있음).

  2. 자산 풀을 사용하여 엔진에서로드 할 수있는 장면을 생성하는 도구를 만듭니다.

  3. 봇을 실행하여 장면 주위로 카메라를 움직입니다. 조명을 포함하여 장면을보다 역동적으로 만들기 위해 다른 봇을 실행할 수도 있습니다.

  4. 가능한 많은 정보를 수집하여 데이터베이스에 버리십시오. fps, 폴리 카운트, 쉐이더 변경, 라이트 수, 드로우 콜 등

  5. 가능한 많은 방법으로 데이터베이스에 데이터를 표시하는 도구를 만들거나 얻으십시오.

이 링크는 더 많은 아이디어를 제공 할 수 있습니다 : Dead Rising Tools


나는이 답변이 우리 전략의 가장 비싼 부분을 다루기 때문에 좋아합니다. 누군가가 대표 장면을 만들기 위해 노력해야합니다. 알기 쉬운 크기의 자산을 빠르게 배치하기위한 알고리즘 생성 또는 스크립트는 테스트 가능한 장면 생성 속도를 크게 높여줍니다. 나는 더 대중적인 대답을 받아 들일 것입니다. 그러나 나는 이것이 하나의 현상금 가치가 있다고 생각합니다.
MrCranky
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.