내가 만난 게임 미들웨어---Redux, Redux에 대하여:
추천 강좌: C# tutorial.
Substance Redux는 텍스처 생성 및 압축에 특별히 사용되는 텍스처 처리 소프트웨어와 미들웨어입니다. 사용자 가이드에 따르면 텍스처 세트를 최적화하고 기존 압축 알고리즘의 성능을 50% 이상 향상시킬 수 있습니다. 압축 방법은 무손실 압축과 무손실 압축이 있습니다. 압축 중에 압축률과 이미지 품질을 사용자가 맞춤 설정할 수 있습니다.
Redux는 배치 텍스처 파일을 압축하고 패키징할 수 있습니다. 작업 프로세스는 새 프로젝트 프로젝트를 만들고, 프로젝트에 대한 여러 텍스처 파일을 가져오고, 각 텍스처의 압축 매개변수를 설정하는 것입니다. 마지막으로 압축 파일을 내보냅니다. Redux는 다양한 형식의 이미지 파일을 압축할 수 있습니다. 입력 이미지의 길이와 너비가 2의 N 거듭제곱이 아닌 경우 Redux는 자동으로 이를 2의 N 거듭제곱으로 늘립니다. ReduxSDK에서 제공하는 Demo에는 압축된 파일을 DDS 형식으로 압축 해제하는 기능이 있습니다.
Redux의 가장 큰 장점은 이미지 생성 기능입니다. 여러 가지 간단한 그래픽 요소를 사용하여 알고리즘을 통해 복잡한 이미지를 생성할 수 있습니다. 그래픽 요소는 적은 양의 디스크 공간만 차지하면 됩니다. 생성 방법이 절약됩니다. 공식 설명에 따르면 게임의 디스크 공간 중 가장 큰 부분은 텍스처입니다. Redux를 사용하면 텍스처가 차지하는 디스크 공간을 최소한으로 줄여 크기를 줄일 수 있습니다. 게임 출시 패키지는 최대 2개입니다.
2개. Redux 압축 방법
Redux는 3가지 텍스처 압축 방법을 제공합니다.
Redux 모드 1(Redux 모드 1)은 대부분의 경우 압축 비율이 가장 작은 무손실 압축 알고리즘입니다. 그러나 일반적으로 가장 빠르게 렌더링됩니다.
Redux 모드 2(Redux mode 2)는 고품질의 이미지를 제공하는 빠른 압축 알고리즘이지만 크기 감소율은 약 40%입니다.
Redux 모드 3은 이미지 품질과 크기 감소율 간의 대략적인 균형을 달성합니다. 이미지 품질은 모드 2보다 낮지만 이 모드를 사용하면 더 높은 압축률을 얻을 수 있습니다. 크기 감소율은 약 60%입니다.
실제 작업에서 300개의 DDS 파일을 압축해본 결과 Redux 모드 2와 Redux 모드 3에서 생성되는 파일 크기가 동일한 것을 확인했습니다. 당시에는 이러한 DDS 파일의 특정 압축 형식에 관심이 없었습니다. 아마도 대부분이 DXT5였을 것입니다.
3. Redux 압축 파일
Redux는 주로 배치 텍스처 파일을 압축합니다. 압축 파일은 두 가지 범주로 나뉩니다. 기본 데이터 파일의 디렉터리를 포함하고 압축 해제 코드에 각 텍스처의 위치를 제공하는 "헤더" 파일입니다. 이 파일은 .RDXH 확장자를 가지며 텍스처 이름, 폴더 및 경로와 같은 각 텍스처에 대한 세부 정보를 저장합니다. 실제 압축된 텍스처를 포함하고 확장자가 .RDXC인 하나 이상의 "데이터" 파일입니다. 두 번째 유형의 파일은 "블록"에 있습니다. 하나의 데이터 "청크"만 처리하면 되도록 모든 텍스처를 하나의 큰 파일에 저장할 수 있습니다. 내보낸 압축된 "청크" 파일에는
1의 세 가지 설정이 있습니다. 청크 없음 - 프로젝트의 각 개별 텍스처를 포함하는 대용량 데이터 파일입니다. 크기 제한에 따라 분할(크기 제한에 따라 청크 분할) - 예를 들어 데이터 4MB마다 새 청크를 생성합니다.
3 콘텐츠에 따라 청크 분할(콘텐츠에 따라 블록 분할) - 즉, 각 텍스처에 대해 새 블록을 만듭니다. 이때 헤더 파일과 여러 개의 청크 파일이 생성됩니다.
압축파일 생성 후 원본 텍스처 파일에 변경사항이 있는 경우 압축파일을 다시 생성해야 합니다. 이런 종류의 압축은 내 생각에 맞지 않습니다. 내가 원하는 것은 텍스처 이름으로 압축된 파일을 찾고, 파일을 로드하고, 압축을 풀고 텍스처를 생성하는 것입니다. Redux를 사용하는 경우 엔진은 먼저 .RDXH 헤더 파일을 로드하고 Redux에서 정의한 ReduxHandle 개체를 생성해야 합니다. 그런 다음 텍스처 이름에 따라 텍스처 첨자 인덱스를 찾은 다음 Redux에서 제공하는 인터페이스를 사용하여 인덱스 값을 통해 텍스처 데이터를 얻습니다. 생성된 압축 파일에 하나의 텍스처가 포함되도록 텍스처 파일이 하나만 포함된 Redux 프로젝트를 만듭니다. 이는 매우 번거롭고 많은 작업이 필요합니다.
넷. Redux 압축해제
ReduxSDK에서 제공하는 데모는 압축된 파일을 DDS 형식에 맞는 데이터로 압축해제합니다. 먼저 300개의 DDS 파일을 사용하여 테스트합니다. 원본 파일 크기는 59.6M이며, RAR로 압축하면 25.9M 크기가 됩니다. 당시 DDS의 압축형식은 기록되지 않았으며, 대부분의 파일이 DXT5인 것으로 추정됩니다. 🎜#동기화된 텍스처 생성 시간 1
동기적 텍스처 생성 시간 2
Uncompressed | # 🎜🎜#59.6M |
2355ms# 🎜🎜# | 6172ms
#🎜 🎜#6133ms |
|
무손실 압축 |
19.5M |
743ms |
25016ms |
24985ms |
Redux 모드2 40% 감소 |
17. M |
702ms |
25862ms |
25860 ms |
Redux 모드3 50% 감소 |
17.3M |
674ms |
25878 ms |
25911ms |
Redux 모드1 무손실 압축 텍스처 당 Chunk | 20.6M |
813ms (이제 ReduxHandle을 생성할 차례입니다) |
29027ms |
29089ms |
300개의 텍스처를 생성하기 위해 로컬 파일을 로드하는 데 소요되는 시간 필요한 시간은 약 8초이며, Redux 파일의 압축을 풀어 300개의 텍스처를 생성하는 데 30초 이상이 소요되며, 이는 로컬로 로드하는 것보다 4배 더 오래 걸립니다.
다양한 크기의 파일의 경우 텍스처를 생성하는 데 사용되는 시간은 다음 표에 표시됩니다.
텍스처 크기 |
파일 크기 |
엔진 로딩 생성 시간 |
Redux Mode1 생성 시간 |
Redux Mode2 생성 시간 |
Redux Mode3 생성 시간 |
128*128 |
11K |
1ms |
105ms |
31ms |
3 0ms |
256* 256ㅋㅋㅋ K |
49ms |
206ms |
140ms |
137ms |
|
1025K |
176ms |
297ms |
418ms |
415 ms |
|
5462K | 242ms |
2263ms |
2265ms |
2294ms |
위 내용은 게임에서 redux는 무엇을 의미하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!