대부분의 주요 게임 엔진이 애니메이션 텍스처에 gif를 사용하지 않는 이유는 무엇입니까?


28

애니메이션 시트 또는 GIF를 사용하는 것이 더 좋은 방법은 무엇입니까? GIF가 Animation Sheets에 비해 한 가지 장점은 코드로 인해 프레임이 너무 빠르거나 느리게 진행되고 적절한 눈금으로 업데이트 할 필요가 없다는 것입니다.

GIF를 사용할 때의 단점과 애니메이션 시트가 GIF를 사용할 때의 장점은 무엇입니까?


7
그렇다면 "대부분의 주요 게임 엔진이 애니메이션 텍스처에 gif를 사용하지 않는 이유는 무엇입니까?" 그들은 적어도 내가 아는 바가 많기 때문에 일반적으로 그렇지 않습니다. 나는 그것이 왜 사용되지 않는지에 대한 기술적 인 점과 SE 사이트에 적합하지 않은 더 좋은 질문에 대해 기술적 인 포인트를 줄 것이라고 생각합니다.
Coburn

39
One advantage Gifs have over Animation Sheets is that you don't have to think about frames going too fast or too slow왜 그런가요? 그 가정에 무엇을 의지하십니까? 도서관? 파일 형식 사양? gif 파일은 여전히 ​​데이터 일 뿐이므로 해석하기 위해 코드가 필요합니다 (올바른 속도로 렌더링)
hoffmale

13
호프 말이 한 말. GIF는 마술이 아닙니다. 애니메이션은 타이밍을 포함하여 일부 소프트웨어에서 계속 제어하고 실행해야하며,이 경우 해당 소프트웨어는 귀하가 작성합니다. 솔직히 애니메이션 시트 처리 코드가 GIF 처리 코드와 크게 다를 것이라고는 생각하지 않습니다.
Monica와의 가벼움 경주

12
스프라이트 시트와 GIF 코드의 유일한 차이점은 GIF 코드가 GIF를 스프라이트 시트로 변환 한 다음 스프라이트 시트 코드를 호출한다는 것입니다.;)
MickLH

6
gif에는 장점이 없습니다. 프레임 간 압축을 원할 경우 gif는 적절한 비디오 코덱보다 약 30 배 덜 효율적이며 품질은 떨어집니다 (사실적인 내용의 경우).
Sarge Borsch

답변:


91

GIF 단점 :

  • 매우 제한된 색상 팔레트, 일반적으로 추한 디더링이 포함 된 256 색 ( 예, 애니메이션 GIF에서 256 가지 이상의 색상을 가질 수 있지만 일반적이지 않음)
  • GPU는 하드웨어에서 GIF 압축을 지원하지 않습니다 (어쨌든 CPU에서 압축을 풀어야 함을 의미 함)
  • 사용자 정의 처리를 구현하지 않는 한 투명성을 위해 하나의 색상 만 선택하십시오.
  • 무작위 액세스가 없습니다. 프레임에 액세스하려면 이전의 모든 GIF 프레임을 읽고 압축을 풀어야합니다.
  • 압축되고 있습니다. 코드에는 전용 압축 해제 기능이 필요합니다. 다른 (더 나은) 압축 알고리즘을 선택할 수 없습니다. (예, 압축되지 않은 GIF도 존재 하지만 흔하지 않습니다)

사용자 정의 형식을 사용하면 이러한 모든 항목이 매우 빠르게 해결됩니다. 이미지 형식, 품질, 투명성, 랜덤 액세스 및 압축 (DXT와 같은 GPU 지원 형식 포함)을 훨씬 더 많이 제어 할 수 있습니다. 또한 필요한 기능의 우선 순위를 지정할 수 있습니다.

GIF가 Animation Sheets에 비해 한 가지 장점은 코드로 인해 프레임이 너무 빠르거나 느리게 진행되고 적절한 눈금으로 업데이트 할 필요가 없다는 것입니다.

위의 진술은 오해의 소지가 있습니다. GIF fps를 실제 게임 fps와 동기화하는 것은 커스텀 스프라이트 애니메이션 동기화와 크게 다르지 않습니다. 두 경우 모두 프레임 목록, 원하는 프레임 속도 및 렌더 이벤트와 같은 설정이 동일합니다. GIF에는 매직 파우더가 없습니다. 어쨌든 GIF를 스프라이트 시트로 압축 해제해야합니다.

물론 일부 게임 엔진은 커튼 뒤의 일부 GIF 문제를 숨길 수 있지만 스프라이트 시트를 사용하여 더 나은 방식으로 수행 할 수 있습니다.

GIF가 작동 할 수있는 경우는 거의 없다고 말했다 . 예를 들어 HTML / CSS GUI이지만, 이것 자체는 매우 드물고 리소스가 부족합니다.


"투명성을위한 한 가지 색"을 이해하지 못합니다. 투명성을 위해 여러 색상이 있다는 것은 무엇을 의미합니까? 텍스처에 투명도 그라디언트를 적용하는 것과 같이 다양한 알파 값에 대해 이야기하고 있습니까?
Erik

3
@ 에릭 정확히. 공통 GIF는 최대 256 색을 지원하며 그 중 1 개만 투명하게 표시 할 수 있습니다. 일반적으로 투명도의 범위가 훨씬 넓은 다른 형식과는 다릅니다.
크롬 스터는 모니카

@Kromster 실제로, 리소스에 정통한 사이트 background-image는 애니메이션이 하나의 큰 이미지에 위치하는 오프셋 위치에 의해 이동되는 CSS 위치 애니메이션 과 같은 애니메이션 이미지에 대한 사용자 정의 애니메이션 메커니즘을 사용 합니다.
Tomáš Zato-복원 모니카

@ TomášZato True. 죄송합니다. 다른 말로 했습니까?
크롬 스터는 모니카

2
@ luk32 이것은 오래된 GIF 압축보다 압축 방법이 훨씬 우수하기 때문에 단점입니다. 따라서 차선책 GIF 압축을 사용하거나 두 번 압축 해제 (압축 해제)합니다 (이미 압축 된 데이터를 압축하면 일반적으로 더 큰 크기가 생성됩니다).
크롬 스터는 모니카

32

게임에서 이미지 파일을 텍스처로 사용하려면 GPU에 텍스처가 생성되고 이미지 파일의 픽셀 데이터가 해당 텍스처에로드되어야합니다.

GPU CPU의 이미지 파일이 지원하는 많은 기능을 지원 하지 않습니다 . JPG 압축을 지원하지 않고 PNG 압축을 지원하지 않으며 GIF를 특히 참조하면 자동 애니메이션을 지원하지 않습니다 .

따라서 GIF 파일을 사용해도 어쨌든 자체 애니메이션 및 타이밍 코드를 작성해야합니다. GIF는 아무 것도 제공하지 않습니다.


30
"CPU"는 이러한 기능을 지원하지 않으며 웹 브라우저 및 운영 체제는 지원합니다.
user253751

7
아직 아무도 GPGPU 웹 브라우저를 작성하지 않았습니까?
Camille Goudeseune

7
@CamilleGoudeseune 웃어요. 나는 울었다.
3Dave

13

GIF에는 제한된 색상 팔레트가 있습니다. (255) GIF 구문 분석 및 애니메이션도 구현해야합니다. 따라서 시간의 발전이나 형식의 기술적 측면은 없습니다.


4
투명성이 필요하지 않으면 256, 그렇지 않으면 255가 효과적입니다.
CVn

@ MichaelKjörling 투명도는 여전히 256입니다. 색상 중 하나만 "투명"으로 지정됩니다. 정보가 헤더에 저장되어 있다고 생각합니다.
3Dave

@DavidLively 따라서 "효과적인". 색상은 여전히 ​​있지만 불투명 한 색상으로 사용할 수 없습니다.
CVn

@ 크롬 스터. 삭제했습니다. 나는 좋은 수학을 할 수 있습니다.
3Dave
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.