kyuskoj 发表于 2022-2-26 19:40

unity 静态烘焙、批处理注意事项

Batch Breaking Cause

This project demonstrates different cases when Unity has to break a batch while rendering.
Best used with Unity 5.6b4+ where the Frame Debugger window shows why Unity had to start a new batch.
Causes


[*]Additional Vertex Streams — the object has additional vertex streams set using MeshRenderer.additionalVertexStreams.
[*]Deferred Objects on Different Lighting Layers — the object is on a different light layer.
[*]Deferred Objects Split by Shadow Distance — one of the objects is within shadow distance, the other one is not.
[*]Different Combined Meshes — the object belongs to another combined static mesh.
[*]Different Custom Properties — the object has a different MaterialProperyBlock set.
[*]Different Lights — the object is affected by a different forward light.
[*]Different Materials — the object has a different material.
[*]Different Reflection Probes — the object is affected by a different reflection probe.
[*]Different Shadow Caster Hash — the objects either have different shadow caster shaders, or have different shader properties / keywords that affect the output of the shadow caster pass.
[*]Different Shadow Receiving Settings — the objects either have different "Receive Shadows" settings, or some objects are within the shadow distance, while some other objects are not.
[*]Different Static Batching Flags — the object has different static batching settings.
[*]Dynamic Batching Disabled to Avoid Z-Fighting — dynamic batching is turned off in Player Settings or disabled temporarily in the current context to avoid z-fighting.
[*]Instancing Different Geometries — rendering different meshes or sub-meshes with GPU instancing.
[*]Lightmapped Objects — the object uses a different light map or has different light map uv transformations within the same light map.
[*]Lightprobe Affected Objects — the object is affected by different light probes.
[*]Mixed Sided Mode Shadow Casters — objects have different "Cast Shadows" settings.
[*]Multipass — the object is using a multi-pass shader.
[*]Multiple Forward Lights — the object is affected by multiple forward lights.
[*]Non-instanceable Property Set — non-instanced properties are set for an instanced shader.
[*]Odd Negative Scaling — the object has odd negative scaling (e.g. (1, -1, 1)).
[*]Shader Disables Batching — the shader explicitly disables batching with the "DisableBatching" tag.
[*]Too Many Indices in Dynamic Batch — there are too many indices (more than 32k) in a dynamic batch.
[*]Too Many Indices in Static Batch — there are too many indices in the combined mesh of a static batch. The limit is 48k indices on OpenGL ES, 32k on OSX and 64k on other platforms.
[*]Too Many Vertex Attributes for Dynamic Batching — a submesh we are trying to dynamically batch has more than 900 vertex attributes.
[*]Too Many Vertices for Dynamic Batching — a submesh we are trying to dynamically batch has more than 300 vertices.
页: [1]
查看完整版本: unity 静态烘焙、批处理注意事项