언리얼 엔진의 로딩 by 계란소년


폴리곤부터 뜨고 세부 텍스쳐를 천천히 로딩하는 언리얼 엔진의 전형적인 로딩 현상.
기어스 오브 워 1을 하면서 처음 접하고 당황했는데(한동안 로우디테일로 보이길래
버그라도 발생한 줄 알았다) 그 후 바이오쇼크 등 언리얼 엔진 쓰는 게임들 상당수에서
접해보면서 이제는 친숙한 모습니다. 물론 게임에 따라 안 나타나기도 하는 걸 보면
역시 제작사의 취급방식에 따라 차이가 나는 듯 하지만...GOW2는 여전히 나타난다.
심리스 로딩 형식을 취하면서 생기는 현상인 듯 하지만, 다른 심리스 로딩 게임들에선
보이지 않는 현상인지라 좀 어리둥절하긴 하다. 심리스 로딩은 헤일로가 최고가 아닐까?







맨들맨들한 대령님. 그래도 스크린샷 찍어보면 GOW2가 배경은 좀 허전한 편이어도
캐릭터 퀄리티 하나는 정말 최고수준이란 걸 느낄 수 있다. 전기톱 사용하는 장면이나,
폭발이 있는 장면은 캡쳐해놓으면 거의 CG라고 착각할 수준. 스케일만 좀 더 컸으면...


트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://eggy.egloos.com/tb/1927145 [도움말]

덧글

  • 피쉬 2009/07/10 23:26 # 답글

    저는 언토 2003과 2004 둘다 정품사면서 한 사람이라 저 방식 익숙하죠
    2003을 왜 샀을까요...[..]
    언리얼2까지 있던 만화적인 느낌이 좀 사라진게 아쉬워요
  • 엘레인 2009/07/10 23:59 # 답글

    언토3같은 경우도 빡시게 로딩하다 보면 로우폴리곤-노말맵 으로 뜨죠. 3D공부하는 입장에선 오히려 재미있게 보입니다. 오오 생명이 탄생하고 있어!!
  • Allenait 2009/07/11 01:02 # 답글

    아... 전혀 신경쓰고 있지 않던 건데 이런 것이.. 있군요
  • freki 2009/07/11 08:41 # 삭제 답글

    루니지 플모게시판에서는 GOW캐릭터퀼리티를 PS2수준이네 하면서 비웃더군요....
  • Laika_09 2009/07/11 13:14 # 답글

    텍스쳐가 스스스스 하고 나타나는 게 신기:D
    근데 어째 게임을 진행하면 진행할수록 텍스쳐 입히는 속도가 느려지는 것 같습니다. 사실 그렇게까지 신경쓰이는 건 아니지만;;
  • 영원제타 2009/07/11 22:36 # 답글

    엉뚱한 얘기지만, 저런 스타일로 디아블로가 나와도 재미있겠습니다.
  • 나그네 2009/07/18 19:37 # 삭제 답글

    언리얼 엔진의 로딩 방식이라기보단 "스트리밍 텍스처 로딩"이라는 방식인데 아주 오래전부터 사용됐던 기술입니다.

    게임에 따라서 나타나지 않는건 걍 간단합니다. 설정파일 들어가서 스트리밍텍스처 로딩을 꺼주면 저런 모습이 나타나지 않습니다.
  • 계란소년 2009/07/18 23:08 #

    언리얼 엔진이라고 강조한 이유는 스트리밍 로딩 자체는 오래되었지만 요즘까지 저렇게 드러내놓는 엔진은 언리얼 엔진 정도 뿐이기 때문입니다.
  • 지나가다가 2009/08/02 22:18 # 삭제 답글

    저런 현상은 드러내놓는고 표현하기보단.......
    텍스처를 다 로딩하기 전에 미리 움직여 볼 수 있게 하려는 일종의 로딩이 짧게 느껴지게 하려는 의도 중 하나입니다.

    텍스처가 메모리상에 다 로딩되기 전에 미리 화면에 뜨고 움직일 수 있게 하는건 엔진의 특성과는 관계없고 다른 엔진이든 게임이든가능합니다.

    심지어 텍스처뿐 아니라 폴리곤이 다 로딩되기도 전에 화면을 먼저 띄우고 난 뒤 폴리곤이 로딩되어 화면에 폴리곤이 나타나는 게임도 있었죠.

    언리얼 엔진 3가 게임들이 비교적 스트리밍 로딩을 많이 사용하니 언리얼 엔진 3가 원래 저런것처럼 생각하는 사람들이 많은데 저게 꼭 언리얼 엔진 3의 특성은 아닙니다.
  • 계란소년 2009/08/02 22:55 # 답글

    보통 잘 만들어진 스트리밍 로딩은 곧 앞에 나올 부분을 로딩하는 형식으로 이루어지지, 저렇게 당장 보이는 부분까지 대놓고 스트리밍 하는 걸 보여주는 경우는 없거든요. 게다가 제가 굳이 언리얼 엔진을 꼽아서 얘기한 건 사례로 꼽힌 게임들이 로딩시간이 따로 없는 것도 아니거든요. 그런데 첫 화면이 저렇다는 건...스트리밍 로딩을 좀 발로 만들었다고 밖에요.
  • B&W 2009/08/09 04:37 # 삭제 답글

    텍스처 스트리밍 로딩을 발로 만들었다거나 못만들었다거나 하는 말 자체가 나올수가 없습니다.

    곧 앞에 나올 부분을 로딩하는 건 텍스처뿐만이 아니라 게임중 메모리 문제로 미처 다 로딩하지 않은 모델이나 모델 데이터, 애니메이션 데이터, 사운드 데이터 등을 로딩하는 경우죠. 이런 경우엔 메모리가 많으면 로딩을 느끼지 못합니다. 그리고 이런 경우는 스트리밍 로딩이라고 보기엔 상당한 차이점이 있죠.

    언리얼엔진3에서 사용하는 텍스처 스트리밍 로딩도 이게 UE3만의 특징이라거나 발로 만들었다거나 ... 라고 볼 수 없는 게 스트리밍 로딩을 더 좋게 만든다거나 나쁘게 만든다거나 하는 게 존재하지도 않거든요.

    텍스처 스트리밍 로딩은 단순히 모든 텍스처가 메모리상에 로딩되기 전에 미리 게임화면으로 전환하는 것 뿐입니다.

    참고로 언리얼엔진3에서 엔진 관련 설정파일중 TextureStreaming관련 부분을 모두 True에서 False로 바꿔주면 텍스처 스트리밍 로딩을 하지 않고 모든 텍스처를 다 로딩한 후에 게임화면으로 전환합니다.

    이렇게 하면 전체 로딩 시간에서 약 4~5초 정도 더 걸립니다. 게임화면 전환 후 텍스처 로딩하는 시간이 게임화면 전환전 로딩시간으로 들어가는 것이죠.

    사례로 꼽힌 게임들이 로딩 시간이 따로 없는 것도 아니라고 말씀하셨는데 그건 당연한겁니다. 텍스처 로딩을 제외한 다른 데이터들이 텍스처보다 훨씬 많은데 로딩하는 시간은 당연히 존재하죠.
  • B&W 2009/08/09 04:46 # 삭제 답글

    유독 차세대 콘솔 게임에서(특히 XBOX360) 스트리밍 텍스처 로딩이 잦은데 보통은 고해상도 텍스처를 쓴 게임일수록 제약된 메모리에 고해상도의 텍스처들을 모두 띄워놓기 힘들기 때문입니다.

    폴리곤 모델 메쉬의 용량이 더 크긴 하지만 모델은 미리 메모리에 띄워놓지 않아 게임중 로딩되는 현상이 텍스처가 게임중 로딩되는 현상보다 훨씬 치명적이기 때문에 모델은 미리 다 불러놓고 텍스처만 게임중 로딩하는 겁니다.

    또 한가지, 텍스처를 스트리밍으로 로딩하면 게임의 프레임이 끊어지지 않는다는 이유도 있습니다.

    스트리밍 텍스처 로딩을 쓰지 않는다면 중간에 텍스처를 로딩할 때 게임의 프레임이 약간 끊깁니다. 하드 스왑으로 인한 약간의 지체 현상과 같은 것이죠.

    이 현상을 없앤 대신 텍스처 스트리밍 로딩으로 가는 것이 오히려 게임플레이에 더 유리한 모습이기에 많은 게임들이 스트리밍 로딩을 피할 수 없이 사용하는 겁니다.
  • 계란소년 2009/08/09 08:10 #

    복잡한 설명 감사합니다. 물론 그런 장점들은 이해하고 기어스 오브 워 정도면 받아들입니다만, 바이오쇼크 처럼 별로 넓지 않은 장소에서 시점 돌리는 것만으로 텍스쳐 로딩이 덜 된 모습을 보는 경우가 왕왕 있어서 하는 말이었습니다. 솔직히 그런 게임들이 텍스쳐를 특별히 대용량으로 쓰고 있다고 보기도 힘들고...(단순히 최적화 능력 문제일 수도 있지만) 그런데 특히 XBOX360이라고 하기엔 XBOX360이 메모리 관리에 있어선 게임기 중 가장 우수한 면을 보이고 있지 않나요?
  • 저위에글쓴사람 2009/08/10 00:33 # 삭제 답글

    제가 윗글에 덧붙여서 설명을 드리자면 예를 들어 게임을 새로 로딩한 후에 아직 한번도 꺼내지 않은 무기로 바꿨을 경우에 스트리밍 로딩이 아니라면 하드를 드르륵하고 긁은 다음에 무기가 나오고 그 사이는 약간의 끊임이 있죠. 스트리밍 로딩을 하면 바로 끊임없이 무기가 바뀌지만 텍스처가 덜 발라진 무기가 화면상에 나타나고 약 1초 후에 로딩이 완성되죠.

    콘솔 게임기의 메모리 관리는 게임에 따라 프로그래밍 메모리 메니지먼트를 활용하기 나름인데 같은 엔진일지라도 실제 게임 프로그래머가 어떻게 각 요소들을 메모리상에 배치하느냐가 관건입니다

    바이오쇼크의 경우엔 언리얼엔진3로 알려져 있으나 사실은 언리얼엔진3가 아닙니다. 개발사가 언리얼엔진2.5를 개조해서 만들던 도중 언리얼엔진3를 라이센스 했으나 물효과 부분등을 약간 참고만 하여 언리얼엔진2.5의 개량형으로 개발을 진행했고요. 내년에 출시될 바이오쇼크2까지도 마찬가지로 언리얼엔진2.5의 개량형입니다. 이 게임의 경우는 독특하게도 셰이더 캐시가 메모리를 많이 차지하고 있습니다. 왠만한 게임에선 셰이더가 메모리를 차지하고 있지는 않은데 말이죠. 일반적인 언리얼엔진3의 게임들과도 상당히 다른점입니다. 언리얼엔진2.5를 개량한 나름대로의 형식입니다.
  • 계란소년 2009/08/10 00:35 #

    설명 감사합니다.
  • 저위에글쓴사람 2009/08/10 00:35 # 삭제 답글

    그리고 바이오쇼크에 대해 한마디 덧붙이자면 바이오쇼크는 넓은 장소가 아님에도 좁은 구역에서 다양한 텍스처를 쓴 편인데 텍스처의 크기가 타 콘솔 게임들과 비교해 비교적 작은편은 아니고 노멀맵, 디퓨즈맵에 더해 마스크맵과 글로스맵 텍스처까지 사용된 부분이 많습니다.
덧글 입력 영역


애드센스

구글 애널


애드센스검색

맞춤검색

메모장

메일






Locations of visitors to this page