feat: LOD 网格分级——meshopt 解析期简化 + 按距离/级联选级
vendored meshoptimizer 1.2(submodule 环境故障改直接 vendor)。Mesh 多 LOD:各级索引连续拼进同一 index buffer(共享顶点,LodRange 区间 选择),解析期 meshopt_simplify 生成链(LOD0=原始,每级目标减半, 相对误差 1e-2,小网格复用上级);都在 worker 线程,加载零额外卡顿。 SceneRenderer 按 (mesh, LOD) 聚合 batch(lookup key = 指针<<8|lod): 主视图按屏占比近似 radius/dist 选级(阈值 10/20 倍半径);阴影级联 按级联序降级(越远越简)。Draw 按 batch.lod 选索引区间。 A/B 对比(100 背包 10×10,RTX 5060 Laptop,vsync off): - 纯背包:LOD 开 93-95 fps / 关 90-107 fps —— 无显著差异 - 加 SunTemple:LOD 开 52-56 / 关 51-55 —— 无显著差异 结论:当前场景瓶颈不在顶点数(5060 顶点吞吐富余),LOD 基础设施 保留(几何复杂资产/低端 GPU/更大场景生效),帧率问题转向 Tracy GPU 时间线定位真实瓶颈。 坑:LodRange 记录"LOD 不足复用最后一级"时 first 不得继续累加 (buffer 无重复数据,累加必越界——VUID-08798 抓的)。
This commit is contained in:
@@ -0,0 +1,303 @@
|
||||
#
|
||||
# AFL dictionary for JSON
|
||||
# -----------------------
|
||||
#
|
||||
# Just the very basics.
|
||||
#
|
||||
# Inspired by a dictionary by Jakub Wilk <jwilk@jwilk.net>
|
||||
#
|
||||
|
||||
"0"
|
||||
",0"
|
||||
":0"
|
||||
"0:"
|
||||
"-1.2e+3"
|
||||
|
||||
"true"
|
||||
"false"
|
||||
"null"
|
||||
|
||||
"\"\""
|
||||
",\"\""
|
||||
":\"\""
|
||||
"\"\":"
|
||||
|
||||
"{}"
|
||||
",{}"
|
||||
":{}"
|
||||
"{\"\":0}"
|
||||
"{{}}"
|
||||
|
||||
"[]"
|
||||
",[]"
|
||||
":[]"
|
||||
"[0]"
|
||||
"[[]]"
|
||||
|
||||
"''"
|
||||
"\\"
|
||||
"\\b"
|
||||
"\\f"
|
||||
"\\n"
|
||||
"\\r"
|
||||
"\\t"
|
||||
"\\u0000"
|
||||
"\\x00"
|
||||
"\\0"
|
||||
"\\uD800\\uDC00"
|
||||
"\\uDBFF\\uDFFF"
|
||||
|
||||
"\"\":0"
|
||||
"//"
|
||||
"/**/"
|
||||
|
||||
#
|
||||
# AFL dictionary for GLTF core
|
||||
# -----------------------
|
||||
|
||||
"5120"
|
||||
"5121"
|
||||
"5122"
|
||||
"5123"
|
||||
"5125"
|
||||
"5126"
|
||||
"\"BLEND\""
|
||||
"\"CUBICSPLINE\""
|
||||
"\"LINEAR\""
|
||||
"\"MASK\""
|
||||
"\"MAT2\""
|
||||
"\"MAT3\""
|
||||
"\"MAT4\""
|
||||
"\"OPAQUE\""
|
||||
"\"POSITION\""
|
||||
"\"NORMAL\""
|
||||
"\"TANGENT\""
|
||||
"\"TEXCOORD\""
|
||||
"\"JOINTS\""
|
||||
"\"WEIGHTS\""
|
||||
"\"SCALAR\""
|
||||
"\"STEP\""
|
||||
"\"VEC2\""
|
||||
"\"VEC3\""
|
||||
"\"VEC4\""
|
||||
"\"accessor\""
|
||||
"\"accessors\""
|
||||
"\"alphaCutoff\""
|
||||
"\"alphaMode\""
|
||||
"\"animations\""
|
||||
"\"aspectRatio\""
|
||||
"\"asset\""
|
||||
"\"attributes\""
|
||||
"\"baseColorFactor\""
|
||||
"\"baseColorTexture\""
|
||||
"\"bufferView\""
|
||||
"\"bufferViews\""
|
||||
"\"buffer\""
|
||||
"\"buffers\""
|
||||
"\"byteLength\""
|
||||
"\"byteOffset\""
|
||||
"\"byteStride\""
|
||||
"\"camera\""
|
||||
"\"cameras\""
|
||||
"\"channel\""
|
||||
"\"channels\""
|
||||
"\"children\""
|
||||
"\"componentType\""
|
||||
"\"copyright\""
|
||||
"\"count\""
|
||||
"\"doubleSided\""
|
||||
"\"emissiveFactor\""
|
||||
"\"emissiveTexture\""
|
||||
"\"extensionsRequired\""
|
||||
"\"extensionsUsed\""
|
||||
"\"extensions\""
|
||||
"\"extras\""
|
||||
"\"generator\""
|
||||
"\"image\""
|
||||
"\"images\""
|
||||
"\"index\""
|
||||
"\"indices\""
|
||||
"\"input\""
|
||||
"\"interpolation\""
|
||||
"\"inverseBindMatrices\""
|
||||
"\"joints\""
|
||||
"\"magFilter\""
|
||||
"\"material\""
|
||||
"\"materials\""
|
||||
"\"matrix\""
|
||||
"\"max\""
|
||||
"\"mesh\""
|
||||
"\"meshes\""
|
||||
"\"metallicFactor\""
|
||||
"\"metallicRoughnessTexture\""
|
||||
"\"mimeType\""
|
||||
"\"minFilter\""
|
||||
"\"minVersion\""
|
||||
"\"min\""
|
||||
"\"mode\""
|
||||
"\"name\""
|
||||
"\"node\""
|
||||
"\"nodes\""
|
||||
"\"normalTextureInfo\""
|
||||
"\"normalTexture\""
|
||||
"\"normalized\""
|
||||
"\"occlusionTextureInfo\""
|
||||
"\"occlusionTexture\""
|
||||
"\"orthographic\""
|
||||
"\"output\""
|
||||
"\"path\""
|
||||
"\"pbrMetallicRoughness\""
|
||||
"\"perspective\""
|
||||
"\"primitive\""
|
||||
"\"primitives\""
|
||||
"\"rotation\""
|
||||
"\"roughnessFactor\""
|
||||
"\"sampler\""
|
||||
"\"samplers\""
|
||||
"\"scale\""
|
||||
"\"scene\""
|
||||
"\"scenes\""
|
||||
"\"skeleton\""
|
||||
"\"skin\""
|
||||
"\"skins\""
|
||||
"\"source\""
|
||||
"\"sparse\""
|
||||
"\"strength\""
|
||||
"\"target\""
|
||||
"\"targets\""
|
||||
"\"texCoord\""
|
||||
"\"textureInfo\""
|
||||
"\"texture\""
|
||||
"\"textures\""
|
||||
"\"translation\""
|
||||
"\"type\""
|
||||
"\"uri\""
|
||||
"\"values\""
|
||||
"\"version\""
|
||||
"\"weights\""
|
||||
"\"wrapS\""
|
||||
"\"wrapT\""
|
||||
"\"xmag\""
|
||||
"\"yfov\""
|
||||
"\"ymag\""
|
||||
"\"zfar\""
|
||||
"\"znear\""
|
||||
|
||||
#
|
||||
# AFL dictionary for GLTF extensions
|
||||
# -----------------------
|
||||
"\"KHR_materials_unlit\""
|
||||
"\"KHR_draco_mesh_compression\""
|
||||
"\"KHR_texture_basisu\""
|
||||
|
||||
"\"KHR_materials_pbrSpecularGlossiness\""
|
||||
"\"diffuseFactor\""
|
||||
"\"diffuseTexture\""
|
||||
"\"specularFactor\""
|
||||
"\"glossinessFactor\""
|
||||
"\"specularGlossinessTexture\""
|
||||
|
||||
"\"KHR_texture_transform\""
|
||||
"\"offset\""
|
||||
"\"rotation\""
|
||||
"\"scale\""
|
||||
"\"texCoord\""
|
||||
|
||||
"\"KHR_lights_punctual\""
|
||||
"\"color\""
|
||||
"\"directional\""
|
||||
"\"intensity\""
|
||||
"\"light\""
|
||||
"\"lights\""
|
||||
"\"point\""
|
||||
"\"spot\""
|
||||
"\"type\""
|
||||
"\"range\""
|
||||
"\"innerConeAngle\""
|
||||
"\"outerConeAngle\""
|
||||
|
||||
"\"KHR_materials_transmission\""
|
||||
"\"transmissionFactor\""
|
||||
"\"transmissionTexture\""
|
||||
|
||||
"\"KHR_materials_volume\""
|
||||
"\"thicknessFactor\""
|
||||
"\"thicknessTexture\""
|
||||
"\"attenuationColor\""
|
||||
"\"attenuationDistance\""
|
||||
|
||||
"\"KHR_materials_sheen\""
|
||||
"\"sheenColorFactor\""
|
||||
"\"sheenColorTexture\""
|
||||
"\"sheenRoughnessFactor\""
|
||||
"\"sheenRoughnessTexture\""
|
||||
|
||||
"\"KHR_materials_emissive_strength\""
|
||||
"\"emissiveStrength\""
|
||||
|
||||
"\"KHR_materials_clearcoat\""
|
||||
"\"clearcoatFactor\""
|
||||
"\"clearcoatTexture\""
|
||||
"\"clearcoatRoughnessFactor\""
|
||||
"\"clearcoatRoughnessTexture\""
|
||||
"\"clearcoatNormalTexture\""
|
||||
|
||||
"\"KHR_materials_ior\""
|
||||
"\"ior\""
|
||||
|
||||
"\"KHR_materials_specular\""
|
||||
"\"specularFactor\""
|
||||
"\"specularTexture\""
|
||||
"\"specularColorFactor\""
|
||||
"\"specularColorTexture\""
|
||||
|
||||
"\"KHR_materials_iridescence\""
|
||||
"\"iridescenceFactor\""
|
||||
"\"iridescenceTexture\""
|
||||
"\"iridescenceIor\""
|
||||
"\"iridescenceThicknessMinimum\""
|
||||
"\"iridescenceThicknessMaximum\""
|
||||
"\"iridescenceThicknessTexture\""
|
||||
|
||||
"\"KHR_materials_anisotropy\""
|
||||
"\"anisotropyStrength\""
|
||||
"\"anisotropyRotation\""
|
||||
"\"anisotropyTexture\""
|
||||
|
||||
"\"KHR_materials_dispersion\""
|
||||
"\"dispersion\""
|
||||
|
||||
"\"KHR_materials_diffuse_transmission\""
|
||||
"\"diffuseTransmissionFactor\""
|
||||
"\"diffuseTransmissionTexture\""
|
||||
"\"diffuseTransmissionColorFactor\""
|
||||
"\"diffuseTransmissionColorTexture\""
|
||||
|
||||
"\"KHR_materials_variants\""
|
||||
"\"mappings\""
|
||||
"\"targetNames\""
|
||||
"\"variants\""
|
||||
|
||||
"\"EXT_texture_webp\""
|
||||
|
||||
"\"EXT_mesh_gpu_instancing\""
|
||||
"\"TRANSLATION\""
|
||||
"\"ROTATION\""
|
||||
"\"SCALE\""
|
||||
"\"_COLOR_0\""
|
||||
|
||||
"\"EXT_meshopt_compression\""
|
||||
"\"KHR_meshopt_compression\""
|
||||
"\"mode\""
|
||||
"\"filter\""
|
||||
"\"fallback\""
|
||||
"\"ATTRIBUTES\""
|
||||
"\"TRIANGLES\""
|
||||
"\"INDICES\""
|
||||
"\"NONE\""
|
||||
"\"OCTAHEDRAL\""
|
||||
"\"QUATERNION\""
|
||||
"\"EXPONENTIAL\""
|
||||
"\"COLOR\""
|
||||
|
||||
"\"KHR_mesh_quantization\""
|
||||
Reference in New Issue
Block a user