gitextract_bg_rxfqd/ ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── contributing.md │ └── workflows/ │ └── deploy-to-pages.yml ├── .gitignore ├── .vscode/ │ └── extensions.json ├── LICENSE ├── README.md ├── build/ │ ├── t3d.js │ └── t3d.module.js ├── eslint.config.mjs ├── examples/ │ ├── animation_blending_additive.html │ ├── animation_bone_attach.html │ ├── animation_crossfade.html │ ├── animation_interpolant.html │ ├── animation_keyframe_animation.html │ ├── animation_morphtargets.html │ ├── animation_multiple.html │ ├── animation_skinned_instancing.html │ ├── animation_skinned_mesh.html │ ├── animation_snake.html │ ├── camera_multiple.html │ ├── camera_projection.html │ ├── canvas2d_canvas2d.html │ ├── controls_camera_fly.html │ ├── controls_camera_free.html │ ├── controls_camera_orbit.html │ ├── controls_camera_view.html │ ├── controls_transform.html │ ├── custompass_bloom.html │ ├── custompass_blur.html │ ├── custompass_car.html │ ├── custompass_deferred.html │ ├── custompass_depth_buffer_share.html │ ├── custompass_depth_texture_share.html │ ├── custompass_dof.html │ ├── custompass_gbuffer.html │ ├── custompass_gpupick.html │ ├── custompass_lensflare.html │ ├── custompass_motion_blur.html │ ├── custompass_motion_blur2.html │ ├── custompass_msaa.html │ ├── custompass_oit.html │ ├── custompass_rendertarget_2d.html │ ├── custompass_rendertarget_3d.html │ ├── custompass_shadow_planar.html │ ├── custompass_sketch.html │ ├── custompass_ssao.html │ ├── custompass_ssr.html │ ├── custompass_taa.html │ ├── custompass_transmission.html │ ├── custompass_unrealbloom.html │ ├── custompass_xray.html │ ├── exporter_draco.html │ ├── exporter_gltf.html │ ├── files/ │ │ ├── fonts/ │ │ │ ├── OFL-hind.txt │ │ │ └── OFL-montserrat.txt │ │ └── main.css │ ├── files.json │ ├── geometry_boundings.html │ ├── geometry_builder_edges.html │ ├── geometry_builder_lines.html │ ├── geometry_builder_shapes.html │ ├── geometry_geometries.html │ ├── geometry_groups.html │ ├── geometry_loader_assimp2json.html │ ├── geometry_loader_gltf.html │ ├── geometry_loader_gltf2.html │ ├── geometry_loader_gltf3.html │ ├── geometry_loader_gltf_avif.html │ ├── geometry_loader_gltf_camera.html │ ├── geometry_loader_gltf_draco.html │ ├── geometry_loader_gltf_helmat.html │ ├── geometry_loader_gltf_instancing.html │ ├── geometry_loader_gltf_lights.html │ ├── geometry_loader_gltf_materials_clearcoat.html │ ├── geometry_loader_gltf_materials_dispersion.html │ ├── geometry_loader_gltf_materials_transmission.html │ ├── geometry_loader_gltf_materials_unlit.html │ ├── geometry_loader_gltf_meshopt.html │ ├── geometry_loader_gltf_morphtargets.html │ ├── geometry_loader_gltf_pointer.html │ ├── geometry_loader_gltf_skinning.html │ ├── geometry_loader_gltf_tangent.html │ ├── geometry_loader_gltf_uvtransform.html │ ├── geometry_loader_vox.html │ ├── index.html │ ├── jsm/ │ │ ├── Clock.js │ │ ├── DynamicFont.js │ │ ├── GBuffer.js │ │ ├── PickBuffer.js │ │ ├── Raycaster.js │ │ ├── SHGenerator.js │ │ ├── SceneUtils.js │ │ ├── SkeletonUtils.js │ │ ├── SuperSampling.js │ │ ├── VoxMeshBuilder.js │ │ ├── WaterSimulation.js │ │ ├── WorkerPool.js │ │ ├── animation/ │ │ │ ├── CCDIKSolver.js │ │ │ └── LockedTrack.js │ │ ├── canvas2d/ │ │ │ ├── Canvas2D.js │ │ │ ├── Object2D.js │ │ │ └── Sprite2D.js │ │ ├── controls/ │ │ │ ├── FlyControls.js │ │ │ ├── FreeControls.js │ │ │ ├── OrbitControls.js │ │ │ ├── TransformControls.js │ │ │ └── ViewControls.js │ │ ├── exporters/ │ │ │ ├── DRACOExporter.js │ │ │ └── GLTFExporter.js │ │ ├── geometries/ │ │ │ ├── BitmapTextGeometry.js │ │ │ ├── CapsuleGeometry.js │ │ │ ├── CircleGeometry.js │ │ │ ├── GeometryUtils.js │ │ │ └── builders/ │ │ │ ├── Earcut.js │ │ │ ├── EdgesBuilder.js │ │ │ ├── ExtrudeShapeBuilder.js │ │ │ ├── Font.js │ │ │ ├── GeometryBuilderUtils.js │ │ │ ├── LatheBuilder.js │ │ │ ├── PolygonBuilder.js │ │ │ ├── PolyhedronBuilder.js │ │ │ ├── RouteBuilder.js │ │ │ ├── TorusBuilder.js │ │ │ └── TubeBuilder.js │ │ ├── impostor/ │ │ │ ├── OctahedralImpostor.js │ │ │ └── OctahedralTextureGenerator.js │ │ ├── lights/ │ │ │ ├── LightShadowAdapter.js │ │ │ └── RectAreaLightLTC.js │ │ ├── loaders/ │ │ │ ├── AssimpJsonLoader.js │ │ │ ├── DDSLoader.js │ │ │ ├── DRACOLoader.js │ │ │ ├── EXRLoader.js │ │ │ ├── EnvLoader.js │ │ │ ├── ImageBitmapLoader.js │ │ │ ├── KTX2Loader.js │ │ │ ├── PVRLoader.js │ │ │ ├── RGBELoader.js │ │ │ ├── TGALoader.js │ │ │ ├── Texture2DLoader.js │ │ │ ├── TextureCubeLoader.js │ │ │ └── glTF/ │ │ │ ├── Constants.js │ │ │ ├── GLTFLoader.js │ │ │ ├── GLTFResource.js │ │ │ ├── GLTFUtils.js │ │ │ ├── extensions/ │ │ │ │ ├── EXT_mesh_gpu_instancing.js │ │ │ │ ├── EXT_meshopt_compression.js │ │ │ │ ├── KHR_animation_pointer.js │ │ │ │ ├── KHR_draco_mesh_compression.js │ │ │ │ ├── KHR_lights_punctual.js │ │ │ │ ├── KHR_materials_clearcoat.js │ │ │ │ ├── KHR_materials_dispersion.js │ │ │ │ ├── KHR_materials_ior.js │ │ │ │ ├── KHR_materials_pbrSpecularGlossiness.js │ │ │ │ ├── KHR_materials_transmission.js │ │ │ │ ├── KHR_materials_unlit.js │ │ │ │ ├── KHR_materials_volume.js │ │ │ │ ├── KHR_texture_basisu.js │ │ │ │ └── KHR_texture_transform.js │ │ │ └── parsers/ │ │ │ ├── AccessorParser.js │ │ │ ├── AnimationParser.js │ │ │ ├── BufferParser.js │ │ │ ├── BufferViewParser.js │ │ │ ├── ImageParser.js │ │ │ ├── IndexParser.js │ │ │ ├── MaterialParser.js │ │ │ ├── NodeParser.js │ │ │ ├── PrimitiveParser.js │ │ │ ├── ReferenceParser.js │ │ │ ├── SceneParser.js │ │ │ ├── SkinParser.js │ │ │ ├── TextureParser.js │ │ │ └── Validator.js │ │ ├── materials/ │ │ │ ├── AlphaHashedPBRMaterial.js │ │ │ ├── AttenuationMaterial.js │ │ │ ├── BatchedMaterial.js │ │ │ ├── BatchedPBRMaterial.js │ │ │ ├── BitmapTextMaterial.js │ │ │ ├── InstancedBasicMaterial.js │ │ │ ├── InstancedMaterial.js │ │ │ ├── InstancedPBRMaterial.js │ │ │ ├── PlanarReflectionMaterial.js │ │ │ └── TransmissionPBRMaterial.js │ │ ├── math/ │ │ │ ├── ColorGradient.js │ │ │ ├── DistanceTransform.js │ │ │ ├── OBB.js │ │ │ ├── Octree.js │ │ │ ├── TriangleSoup.js │ │ │ ├── TrianglesOctree.js │ │ │ ├── VirtualGroup.js │ │ │ └── curves/ │ │ │ ├── CubicBezierCurve2.js │ │ │ ├── CubicBezierCurve3.js │ │ │ ├── Curve.js │ │ │ ├── CurvePath.js │ │ │ ├── CurvePath2.js │ │ │ ├── CurvePath3.js │ │ │ ├── CurveUtils.js │ │ │ ├── Curves.js │ │ │ ├── LineCurve2.js │ │ │ ├── LineCurve3.js │ │ │ ├── QuadraticBezierCurve2.js │ │ │ └── QuadraticBezierCurve3.js │ │ ├── misc/ │ │ │ ├── OcclusionProxyManager.js │ │ │ └── Timer.js │ │ ├── navigation/ │ │ │ ├── AStar.js │ │ │ ├── Pathfinding.js │ │ │ ├── PathfindingHelper.js │ │ │ ├── Utils.js │ │ │ └── Zone.js │ │ ├── objects/ │ │ │ ├── AxisHelper.js │ │ │ ├── Background.js │ │ │ ├── BatchedMesh.js │ │ │ ├── Box3Helper.js │ │ │ ├── BoxHelper.js │ │ │ ├── CameraHelper.js │ │ │ ├── DirectionalLightHelper.js │ │ │ ├── GradientSky.js │ │ │ ├── GridHelper.js │ │ │ ├── HemisphereLightHelper.js │ │ │ ├── InstancedLine.js │ │ │ ├── LayeredVolumeMesh.js │ │ │ ├── LegacySkeletonHelper.js │ │ │ ├── LightShadowAdapterHelper.js │ │ │ ├── LineChartFillMesh.js │ │ │ ├── OcclusionTester.js │ │ │ ├── OctreeHelper.js │ │ │ ├── ParticleContainer.js │ │ │ ├── PointLightHelper.js │ │ │ ├── PolarGridHelper.js │ │ │ ├── RectAreaLightHelper.js │ │ │ ├── SkeletonHelper.js │ │ │ ├── Sky.js │ │ │ ├── SkyBox.js │ │ │ ├── SphereHelper.js │ │ │ ├── SpotLightHelper.js │ │ │ ├── Sprite.js │ │ │ ├── Terrain.js │ │ │ ├── TriangleSoupHelper.js │ │ │ ├── VertexNormalsHelper.js │ │ │ ├── VertexTangentsHelper.js │ │ │ └── Water.js │ │ ├── ocean/ │ │ │ ├── Butterfly.js │ │ │ ├── OceanField.js │ │ │ ├── OceanFieldBuilder.js │ │ │ ├── OceanMaterial.js │ │ │ ├── Utils.js │ │ │ ├── index.js │ │ │ └── shaders/ │ │ │ ├── FFT2HShader.js │ │ │ ├── FFT2VShader.js │ │ │ ├── H0Shader.js │ │ │ ├── HkShader.js │ │ │ └── PostFFT2Shader.js │ │ ├── pass/ │ │ │ ├── BlurPass.js │ │ │ ├── DepthPeelingOITPass.js │ │ │ ├── SSAOPass.js │ │ │ ├── UnrealBloomPass.js │ │ │ └── WeightedBlendedOITPass.js │ │ ├── probes/ │ │ │ ├── PlanarReflectionProbe.js │ │ │ └── ReflectionProbe.js │ │ ├── render/ │ │ │ ├── DeferredRenderer.js │ │ │ └── ForwardRenderer.js │ │ ├── shaders/ │ │ │ ├── BlendShader.js │ │ │ ├── BlurShader.js │ │ │ ├── BokehShader.js │ │ │ ├── ClusteredDebugShader.js │ │ │ ├── ColorAdjustShader.js │ │ │ ├── CopyShader.js │ │ │ ├── DeferredShader.js │ │ │ ├── DepthLinearShader.js │ │ │ ├── FXAAShader.js │ │ │ ├── FastGaussianBlurShader.js │ │ │ ├── FilmShader.js │ │ │ ├── GroundProjectedSkyboxShader.js │ │ │ ├── InfiniteGridShader.js │ │ │ ├── LineDashedShader.js │ │ │ ├── LuminosityHighPassShader.js │ │ │ ├── MSDFTextShader.js │ │ │ ├── MatcapShader.js │ │ │ ├── MotionBlur2Shader.js │ │ │ ├── MotionBlurShader.js │ │ │ ├── OutputShader.js │ │ │ ├── PlanarShadowShader.js │ │ │ ├── SDFTextShader.js │ │ │ ├── SSAOShader.js │ │ │ ├── SSRShader.js │ │ │ ├── ShadowShader.js │ │ │ ├── SketchShader.js │ │ │ ├── SkyShader.js │ │ │ ├── TAAShader.js │ │ │ ├── TextureVariationShader.js │ │ │ ├── VolumeShader.js │ │ │ ├── WaterShader.js │ │ │ └── XRayShader.js │ │ ├── stereo/ │ │ │ ├── AnaglyphRenderer.js │ │ │ ├── StereoCamera.js │ │ │ ├── StereoRenderer.js │ │ │ ├── WebVRControls.js │ │ │ └── WebXRControls.js │ │ └── textures/ │ │ ├── GradientTextureGenerator.js │ │ ├── HeatmapGenerator.js │ │ ├── IDWMapGenerator.js │ │ ├── PMREMGenerator.js │ │ └── RGBDDecoder.js │ ├── lab_clouds.html │ ├── lab_clouds_shader.html │ ├── lab_earth.html │ ├── lab_geometry_grass.html │ ├── lab_geometry_images.html │ ├── lab_gltf_grass.html │ ├── lab_ground.html │ ├── lab_histogram.html │ ├── lab_ik.html │ ├── lab_impostor_octahedral.html │ ├── lab_impostor_octahedral_instancing.html │ ├── lab_linechart_fill.html │ ├── lab_ocean.html │ ├── lab_ocean_fft.html │ ├── lab_terrain.html │ ├── lab_texture_variation.html │ ├── lab_water_simulation.html │ ├── libs/ │ │ ├── ammo.wasm.js │ │ ├── ammo.wasm.wasm │ │ ├── basis/ │ │ │ ├── README.md │ │ │ ├── basis_transcoder.js │ │ │ └── basis_transcoder.wasm │ │ ├── cannon.js │ │ ├── draco/ │ │ │ ├── README.md │ │ │ ├── draco_decoder.js │ │ │ ├── draco_decoder.wasm │ │ │ ├── draco_encoder.js │ │ │ ├── draco_wasm_wrapper.js │ │ │ └── gltf/ │ │ │ ├── draco_decoder.js │ │ │ ├── draco_decoder.wasm │ │ │ ├── draco_encoder.js │ │ │ └── draco_wasm_wrapper.js │ │ ├── es-module-shims.js │ │ ├── fflate.module.js │ │ ├── ktx-parse.module.js │ │ ├── meshopt_decoder.module.js │ │ ├── nanobar.js │ │ ├── simplex-noise.js │ │ ├── stats.module.js │ │ ├── tween.module.js │ │ ├── webvr-polyfill.js │ │ └── zstddec.module.js │ ├── light_directlight.html │ ├── light_group.html │ ├── light_hemispherelight.html │ ├── light_pointlight.html │ ├── light_rectarealight.html │ ├── light_shadow.html │ ├── light_shadow_adapter.html │ ├── light_softshadow.html │ ├── light_sphericalharmonicslight.html │ ├── light_spotlight.html │ ├── lines_dashedlines.html │ ├── lines_instancedlines.html │ ├── lines_lines.html │ ├── main.css │ ├── material_alphahash.html │ ├── material_alphamask.html │ ├── material_blending.html │ ├── material_bumpmap.html │ ├── material_clearcoat.html │ ├── material_clippingplanes.html │ ├── material_depth.html │ ├── material_emissivemap.html │ ├── material_envmap.html │ ├── material_flatshading.html │ ├── material_lightmap.html │ ├── material_materials.html │ ├── material_normalmap.html │ ├── material_pbr.html │ ├── material_shader_background.html │ ├── material_shader_extend.html │ ├── material_shader_fakeInterior.html │ ├── material_shader_grid.html │ ├── material_shader_matcap.html │ ├── material_shader_shadow.html │ ├── material_shader_sky.html │ ├── material_shader_sky2.html │ ├── material_shader_sky_gradient.html │ ├── material_shader_skybox.html │ ├── material_shader_skybox_filter.html │ ├── material_shader_skybox_groundprojected.html │ ├── material_shader_volume.html │ ├── material_shader_volume_layered.html │ ├── material_shader_water.html │ ├── material_shader_water_pbr.html │ ├── material_shader_xray.html │ ├── material_shadermaterial.html │ ├── material_transparent.html │ ├── material_uvcoord.html │ ├── material_uvtransform.html │ ├── material_vertexcolors.html │ ├── math_curve.html │ ├── math_curve_motion.html │ ├── math_obb.html │ ├── math_octree.html │ ├── navigation_pathfinding.html │ ├── navigation_recast_crowd.html │ ├── navigation_recast_generation.html │ ├── navigation_recast_obstacles.html │ ├── navigation_recast_walking.html │ ├── particle_particle.html │ ├── physics_ammo.html │ ├── physics_ammo_softbody_volume.html │ ├── physics_cannon.html │ ├── physics_ik.html │ ├── physics_rapier.html │ ├── physics_rapier_character_controller.html │ ├── points_sprites.html │ ├── probes_reflection.html │ ├── probes_reflection_planar.html │ ├── raycast_raycaster.html │ ├── renderer_clustered_lighting.html │ ├── renderer_culling_contribution.html │ ├── renderer_culling_frustum.html │ ├── renderer_deferred.html │ ├── renderer_deferred_lighting.html │ ├── resources/ │ │ ├── 3d/ │ │ │ └── Readme.txt │ │ ├── compressed/ │ │ │ ├── 2d_astc_6x6.ktx2 │ │ │ ├── 2d_etc1s.ktx2 │ │ │ ├── 2d_rgba16_linear.ktx2 │ │ │ ├── 2d_rgba32_linear.ktx2 │ │ │ ├── 2d_rgba8.ktx2 │ │ │ ├── 2d_rgba8_displayp3.ktx2 │ │ │ ├── 2d_rgba8_linear.ktx2 │ │ │ ├── 2d_uastc.ktx2 │ │ │ ├── Mountains.dds │ │ │ ├── Mountains_argb_mip.dds │ │ │ ├── Mountains_argb_nomip.dds │ │ │ ├── disturb_2bpp_rgb.pvr │ │ │ ├── disturb_4bpp_rgb.pvr │ │ │ ├── disturb_4bpp_rgb_mips.pvr │ │ │ ├── disturb_4bpp_rgb_v3.pvr │ │ │ ├── disturb_argb_mip.dds │ │ │ ├── disturb_argb_nomip.dds │ │ │ ├── disturb_dxt1_mip.dds │ │ │ ├── disturb_dxt1_nomip.dds │ │ │ ├── explosion_dxt5_mip.dds │ │ │ ├── flare_2bpp_rgba.pvr │ │ │ ├── flare_4bpp_rgba.pvr │ │ │ ├── hepatica_dxt3_mip.dds │ │ │ ├── park3_cube_mip_2bpp_rgb_v3.pvr │ │ │ └── park3_cube_nomip_4bpp_rgb.pvr │ │ ├── crate_color8.tga │ │ ├── fonts/ │ │ │ ├── msdf/ │ │ │ │ └── roboto-regular.fnt │ │ │ └── typeface/ │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── helvetiker_bold.typeface.json │ │ │ ├── helvetiker_regular.typeface.json │ │ │ ├── optimer_bold.typeface.json │ │ │ └── optimer_regular.typeface.json │ │ ├── hdr/ │ │ │ ├── Grand_Canyon_C.env │ │ │ ├── Grand_Canyon_C.hdr │ │ │ ├── blouberg_sunrise_2_1k.hdr │ │ │ ├── hall.hdr │ │ │ ├── memorial.exr │ │ │ ├── memorial.hdr │ │ │ ├── pisa.hdr │ │ │ ├── pisaHDR/ │ │ │ │ ├── nx.hdr │ │ │ │ ├── ny.hdr │ │ │ │ ├── nz.hdr │ │ │ │ ├── px.hdr │ │ │ │ ├── py.hdr │ │ │ │ └── pz.hdr │ │ │ └── royal_esplanade_1k.env │ │ ├── lensflare/ │ │ │ └── LICENSE.txt │ │ ├── models/ │ │ │ ├── assimp/ │ │ │ │ ├── interior/ │ │ │ │ │ ├── interior.3ds │ │ │ │ │ └── interior.assimp.json │ │ │ │ └── jeep/ │ │ │ │ ├── jeep.assimp.json │ │ │ │ ├── jeep1.ms3d │ │ │ │ └── jeep1.readme.txt │ │ │ ├── gltf/ │ │ │ │ ├── BotSkinned/ │ │ │ │ │ └── glTF-MaterialsUnlit/ │ │ │ │ │ └── Bot_Skinned.gltf │ │ │ │ ├── CesiumMan/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── glTF/ │ │ │ │ │ │ └── CesiumMan.gltf │ │ │ │ │ ├── glTF-Binary/ │ │ │ │ │ │ └── CesiumMan.glb │ │ │ │ │ ├── glTF-Draco/ │ │ │ │ │ │ └── CesiumMan.gltf │ │ │ │ │ └── glTF-Embedded/ │ │ │ │ │ └── CesiumMan.gltf │ │ │ │ ├── ClearCoatTest.glb │ │ │ │ ├── CornellBox.glb │ │ │ │ ├── DamagedHelmet/ │ │ │ │ │ ├── README.md │ │ │ │ │ └── glTF/ │ │ │ │ │ └── DamagedHelmet.gltf │ │ │ │ ├── DispersionTest.glb │ │ │ │ ├── DragonAttenuation/ │ │ │ │ │ └── DragonAttenuation.gltf │ │ │ │ ├── Duck/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── glTF/ │ │ │ │ │ │ └── Duck.gltf │ │ │ │ │ ├── glTF-Binary/ │ │ │ │ │ │ └── Duck.glb │ │ │ │ │ ├── glTF-Draco/ │ │ │ │ │ │ └── Duck.gltf │ │ │ │ │ ├── glTF-Embedded/ │ │ │ │ │ │ └── Duck.gltf │ │ │ │ │ └── glTF-pbrSpecularGlossiness/ │ │ │ │ │ └── Duck.gltf │ │ │ │ ├── Flamingo.glb │ │ │ │ ├── GlamVelvetSofa/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── glTF/ │ │ │ │ │ │ └── GlamVelvetSofa.gltf │ │ │ │ │ └── glTF-Binary/ │ │ │ │ │ └── GlamVelvetSofa.glb │ │ │ │ ├── IKTest.glb │ │ │ │ ├── InterpolationTest.glb │ │ │ │ ├── IridescentDishWithOlives.glb │ │ │ │ ├── LeePerrySmith/ │ │ │ │ │ ├── LeePerrySmith.glb │ │ │ │ │ └── LeePerrySmith_License.txt │ │ │ │ ├── LittlestTokyo.glb │ │ │ │ ├── Michelle.glb │ │ │ │ ├── NormalTangentMirrorTest/ │ │ │ │ │ ├── README.md │ │ │ │ │ └── glTF/ │ │ │ │ │ └── NormalTangentMirrorTest.gltf │ │ │ │ ├── NormalTangentTest/ │ │ │ │ │ ├── README.md │ │ │ │ │ └── glTF/ │ │ │ │ │ └── NormalTangentTest.gltf │ │ │ │ ├── PointerTest.glb │ │ │ │ ├── PrimaryIonDrive.glb │ │ │ │ ├── Soldier.glb │ │ │ │ ├── Spheres/ │ │ │ │ │ └── Spheres.gltf │ │ │ │ ├── TextureTransformTest/ │ │ │ │ │ ├── README.md │ │ │ │ │ └── glTF/ │ │ │ │ │ └── TextureTransformTest.gltf │ │ │ │ ├── UinoDog/ │ │ │ │ │ ├── README.md │ │ │ │ │ └── glTF/ │ │ │ │ │ └── robot.gltf │ │ │ │ ├── UinoHelmet/ │ │ │ │ │ ├── README.md │ │ │ │ │ └── glTF/ │ │ │ │ │ └── UinoHelmet.gltf │ │ │ │ ├── UinoMan/ │ │ │ │ │ ├── README.md │ │ │ │ │ └── glTF/ │ │ │ │ │ └── UinoMan.gltf │ │ │ │ ├── UinoSpaceman/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── glTF/ │ │ │ │ │ │ └── UinoSpaceman.gltf │ │ │ │ │ └── glTF-Binary/ │ │ │ │ │ └── UinoSpaceman.glb │ │ │ │ ├── Xbot.glb │ │ │ │ ├── asteroid.glb │ │ │ │ ├── bust_of_woman/ │ │ │ │ │ ├── glTF/ │ │ │ │ │ │ └── bust_of_woman.gltf │ │ │ │ │ └── glTF-Binary/ │ │ │ │ │ └── bust_of_woman.glb │ │ │ │ ├── coffeemat.glb │ │ │ │ ├── ferrari/ │ │ │ │ │ └── ferrari.glb │ │ │ │ ├── forest_house.glb │ │ │ │ ├── grass/ │ │ │ │ │ └── grass.gltf │ │ │ │ ├── lighthouse.glb │ │ │ │ ├── pool.glb │ │ │ │ ├── robot_arm/ │ │ │ │ │ └── glTF/ │ │ │ │ │ ├── license.txt │ │ │ │ │ └── scene.gltf │ │ │ │ ├── sea_shell.glb │ │ │ │ ├── suzanne/ │ │ │ │ │ └── suzanne.gltf │ │ │ │ ├── teapots_galore/ │ │ │ │ │ └── teapots_galore.gltf │ │ │ │ └── tree.glb │ │ │ └── vox/ │ │ │ ├── castle.vox │ │ │ ├── largedata.vox │ │ │ ├── menger.vox │ │ │ ├── monu1.vox │ │ │ ├── monu10.vox │ │ │ ├── monu9.vox │ │ │ ├── p1.vox │ │ │ ├── p2.vox │ │ │ ├── p3.vox │ │ │ ├── p4.vox │ │ │ ├── p5.vox │ │ │ ├── p6.vox │ │ │ ├── p7.vox │ │ │ └── ship.vox │ │ ├── navigation/ │ │ │ ├── level.glb │ │ │ └── level.nav.glb │ │ ├── sintel.ogv │ │ └── skybox/ │ │ ├── Bridge2/ │ │ │ └── readme.txt │ │ ├── Park2/ │ │ │ └── readme.txt │ │ ├── mp_cloud9/ │ │ │ ├── Cloud 9.nfo │ │ │ ├── cloud9_bk.tga │ │ │ ├── cloud9_dn.tga │ │ │ ├── cloud9_ft.tga │ │ │ ├── cloud9_lf.tga │ │ │ ├── cloud9_rt.tga │ │ │ ├── cloud9_up.tga │ │ │ ├── license.txt │ │ │ └── mp_cloud9.shader │ │ └── skyboxsun25deg/ │ │ └── skyboxsun25degtest.txt │ ├── scene_anchor.html │ ├── scene_clippingplanes.html │ ├── scene_fog.html │ ├── scene_gamma_correction.html │ ├── sprite_sprites.html │ ├── stereo_anaglyph.html │ ├── stereo_webvr_car.html │ ├── stereo_webxr_vr_car.html │ ├── text_bitmap.html │ ├── text_bitmap_dynamic.html │ ├── text_sdf.html │ ├── text_sdf_dynamic.html │ ├── text_typeface.html │ ├── texture_2darray.html │ ├── texture_3d.html │ ├── texture_anisotropic.html │ ├── texture_depth.html │ ├── texture_generator_heatmap.html │ ├── texture_generator_idwmap.html │ ├── texture_integer.html │ ├── texture_loader_compressed_dds.html │ ├── texture_loader_compressed_pvr.html │ ├── texture_loader_env.html │ ├── texture_loader_exr.html │ ├── texture_loader_hdr.html │ ├── texture_loader_hdr_cube.html │ ├── texture_loader_hdr_panorama.html │ ├── texture_loader_imagebitmap.html │ ├── texture_loader_ktx2.html │ ├── texture_loader_tga.html │ ├── texture_mipmap.html │ ├── texture_video.html │ ├── webgl_canvas_transparent.html │ ├── webgl_clipculldistance.html │ ├── webgl_contextlost.html │ ├── webgl_depthfunc.html │ ├── webgl_external_buffer.html │ ├── webgl_external_texture.html │ ├── webgl_helpers.html │ ├── webgl_instanced_draw.html │ ├── webgl_logarithmicDepthBuffer.html │ ├── webgl_mesh_batch.html │ ├── webgl_multi_draw.html │ ├── webgl_polygonoffset.html │ ├── webgl_primitive_restart.html │ ├── webgl_query_occlusion.html │ ├── webgl_query_occlusion_proxy.html │ ├── webgl_query_timer.html │ ├── webgl_renderinfo.html │ ├── webgl_shader_compile.html │ ├── webgl_shader_precompile.html │ └── webgl_stencil.html ├── package.json ├── rollup.config.js ├── src/ │ ├── EventDispatcher.js │ ├── animation/ │ │ ├── AnimationAction.js │ │ ├── AnimationMixer.js │ │ ├── KeyframeClip.js │ │ ├── KeyframeInterpolants.js │ │ ├── KeyframeTrack.js │ │ ├── PropertyBindingMixer.js │ │ └── tracks/ │ │ ├── BooleanKeyframeTrack.js │ │ ├── ColorKeyframeTrack.js │ │ ├── NumberKeyframeTrack.js │ │ ├── QuaternionKeyframeTrack.js │ │ ├── StringKeyframeTrack.js │ │ └── VectorKeyframeTrack.js │ ├── base.js │ ├── const.js │ ├── legacy.js │ ├── loaders/ │ │ ├── FileLoader.js │ │ ├── ImageLoader.js │ │ ├── Loader.js │ │ └── LoadingManager.js │ ├── main.js │ ├── math/ │ │ ├── Box2.js │ │ ├── Box3.js │ │ ├── Color3.js │ │ ├── Color4.js │ │ ├── Euler.js │ │ ├── Frustum.js │ │ ├── MathUtils.js │ │ ├── Matrix3.js │ │ ├── Matrix4.js │ │ ├── Plane.js │ │ ├── Quaternion.js │ │ ├── Ray.js │ │ ├── Sphere.js │ │ ├── Spherical.js │ │ ├── SphericalHarmonics3.js │ │ ├── Triangle.js │ │ ├── Vector2.js │ │ ├── Vector3.js │ │ └── Vector4.js │ ├── render/ │ │ ├── LightingData.js │ │ ├── LightingGroup.js │ │ ├── PropertyMap.js │ │ ├── RenderCollector.js │ │ ├── RenderInfo.js │ │ ├── RenderQueue.js │ │ ├── RenderQueueLayer.js │ │ ├── RenderStates.js │ │ ├── SceneData.js │ │ ├── ThinRenderer.js │ │ └── passes/ │ │ ├── ShaderPostPass.js │ │ └── ShadowMapPass.js │ ├── resources/ │ │ ├── QuerySet.js │ │ ├── Raycaster.js │ │ ├── RenderBuffer.js │ │ ├── Skeleton.js │ │ ├── TransformUV.js │ │ ├── fogs/ │ │ │ ├── Fog.js │ │ │ └── FogExp2.js │ │ ├── geometries/ │ │ │ ├── Attribute.js │ │ │ ├── BoxGeometry.js │ │ │ ├── Buffer.js │ │ │ ├── CylinderGeometry.js │ │ │ ├── Geometry.js │ │ │ ├── PlaneGeometry.js │ │ │ ├── SphereGeometry.js │ │ │ └── TorusKnotGeometry.js │ │ ├── materials/ │ │ │ ├── BasicMaterial.js │ │ │ ├── DepthMaterial.js │ │ │ ├── DistanceMaterial.js │ │ │ ├── LambertMaterial.js │ │ │ ├── LineMaterial.js │ │ │ ├── Material.js │ │ │ ├── PBR2Material.js │ │ │ ├── PBRMaterial.js │ │ │ ├── PhongMaterial.js │ │ │ ├── PointsMaterial.js │ │ │ └── ShaderMaterial.js │ │ ├── projections/ │ │ │ ├── CameraProjection.js │ │ │ ├── OrthographicProjection.js │ │ │ └── PerspectiveProjection.js │ │ ├── targets/ │ │ │ ├── OffscreenRenderTarget.js │ │ │ ├── RenderTargetBase.js │ │ │ └── ScreenRenderTarget.js │ │ └── textures/ │ │ ├── Texture2D.js │ │ ├── Texture2DArray.js │ │ ├── Texture3D.js │ │ ├── TextureBase.js │ │ └── TextureCube.js │ ├── scenes/ │ │ ├── Bone.js │ │ ├── Camera.js │ │ ├── Light.js │ │ ├── Mesh.js │ │ ├── Object3D.js │ │ ├── Scene.js │ │ ├── SkinnedMesh.js │ │ └── lights/ │ │ ├── AmbientLight.js │ │ ├── DirectionalLight.js │ │ ├── DirectionalLightShadow.js │ │ ├── HemisphereLight.js │ │ ├── LightShadow.js │ │ ├── PointLight.js │ │ ├── PointLightShadow.js │ │ ├── RectAreaLight.js │ │ ├── SphericalHarmonicsLight.js │ │ ├── SpotLight.js │ │ └── SpotLightShadow.js │ ├── shaders/ │ │ ├── ShaderChunk.js │ │ ├── ShaderLib.js │ │ ├── shaderChunk/ │ │ │ ├── alphaTest_frag.glsl │ │ │ ├── alphaTest_pars_frag.glsl │ │ │ ├── alphamap_frag.glsl │ │ │ ├── alphamap_pars_frag.glsl │ │ │ ├── alphamap_pars_vert.glsl │ │ │ ├── alphamap_vert.glsl │ │ │ ├── aoMap_frag.glsl │ │ │ ├── aoMap_pars_frag.glsl │ │ │ ├── aoMap_pars_vert.glsl │ │ │ ├── aoMap_vert.glsl │ │ │ ├── begin_frag.glsl │ │ │ ├── begin_vert.glsl │ │ │ ├── bsdfs.glsl │ │ │ ├── bumpMap_pars_frag.glsl │ │ │ ├── clearcoat_pars_frag.glsl │ │ │ ├── clippingPlanes_frag.glsl │ │ │ ├── clippingPlanes_pars_frag.glsl │ │ │ ├── color_frag.glsl │ │ │ ├── color_pars_frag.glsl │ │ │ ├── color_pars_vert.glsl │ │ │ ├── color_vert.glsl │ │ │ ├── common_frag.glsl │ │ │ ├── common_vert.glsl │ │ │ ├── diffuseMap_frag.glsl │ │ │ ├── diffuseMap_pars_frag.glsl │ │ │ ├── diffuseMap_pars_vert.glsl │ │ │ ├── diffuseMap_vert.glsl │ │ │ ├── dithering_frag.glsl │ │ │ ├── dithering_pars_frag.glsl │ │ │ ├── emissiveMap_frag.glsl │ │ │ ├── emissiveMap_pars_frag.glsl │ │ │ ├── emissiveMap_pars_vert.glsl │ │ │ ├── emissiveMap_vert.glsl │ │ │ ├── encodings_frag.glsl │ │ │ ├── encodings_pars_frag.glsl │ │ │ ├── end_frag.glsl │ │ │ ├── envMap_frag.glsl │ │ │ ├── envMap_pars_frag.glsl │ │ │ ├── envMap_pars_vert.glsl │ │ │ ├── envMap_vert.glsl │ │ │ ├── fog_frag.glsl │ │ │ ├── fog_pars_frag.glsl │ │ │ ├── inverse.glsl │ │ │ ├── light_frag.glsl │ │ │ ├── light_pars_frag.glsl │ │ │ ├── logdepthbuf_frag.glsl │ │ │ ├── logdepthbuf_pars_frag.glsl │ │ │ ├── logdepthbuf_pars_vert.glsl │ │ │ ├── logdepthbuf_vert.glsl │ │ │ ├── modelPos_pars_frag.glsl │ │ │ ├── modelPos_pars_vert.glsl │ │ │ ├── modelPos_vert.glsl │ │ │ ├── morphnormal_vert.glsl │ │ │ ├── morphtarget_pars_vert.glsl │ │ │ ├── morphtarget_vert.glsl │ │ │ ├── normalMap_pars_frag.glsl │ │ │ ├── normal_frag.glsl │ │ │ ├── normal_pars_frag.glsl │ │ │ ├── normal_pars_vert.glsl │ │ │ ├── normal_vert.glsl │ │ │ ├── packing.glsl │ │ │ ├── premultipliedAlpha_frag.glsl │ │ │ ├── pvm_vert.glsl │ │ │ ├── shadow.glsl │ │ │ ├── shadowMap_frag.glsl │ │ │ ├── shadowMap_pars_frag.glsl │ │ │ ├── shadowMap_pars_vert.glsl │ │ │ ├── shadowMap_vert.glsl │ │ │ ├── skinning_pars_vert.glsl │ │ │ ├── skinning_vert.glsl │ │ │ ├── skinnormal_vert.glsl │ │ │ ├── specularMap_frag.glsl │ │ │ ├── specularMap_pars_frag.glsl │ │ │ ├── transpose.glsl │ │ │ ├── tsn.glsl │ │ │ ├── uv_pars_frag.glsl │ │ │ ├── uv_pars_vert.glsl │ │ │ └── uv_vert.glsl │ │ └── shaderLib/ │ │ ├── basic_frag.glsl │ │ ├── basic_vert.glsl │ │ ├── depth_frag.glsl │ │ ├── depth_vert.glsl │ │ ├── distance_frag.glsl │ │ ├── distance_vert.glsl │ │ ├── lambert_frag.glsl │ │ ├── lambert_vert.glsl │ │ ├── normaldepth_frag.glsl │ │ ├── normaldepth_vert.glsl │ │ ├── pbr2_frag.glsl │ │ ├── pbr_frag.glsl │ │ ├── pbr_vert.glsl │ │ ├── phong_frag.glsl │ │ ├── phong_vert.glsl │ │ ├── point_frag.glsl │ │ └── point_vert.glsl │ └── webgl/ │ ├── WebGLAttribute.js │ ├── WebGLBuffers.js │ ├── WebGLCapabilities.js │ ├── WebGLClusteredLighting.js │ ├── WebGLConstants.js │ ├── WebGLGeometries.js │ ├── WebGLLights.js │ ├── WebGLMaterials.js │ ├── WebGLProgram.js │ ├── WebGLPrograms.js │ ├── WebGLQuerySets.js │ ├── WebGLRenderBuffers.js │ ├── WebGLRenderTargets.js │ ├── WebGLRenderer.js │ ├── WebGLState.js │ ├── WebGLTextures.js │ ├── WebGLUniforms.js │ └── WebGLVertexArrayBindings.js ├── tests/ │ ├── index.html │ └── unit/ │ ├── source.unit.js │ ├── src/ │ │ ├── EventDispatcher.tests.js │ │ └── math/ │ │ ├── Box2.tests.js │ │ ├── Box3.tests.js │ │ ├── Color3.tests.js │ │ ├── Color4.tests.js │ │ ├── MathUtils.tests.js │ │ ├── Matrix3.tests.js │ │ ├── Matrix4.tests.js │ │ ├── Plane.tests.js │ │ ├── Quaternion.tests.js │ │ ├── Ray.tests.js │ │ ├── Sphere.tests.js │ │ ├── Vector2.tests.js │ │ ├── Vector3.tests.js │ │ └── Vector4.tests.js │ └── utils/ │ └── math-constants.js └── tools/ ├── assimp2json └── doc.config.json