3D 게임은 어떻게 그렇게 효율적입니까? [닫은]


188

내가 이해하지 못한 것이 있습니다. GTA IV와 같은 대형 PC 게임은 어떻게 CPU의 50 %를 사용하고 60fps로 실행할 수 있습니까? 60fps에서 회전하는 주전자의 DX 데모는 무려 30 %를 사용합니까?


124
이 질문에 어떤 문제가 있는지 보지 못합니다. 다른 개발자가 특정 일을 어떻게 수행했는지 궁금해하는 것은 당연합니다. 우리는 이런 종류의 호기심을 장려해야하며 가까운 투표로 처벌하지 않아야합니다.
John Feminella

2
@ user146780 : 누가 질문을했는지 ... CGI에서 일한 최고의 프로그래머들. SGI의 전문가, Adobe Photoshop의 병렬화 작업을하는 사람들 등. 여기 사람들은 현대 게임을 작성하는 것이 얼마나 복잡한 지, 이러한 코더가 얼마나 숙련 된지 알지 못합니다. 겸손한 경험을 원한다면 Cryotech의 독일인들이 Crysis 엔진으로 무엇을했는지보십시오. Youtube에 비디오가 있습니다. 당신은 단순히 그것을 믿지 않을 것입니다. "옥트리 사용"에 관한 것이 아닙니다. 일반적으로 이러한 프로그래머는 일반 프로그래머보다 훨씬 능숙합니다. 그리고 당신은 GT4 코더가 매우 좋다고 확신 할 수 있습니다.
SyntaxT3rr0r

2
60fps에서 gta4를 실행했습니다!? GW! gta4는 POS가 매우 나쁘고 Force unleashed도 들었습니다. 나는 행복감이 범인이라고 말하고 싶습니다. 솔직히 말해서 "CPU 사용량"은 비교하기에 매우 좋지 않은 방법입니다. 단순히 프레임 속도를 풀고 어떤 프레임이 가장 빨리 실행되는지 확인하는 것이 올바른 방법입니다. 또한,이 "복잡한 게임"은 많은 것들을 렌더링 할 수 있지만, 여전히 화면 가치가있는 것들만 있으며, 올바른 순서로 렌더링된다면, "간단한"데모 및 픽셀 작동은 실제로 죽입니다.
matt

8
GPU (Graphics Processing Unit) 사용량을 보여주는 프로파일 러가 필요합니다. GTA IV에 ~ 99 %, 데모 3 %가 표시됩니다.
0scar

경험상, 제가 작업 한 게임 프로그래머의 약 10 %가 훌륭했고 나머지는 평균이었습니다. 일부는 전혀 무능했습니다.
Skizz

답변:


69

일반적으로

  1. 게임은 렌더링에 필요한 것에 최적입니다.
  2. 그들은 당신의 하드웨어를 특별히 활용합니다.

예를 들어, 한 가지 쉬운 최적화는 실제로 볼 수없는 것을 그리려고하지 않는 것입니다. Grand Theft Auto IV 의 도시와 같은 복잡한 장면을 고려하십시오 . 렌더러는 실제로 모든 건물과 구조를 렌더링하지는 않습니다. 대신 카메라가 볼 수있는 것만 렌더링합니다. 동일한 카메라의 뒤쪽으로 날아 다니고 원래 카메라를 향하면 반쯤 뚫린 셸 구조가 보입니다. 카메라가 볼 수없는 모든 지점은 렌더링되지 않습니다. 볼 수 없기 때문에 카메라를 보여줄 필요가 없습니다.

또한 특정 하드웨어 세트에 대해 개발할 때 최적화 된 지침 및 특수 기술이 존재하므로 속도가 더욱 향상됩니다.

질문의 다른 부분은 데모가 많은 CPU를 사용하는 이유입니다.

... 60fps에서 회전하는 주전자의 DX 데모는 무려 30 %를 사용합니까?

하드웨어가 예쁜 예제를 보여주기 위해 필요한 모든 기능을 지원하지 않는 경우 그래픽 API 데모 (예 :)dxdemo소프트웨어 렌더러 라고하는 것으로 대체 되는 것이 일반적입니다. 이러한 기능에는 그림자, 반사, 광선 추적, 물리학 등이 포함될 수 있습니다.

이는 API의 모든 기능을 과시하기 위해 존재하지 않는 완전한 기능을 갖춘 하드웨어 장치의 기능을 모방합니다. 그러나 하드웨어는 실제로 존재하지 않으므로 대신 CPU에서 실행됩니다. 그것은 그래픽 카드에 위임하는 것보다 훨씬 비효율적이므로 CPU 사용량이 높습니다.


3
DX 데모는 하드웨어도 사용합니다. 그래서 '특별한'은 무엇입니까?
tur1ng

3
그러나 데모는 그것에 대해 최적이 아닐 것입니다.
µBio

2
예를 들어 주전자 데모 인 @ tur1ng는 반사 , 그림자 및 기타 효과를 활성화했을 수 있습니다.
Nick Dandoulakis

2
주전자에는 GTA4 장면보다 많은 다각형이있을 수 있습니다. 사실, 그래픽 렌더링의 현재 병목 현상은 범프 매핑 파생 기술과 같은 텍스처 효과로 세부 사항 및 기타 포스트 렌더링 효과를 추가하는 것입니다.
Klaim

5
질감-주전자는 노멀과 조명 상호 작용을 통해 수많은 개별 삼각형으로 만들어집니다. 게임에서 매우 복잡한 3D 세계처럼 보이는 것은 종종 상세한 그림으로 덮힌 상당히 단순한 대형 블록입니다. '3D'의 많은 3 차원 모양에 그려진 정적 2D 이미지의 영리한 그림자와 관점 예술적 효과입니다
마틴 베켓

96

인내, 기술 및 지구력.

첫 번째 요점은 DX 데모는 주로 교육 보조 자료이므로 실행 속도가 아닌 명확성을 위해 수행됩니다.

압축의 대상은 꽤 크지 만 게임 개발은 주로 데이터와 실행 경로를 거의 병리학적인 정도로 이해하는 것입니다.

  1. 코드는 데이터와 대상 하드웨어의 두 가지 측면에서 설계되었습니다.
  2. 가장 빠른 코드는 실행되지 않는 코드입니다. 데이터를 일괄 처리로 정렬하고 필요한 데이터에 대해 비싼 작업 만 수행하십시오.
  3. 데이터 저장 방법이 핵심입니다. 연속 액세스를 목표로하면 고속으로 일괄 처리 할 수 ​​있습니다.
  4. 가능한 모든 것을 파렐 리제
  5. 최신 CPU는 빠르며 최신 RAM은 매우 느립니다. 캐시 미스가 치명적입니다.
  6. 가능한 한 많이 GPU에 푸시하십시오. 빠른 로컬 메모리를 가지고 있으므로 데이터를 타파 할 수 있지만 데이터를 올바르게 구성하여 도와야합니다.
  7. GPU가 정지되는 원인이되므로 많은 렌더링 상태 스위치를 사용하지 마십시오 (유사한 정점 데이터를 일괄 처리 함).
  8. 텍스처를 스위블하고 2의 거듭 제곱인지 확인하십시오. 이렇게하면 GPU의 텍스처 캐시 성능이 향상됩니다.
  9. 낮은 / 중간 / 높은 버전의 3D 모델을 최대한 상세하게 사용하고 카메라 플레이어와의 거리를 기반으로 전환합니다. 화면에 5 픽셀 만 있으면 고해상도 버전을 렌더링 할 수 있습니다.

39

3D 게임은 눈을 속이는 데 뛰어납니다. 예를 들어, SSAO (screen space ambient occlusion)라는 기술이 있습니다.이 기술은 표면 불연속에 가까운 장면의 해당 부분을 음영 처리하여보다 사실적인 느낌을줍니다. 벽의 모서리를 보면 대부분의 경우 중심보다 약간 어둡게 나타납니다.

오히려 정확한 시뮬레이션을 기반으로하는 라디오 시티를 사용하여 동일한 효과를 얻을 수 있습니다. 라디오 시티는 또한 튀는 조명 등의 효과를 더 많이 고려할 것이지만 계산 비용이 많이 들기 때문에 레이트 레이싱 기법입니다.

이것은 하나의 예일뿐입니다. 실시간 컴퓨터 그래픽을위한 수백 개의 알고리즘이 있으며 기본적으로 좋은 근사치를 기반으로하며 일반적으로 많은 가정을합니다. 예를 들어, 공간 정렬은 속도, 카메라의 일반적인 위치 및 장면 형상의 변화량에 따라 매우 신중하게 선택해야합니다.

이러한 '최적화'는 엄청납니다 . 알고리즘을 효율적으로 구현하고 10 배 빠르게 실행할 수 있지만 비슷한 결과 ( "속임수")를 생성하는 스마트 알고리즘을 선택하면 O (N ^ 4)에서 O ( log (N)).

실제 구현을 최적화하면 게임의 효율성이 향상되지만 선형 최적화 일뿐입니다.


30

eeee!

나는이 질문이 오래되었다는 것을 알고 있지만 아무도 VSync를 언급하지 않았다는 것이 흥미 롭습니다!

60fps에서 게임의 CPU 사용량을 60fps에서 주전자 데모의 CPU 사용량과 비교했습니다.

둘 다 정확히 60fps로 실행되는 것이 분명하지 않습니까? 그 대답으로 이어집니다 ...

두 앱 모두 vsync가 활성화 된 상태로 실행됩니다! 이는 렌더링 프레임 속도가 모니터의 "수직 공백 간격"으로 고정되어 있음을 나타냅니다 (덤). 그래픽 하드웨어 (및 / 또는 드라이버)는 최대로만 렌더링됩니다. 60fps 60fps = 60Hz (Hz = 초당) 재생 빈도. 따라서 아마도 오래되고 깜박 거리는 CRT 또는 일반적인 LCD 디스플레이를 사용하게 될 것입니다. 100Hz에서 실행되는 CRT에서는 아마도 최대 100Hz의 프레임 속도가 표시 될 것입니다. VSync는 LCD 디스플레이와 비슷한 방식으로 적용됩니다 (일반적으로 60Hz의 재생률을 가짐).

따라서 주전자 데모는 실제로 훨씬 더 효율적으로 실행될 수 있습니다! CPU 시간의 30 % (GTA IV의 경우 50 % CPU 시간과 비교)를 사용하는 경우 각 프레임 당 CPU 시간이 줄어들고 다음 수직 공백 간격 동안 더 오래 기다립니다. 두 앱을 비교하려면 vsync를 비활성화하고 다시 측정해야합니다 (두 앱 모두에 대해 훨씬 높은 fps를 측정 함).

때로는 vsync를 비활성화해도 괜찮습니다 (대부분의 게임에는 설정에 옵션이 있음). vsync가 비활성화 된 경우 때때로 "인쇄물을 찢는"현상이 나타납니다.

자세한 내용과 그 이유는 Wikipedia에서 확인할 수 있습니다. http://en.wikipedia.org/wiki/Vsync


더 나은 비교를 위해서는 vsync를 비활성화해야합니다. 그러나이 문제의 근원은 여전히 ​​유효합니다. 주전자의 경우 30 %와 게임의 CPU 사용량의 50 %는 보통 예상보다 작은 차이입니다. 그러나 초기에 환경 매핑이 대중화되기 시작했고 당시의 멋진 nVidia 데모는 환경을 둘러싼 주전자였습니다. 이러한 데모는 대개 하루에 60fps를 기록하지도 않습니다. 내 요점은 이러한 찻 주전자 데모가 종종 새로운 시각 효과의 경계를 뛰어 넘는 것입니다.
Steve Wortham

25

여기에 많은 답변 이 내가 간단한 질문에 대답 할 것인지에 대한 훌륭한 표시를 제공하지만

아마도 가장 좋은 예 (확실히 알려진 것 중 하나)는 ID 소프트웨어 일 것입니다. 그들은 Keen (3D 이전) 사령관 시절에 그래픽 적으로 우월한 최신 하드웨어 (이 경우 EGA 그래픽 카드!)에 의존하더라도 무언가 1 을 달성하는 영리한 방법을 제시하는 것을 매우 일찍 깨달았 습니다 . 이것이 당신의 게임을 돋보이게 할 경쟁입니다. 이것은 사실이지만 그들은 새로운 게임과 콘텐츠 자체를 개발하지 않고 기술을 라이센스 할 수있어 차세대 엔진을 개발하고 개구리 경쟁을 다시 뛰어 넘을 수있는 동안 다른 사람들로부터 수입을 얻을 수 있음을 깨달았습니다. .

이 프로그래머들의 능력 (비즈니스에 정통한 사람들과 결합)은 그들이 부자가되게하는 것입니다.

그것은 그런 사람들에게 동기를 부여하는 것이 반드시 돈이 아니라고 말했다. 성취하고 성취하려는 욕망만큼이나 가능성이 높습니다. 그들이 초기에 벌어 들인 돈은 이제 그들이 즐기는 것에 헌신 할 시간이 있다는 것을 의미합니다. 그리고 많은 사람들이 외부 관심사를 가지고 있지만 거의 모든 프로그램은 여전히 ​​프로그램을 유지하고 마지막 반복보다 더 나은 방법을 찾으려고 노력합니다.

간단히 찻 주전자 데모를 작성한 사람에게 다음 문제 중 하나 이상이있을 수 있습니다.

  • 적은 시간
  • 적은 자원
  • 적은 보상 인센티브
  • 내부 및 외부 경쟁 감소
  • 적은 목표
  • 적은 재능

마지막은 가혹한 들릴지 있지만, 분명 더 나은 다른 사람보다 어떤 사람이, 벨 곡선 때로는 극단적 인 끝을 가지고 있고 그 기술로 수행되는 정도의 대응 극단에 매료되는 경향이있다.

더 적은 목표가 실제로 주된 이유 일 수 있습니다. 찻 주전자 데모의 목표는 바로 데모였습니다. 그러나 프로그래머 기술 3 의 데모는 아닙니다 . (대형) OS의 작은 패싯 하나,이 경우 DX 렌더링 데모입니다.

데모를 보는 사람들에게는 그것이 더 좋아 보이지 않는 한 필요 이상으로 많은 CPU를 사용하지 않았습니다. 수혜자가 없을 때 폐기물을 제거 할 인센티브는 없습니다. 이에 비해 게임은 더 나은 AI, 더 나은 사운드, 더 많은 다각형, 더 많은 효과를위한 여분의주기를 원합니다.


  1. 이 경우 PC 하드웨어에서 부드러운 스크롤
  2. 나보다 더 가능성이 높아서
  3. 엄밀히 말하면 관리자에게도 데모가되었지만 시간과 / 또는 시각적 품질은 여기에 있습니다.

17

몇 가지 이유 때문에

  • 3D 게임 엔진은 고도로 최적화되어 있습니다
  • 대부분의 작업은 그래픽 어댑터로 수행됩니다.
  • 50 % 흠, 당신이 듀얼 코어를 가지고 있고 하나의 코어 만이 사용된다고 생각합니다 ;-)

편집 : 숫자를 줄이려면

NV-6800 GPU가 장착 된 2.8Ghz Athlon-64. 결과는 다음과 같습니다.

  • CPU : 72.78 Mflops
  • GPU : 2440.32 Mflops

@stacker : GPU에 의해 수행되지 않은 최고 수준의 3D 게임에서 발생하는 모든 계산이 실제로 단일 스레드이며 CPU의 100 %를 채울 것이라는 의미입니까? 게임 성능이 하나의 비 GPU 코어에 바인딩된다는 의미입니까? 나는 그것을 믿기 가 매우 어렵다는 것을 안다 .
SyntaxT3rr0r

4
프로그램이 모노 스레드임을 의미하지는 않으며 최소한 하나의 스레드가 가능한 한 빨리 진행되고 있음을 나타냅니다. 왜 더 느리게 가고 싶습니까? 반면, 많은 게임은 거의 전적으로 모노 스레드입니다. 멀티 스레딩시 복잡한 방식을 효과적으로 작성하는 것은 매우 어렵습니다. 동시 처리 / 분산 시스템의 일반적인 상황은 처리량을 많이 구매하기 위해 약간의 대기 시간을 허용하는 것이 반응 형 게임에는 적합하지 않기 때문입니다.
Kylotan 2019

8

때때로 장면이 보이는 것보다 더 진행될 수 있습니다. 예를 들어, 수천 개의 정점, 환경 매핑, 범프 매핑 및 기타 복잡한 픽셀 쉐이더가 모두 동시에 회전하는 찻 주전자는 모두 많은 처리 과정에 해당합니다. 이 찻 주전자 데모는 여러 가지 특수 효과를 보여주기 위해 만들어졌습니다. 또한 절대 성능이 목표가 아닌 경우 항상 GPU를 최대한 활용하는 것은 아닙니다.

게임에서 비슷한 효과가 나타날 수 있지만 일반적으로 프레임 속도를 최대화하기 위해 손상된 방식으로 수행됩니다. 이러한 최적화는 게임에서 볼 수있는 모든 것으로 확장됩니다. 문제는 "최소의 처리 능력으로 가장 훌륭하고 사실적인 장면을 어떻게 만들 수 있습니까?" 이것이 게임 프로그래머를 최고의 최적화 도구로 만드는 이유입니다.


4
  1. 장면 관리. kd- 나무, 절두체 컬링, bsp, 계층 적 경계 상자, 부분 가시성 세트.
  2. LOD. 멀리있는 물체를 대체하기 위해 상세 버전을 바꾸십시오.
  3. 사기꾼. LOD와 같지만 그림이나 '광고판'같은 대상조차 없습니다.
  4. SIMD.
  5. 맞춤형 메모리 관리. 정렬 된 메모리, 조각화 감소
  6. 커스텀 데이터 구조 (즉, STL 없음, 상대적으로 최소한의 템플릿)
  7. 주로 SIMD를위한 장소에서의 조립.

4

주어진 모든 정답과 좋은 답변으로 여전히 중요한 답이 누락되었습니다. Windows의 CPU 사용률 카운터는 매우 신뢰할 수 없습니다. 이 간단한 찻 주전자 데모는 유휴 루프에서 렌더링 함수를 호출하여 버퍼 스왑을 차단한다고 생각합니다.

이제 Windows CPU 사용률 카운터는 각 프로세스에서 소비 된 CPU 시간을 확인하지만이 CPU 시간이 사용되는 방식은 아닙니다. 추가해보십시오

Sleep(0);

렌더링 함수에서 돌아온 직후에 비교하십시오.


항상 내 CPU의 25 %를 사용하는 DX 찻 주전자 데모가있었습니다. 내가 쿼드 코어에 있었고 60fps로 게임 루프를 잠그기 위해 시간을 지속적으로 확인하는 "아직 우리가 있습니까?"루프가 있었기 때문입니다. 나는 잠 (timeToNextFrame)로 변경하고, CPU 사용량이 근처 0으로 떨어졌다
조나단 피어스에게

3

또한, 예술적 관점에서 계산 능력을 절약하기위한 많은 트릭이 있습니다. 많은 게임, 특히 오래된 게임에서 그림자는 미리 계산되어 맵의 텍스처에 "구워집니다". 여러 번, 예술가들은 평면 (두 개의 삼각형)을 사용하여 나무 나 특수 효과가 거의 동일하게 보일 때를 표현하려고했습니다. 게임의 안개는 멀리 떨어져있는 객체를 렌더링하지 않는 쉬운 방법이며, 종종 게임은 멀리, 중간 및 가까이에있는 모든 객체의 여러 해상도를 갖습니다.


1

답의 핵심은 이것입니다 .3D 엔진이 수행하는 변환은 주로 덧셈과 곱셈 (선형 대수) (지점 또는 점프 없음)으로 지정되며, 단일 프레임의 드로잉 작업은 종종 여러 가지 방식으로 지정됩니다 이러한 추가 mul의 작업은 병렬로 수행 될 수 있습니다. GPU 코어는 애드-멀을 추가하는 데 매우 유용하며 수십 또는 수백 개의 애드-멀 코어가 있습니다.

CPU는 AI 및 기타 게임 로직과 같은 간단한 작업을 수행합니다.


1

GTA IV와 같은 대형 PC 게임은 어떻게 CPU의 50 %를 사용하고 60fps로 실행할 수 있습니까? 60fps에서 회전하는 주전자의 DX 데모는 무려 30 %를 사용합니까?

GTA는 DX 데모보다 훨씬 효율적일 수 있지만 이런 식으로 CPU 효율을 측정하는 것은 본질적으로 실패합니다. 효율성은 예를 들어 주어진 시간당 얼마나 많은 일을하는지에 따라 정의 될 수 있습니다. 간단한 반례 : 논리 CPU 당 하나의 스레드를 생성하고 간단한 무한 루프가 실행되도록하십시오. CPU 사용률은 100 %이지만 유용한 작업이 수행되지 않아 비효율적입니다.

또한 게임이 어떻게 효율적일 수 있는가? "큰 게임"을 프로그래밍 할 때는 모든 측면에서 게임을 최적화하기 위해 많은 노력을 기울이고 있습니다 (현재는 멀티 코어 최적화도 포함됩니다). DX 데모의 경우 요점은 빠르게 실행되는 것이 아니라 개념을 보여줍니다.


1

CPU가 아닌 GPU 사용률을 살펴 봐야한다고 생각합니다 ... 그래픽 카드가 주전자 샘플보다 GTA IV에서 훨씬 더 번거 롭습니다 (실제로 유휴 상태 여야 함).

이 모니터와 같은 것을 사용하여 확인할 수 있습니다.

http://downloads.guru3d.com/Rivatuner-GPU-Monitor-Vista-Sidebar-Gadget-download-2185.html

또한 프레임 속도는 고려해야 할 사항입니다. 주전자 샘플이 최고 속도 (아마 1000fps)로 실행 중일 수 있으며 대부분의 게임은 모니터의 새로 고침 빈도 (약 60fps)로 제한됩니다.


1

vsync에 대한 답변을보십시오. 이것이 동일한 프레임 속도로 실행되는 이유입니다.

둘째, CPU가 게임에서 앞장서고 있습니다. 간단한 설명은 메인 게임 루프가 무한 루프라는 것입니다.

while(1) { 
  update();
  render();
}

게임 (또는이 경우 주전자)이 많은 일을하지 않더라도 여전히 루프에서 CPU를 사용하고 있습니다.

GTA의 50 % CPU는 "생산성이 높고"데모의 30 %인데, 그다지 많이하지 않을 것입니다. 그러나 GTA는 수많은 정보를 업데이트하고 있습니다. 데모에 "Sleep (10)"을 추가해도 CPU가 1 톤 줄어 듭니다.

마지막으로 GPU 사용량을 살펴보십시오. 데모는 아마도 현대 비디오 카드에서 <1 %를 차지할 것이고 GTA는 아마도 게임을하는 동안 대부분을 차지할 것입니다.

요컨대, 벤치 마크 및 측정이 정확하지 않습니다.


1

DX 찻 주전자 데모는 유용한 작업을 수행하는 CPU의 30 %를 사용하지 않습니다. 할 일이 없기 때문에 바쁘다.


0

내가 Unreal 시리즈에 대해 알고있는 것에서 일부 규칙은 캡슐화처럼 깨졌습니다. 코드는 게임에 따라 바이트 코드로 또는 머신 코드로 직접 컴파일됩니다. 또한 객체는 메쉬 형태로 렌더링되고 패키징되며 텍스처, 조명 및 그림자와 같은 것은 미리 계산되지만 순수한 3D 애니메이션은이를 실시간으로 요구합니다. 게임이 실제로 실행 중일 때는 오브젝트의 보이는 부분 만 렌더링하고 가까이있을 때만 텍스처 디테일을 표시하는 등의 최적화도 있습니다. 마지막으로 비디오 게임이 주어진 시간에 플랫폼을 최대한 활용하도록 설계되었을 가능성이 높습니다 (예 : Intelx86 MMX / SSE, DirectX 등).


0

나는 여기에 누락 된 답변의 중요한 부분이 있다고 생각합니다. 대부분의 답변은 "데이터를 알고 있습니다"라고 알려줍니다. 사실, 당신도 같은 방식으로 그리고 같은 정도의 중요성을 가지고 당신의 것을 알아야합니다 :

  • CPU (클럭 및 캐시)
  • 메모리 (빈도 및 대기 시간)
  • 하드 드라이브 (속도 및 탐색 시간 측면에서)
  • GPU (# 코어, 시계 및 메모리 / 캐시)
  • 인터페이스 : Sata 컨트롤러, PCI 개정 등

그러나 현재 최신 컴퓨터에서는 >> 30ftp에서 실제 1080p 비디오를 재생할 수 없습니다 (64 비트의 단일 1080p 이미지는 15 000 Ko / 14.9 MB 필요). 그 이유는 샘플링 / 정밀도 때문입니다. 비디오 게임은 픽셀, 이미지, 데이터 등에 대해 배정도 (64 비트)를 사용하지 않고,보다 낮은 사용자 지정 정밀도 (~ 4-8 비트)를 사용하며 보간 기술로 리 스케일 된 정밀도를 사용하여 합리적인 계산이 가능합니다. 시각.

데이터 클리핑 (OpenGL 표준 및 소프트웨어 구현 모두), 데이터 압축 등과 같은 다른 기술도 있습니다. 하드웨어 성능 측면에서 현재 GPU가 현재 CPU보다 300 배 이상 빠를 수 있습니다. 그러나 문제가 완전히 최적화되고 완전히 병렬화 될 수있는 경우 (특히 작업 병렬화 가능)를 제외하고 우수한 프로그래머는 10-20 배의 요소를 얻을 수 있습니다.

경험상 최적화는 지수 곡선과 같다고 말할 수 있습니다. 최적의 성능에 도달하려면 필요한 시간이 매우 중요 할 수 있습니다.

따라서 주전자로 돌아가려면 지오메트리 / 텍스처 및 가장 중요한 세부 사항 (정밀도, 샘플링 등) 측면에서 지오메트리가 표현, 샘플링 및 GTA 5에서 볼 수있는 정밀성에 어떤 영향을 미치는지 확인해야합니다.

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