중화사전망 - 서예자전 - 통합 프로젝트의 예술 자원 규범에 대한 몇 가지 제안

통합 프로젝트의 예술 자원 규범에 대한 몇 가지 제안

Unity 프로젝트에서는 지도, 모형, 애니메이션 등의 미술 자원을 불가피하게 처리해야 한다. 완전하고 합리적인 자원 사양이 필요합니다. 이 글은 내가 프로젝트에서 예술 자원 규범에 관한 몇 가지 실천을 총결하였다.

그림을 타일링할 때 어떻게 타일링합니까? UGUI 에서 하나의 메시에 타일링을 반복하면 Clamp 에서 많은 메시를 생성합니다.

이미지를 축소하면 샘플을 반복하면 가장자리에 오류가 발생할 수 있으므로 클램프로 설정해야 하며, 다른 경우에는 중복으로 설정하는 것이 좋습니다. UGUI 의 이미지 구성요소가 타일로 설정되어 있으면 반복하도록 설정하라는 메시지가 표시됩니다.

이것은 감마 공간과 선형 공간에 관한 것이다. SRGB 는 sRGB 공간에서 사진을 찍었는지 시스템에 알려줍니다. 선형 공간에서 그릴 때 GPU 에게 이 그림이 sRGB 공간에서 만들어졌으며 GPU 는 감마 보정을 하지 않는다고 말해야 합니다.

항목이 감마 공간에 있는 경우 이 설정의 선택 여부에 관계없이 차이가 없습니다.

프로젝트가 선형 공간에 있을 때 디자이너는 sRGB 공간에서 그림이 만들어졌는지 여부를 알려 sRGB 옵션이 선택되었는지 확인해야 합니다.

플랫폼별 텍스처 압축 옵션은 설치 패키지의 크기와 텍스처의 메모리 크기와 관련이 있습니다. 사진과 텍스처를 참고할 수 있습니다.

텍스처 읽기/쓰기 활성화와 마찬가지로 추가 메모리를 사용하며 모델 데이터를 수정하고 읽어야 하는 경우에만 열어야 합니다. 한 가지 경우는 ParticleSystem 에서 메시를 렌더러로 사용할 때 메시의 해당 모델에 읽기/쓰기가 설정되어 있어야 한다는 것입니다.

입자 시스템의 렌더러로 사용할 때 설정하고 그렇지 않으면 끕니다.

설정하면 모델 정점이 더 잘 정렬되고 GPU 성능이 향상됩니다.

시종 개방하다

모형 파일에 저장된 정점 법선 및 접선 데이터.

재질에서 법선 또는 접선 데이터를 사용하지 않는 경우 삭제하고 없음 옵션을 선택해야 합니다.

이 데이터 부분에 대한 옵션은 검사기 뷰에 표시되지 않으며 모델을 UV2/ 색상 등의 정보와 함께 내보낼 수 있습니다. 만약 그것이 너의 재료에 사용되지 않는다면, 그것은 중복성을 초래할 것이다.

재료가 중복 속성을 사용하지 않도록 하기 위해 재질을 삭제합니다.

애니메이션 유형은 일반적이며 인간적입니다. Humanoid 는 더 나은 리디렉션 기능을 가지고 있고, Generic 은 더 나은 효율성과 메모리 장점을 가지고 있다.

실제 상황에 따라 선택하다

런타임 시 골격 노드가 노출되지 않고 많은 변환 구성요소가 손실되어 AnimatorUpdate 의 효율성이 크게 향상됩니다. 공개해야 하는 매달린 노드가 있는 경우 공개할 추가 변환 리스트에 추가할 수 있습니다.

늘 체크하다

모델에서 애니메이션을 가져올지 여부, 일부 모델은 메시만 제공해야 하며 애니메이션은 개별적으로 가져와야 합니다. 이 경우 추가 애니메이션을 가져오지 않도록 선택하지 마십시오.

특정 상황을보고 애니메이션을 가져올 필요가 있는지 확인하십시오.

애니메이션의 오일러 데이터를 쿼터니언으로 변환하고 애니메이션을 업데이트할 때 쿼터니언을 사용합니다. 이렇게 하면 계산 변환 감소, 보간이 더 부드러워지고 성능 향상이 줄어들며 메모리가 약 10%-20% 증가합니다.

정상적인 상황에서는 검사하지 않습니다.

특정 전략에 따라 애니메이션이 압축됩니다.

일반적으로 최적 압축을 선택하고 적절한 위치/회전/축척 오류 값을 설정합니다. 숫자가 클수록 애니메이션 오차가 커질수록 경험치가 필요합니다.

옵션에 노출되지 않습니다. 캐릭터 골격 애니메이션은 회전/위치/배율 조정 곡선으로 구성됩니다. 대부분의 경우 캐릭터 애니메이션의 배율이 거의 조정되지 않으므로 배율 조정 곡선을 삭제하여 파일 및 메모리 크기를 줄일 수 있습니다.

자원 가져오기 스크립트에 논리를 추가하여 배율 조정 곡선을 제거합니다. 애니메이션이 배율 조정 곡선에서 실행되는 경우 스크립트는 고속으로 이름이 지정되고 처리를 건너뜁니다.

부동 소수점 숫자의 정밀도가 3 자리를 초과하면 대부분의 사람들은 그 차이를 인식하지 못하며 부동 소수점 숫자의 높은 정밀도로 인해 저장 낭비가 발생합니다.

자원 가져오기 스크립트에 논리를 추가하여 부동 소수점 숫자의 정밀도를 압축합니다.

셰이더를 남용하면 입자 재질에 복잡한 셰이더를 사용할 수 있으므로 렌더링 성능이 저하될 수 있습니다.

셰이더 목록을 유지 관리합니다. ParticleSystem 에서 사용하는 재질은 리스트에서만 선택할 수 있습니다. 스크립트를 트리거할 때 스캔된 입자 시스템의 사전 설정된 재질이 목록 외부의 셰이더를 참조하는지 확인하고 오류를 보고합니다.

입자의 매핑 정밀도는 일반적으로 높지 않고 256x256 이면 충분합니다.

입자가 참조하는 맵은 가능한 한 작아야 하며 256x256 을 넘지 않아야 합니다.

입자의 렌더링-렌더링 모드 메시를 선택할 때 읽기/쓰기가 설정된 상태에서 해당 메시를 확인해야 합니다. 그렇지 않으면 렌더링 오류가 발생하고 렌더링된 메시가 입자에 많이 사용되므로 메시의 수와 수를 제어해야 합니다.

입자 시스템에서 사용되는 메시로 읽기/쓰기 사용을 선택합니다. 단일 면의 수는 500 개를 넘지 않아야 하며 입자 시스템에서 5 개를 넘지 않아야 합니다.

입자는 활성화되지 않지만 참조하는 재질, 셰이더, 메시 및 맵은 설치 패키지에 내장되어 메모리에 로드됩니다.

스크립트에서 비활성 입자를 확인하고 삭제합니다.

이것은 실제로 Unity 직렬화 메커니즘의 문제입니다. 입자의 렌더링 모드를 메시로 선택하고 메시로 지정할 때 렌더링 모드를 다른 방법 (광고판) 으로 변경하고 이전에 참조된 메시는 입자에 의해 계속 참조됩니다 (확인). 메타파일) 로 인해 완료되지 않아야 하는 빌드 및 로드가 발생합니다.

스크립트를 검사하여 중복 리소스 참조를 제거합니다.