瀏覽代碼

localization of documentation (Manual section) [ru] (#24896)

* Creating a scene page
documentation localization ru

* Installation page
localization of documentation [ru]

* WebGL compatibility check page
localization of documentation [ru]

* introduction/How-to-run-things-locally

* Drawing lines

* Creating text

* Loading 3D models

* Libraries and Plugins

* FAQ

* FAQ

* Useful links

* Updating the code examples of ru translated Installation pages.

* import map

Co-authored-by: bad4iz <[email protected]>
Eugene Plotnikov 2 年之前
父節點
當前提交
f54eb5b0bf

+ 2 - 1
docs/index.html

@@ -39,6 +39,7 @@
 						<option value="it">it</option>
 						<option value="pt-br">pt-br</option>
 						<option value="fr">fr</option>
+						<option value="ru">ru</option>
 					</select>
 				</div>
 				<div id="content"></div>
@@ -89,7 +90,7 @@
 
 			if ( /^(api|manual|examples)/.test( hash ) ) {
 
-				const hashLanguage = /^(api|manual|examples)\/(en|ar|ko|zh|ja|it|pt-br|fr)\//.exec( hash );
+				const hashLanguage = /^(api|manual|examples)\/(en|ar|ko|zh|ja|it|pt-br|fr|ru)\//.exec( hash );
 
 				if ( hashLanguage === null ) {
 

+ 443 - 7
docs/list.json

@@ -1131,7 +1131,7 @@
 				"FAQ": "manual/it/introduction/FAQ",
 				"Link utili": "manual/it/introduction/Useful-links"
 			},
-		
+
 			"Prossimi passi": {
 				"Come aggiornare le cose": "manual/it/introduction/How-to-update-things",
 				"Come liberare le risorse": "manual/it/introduction/How-to-dispose-of-objects",
@@ -1141,11 +1141,11 @@
 				"Sistema di animazione": "manual/it/introduction/Animation-system",
 				"Gestione del colore": "manual/it/introduction/Color-management"
 			},
-		
+
 			"Strumenti di build": {
 				"Testare con NPM": "manual/it/buildTools/Testing-with-NPM"
 			}
-	
+
 		},
 
 		"Riferimenti": {
@@ -1307,7 +1307,7 @@
 				"DirectionalLightShadow": "api/it/lights/shadows/DirectionalLightShadow",
 				"SpotLightShadow": "api/it/lights/shadows/SpotLightShadow"
 			},
-			
+
 			"Loaders": {
 				"AnimationLoader": "api/it/loaders/AnimationLoader",
 				"AudioLoader": "api/it/loaders/AudioLoader",
@@ -1626,10 +1626,446 @@
 				"TubeGeometry": "api/fr/geometries/TubeGeometry",
 				"WireframeGeometry": "api/fr/geometries/WireframeGeometry"
 			}
-		
+
 		}
 
-	}
-	
+	},
+
+	"ru": {
+
+		"Руководство": {
+
+			"Приступая к работе": {
+				"Создание сцены": "manual/ru/introduction/Creating-a-scene",
+				"Установка": "manual/ru/introduction/Installation",
+				"Проверка совместимости с WebGL": "manual/ru/introduction/WebGL-compatibility-check",
+				"Локальная разработка ": "manual/ru/introduction/How-to-run-things-locally",
+				"Рисование линий": "manual/ru/introduction/Drawing-lines",
+				"Создание текста": "manual/ru/introduction/Creating-text",
+				"Загрузка 3D-моделей": "manual/ru/introduction/Loading-3D-models",
+				"Библиотеки и плагины": "manual/ru/introduction/Libraries-and-Plugins",
+				"Часто задаваемые вопросы": "manual/ru/introduction/FAQ",
+				"Полезные ссылки": "manual/ru/introduction/Useful-links"
+			},
+
+			"Next Steps": {
+				"How to update things": "manual/en/introduction/How-to-update-things",
+				"How to dispose of objects": "manual/en/introduction/How-to-dispose-of-objects",
+				"How to create VR content": "manual/en/introduction/How-to-create-VR-content",
+				"How to use post-processing": "manual/en/introduction/How-to-use-post-processing",
+				"Matrix transformations": "manual/en/introduction/Matrix-transformations",
+				"Animation system": "manual/en/introduction/Animation-system",
+				"Color management": "manual/en/introduction/Color-management"
+			},
+
+			"Build Tools": {
+				"Testing with NPM": "manual/en/buildTools/Testing-with-NPM"
+			}
+
+		},
+
+		"Reference": {
+
+			"Animation": {
+				"AnimationAction": "api/en/animation/AnimationAction",
+				"AnimationClip": "api/en/animation/AnimationClip",
+				"AnimationMixer": "api/en/animation/AnimationMixer",
+				"AnimationObjectGroup": "api/en/animation/AnimationObjectGroup",
+				"AnimationUtils": "api/en/animation/AnimationUtils",
+				"KeyframeTrack": "api/en/animation/KeyframeTrack",
+				"PropertyBinding": "api/en/animation/PropertyBinding",
+				"PropertyMixer": "api/en/animation/PropertyMixer"
+			},
+
+			"Animation / Tracks": {
+				"BooleanKeyframeTrack": "api/en/animation/tracks/BooleanKeyframeTrack",
+				"ColorKeyframeTrack": "api/en/animation/tracks/ColorKeyframeTrack",
+				"NumberKeyframeTrack": "api/en/animation/tracks/NumberKeyframeTrack",
+				"QuaternionKeyframeTrack": "api/en/animation/tracks/QuaternionKeyframeTrack",
+				"StringKeyframeTrack": "api/en/animation/tracks/StringKeyframeTrack",
+				"VectorKeyframeTrack": "api/en/animation/tracks/VectorKeyframeTrack"
+			},
+
+			"Audio": {
+				"Audio": "api/en/audio/Audio",
+				"AudioAnalyser": "api/en/audio/AudioAnalyser",
+				"AudioContext": "api/en/audio/AudioContext",
+				"AudioListener": "api/en/audio/AudioListener",
+				"PositionalAudio": "api/en/audio/PositionalAudio"
+			},
+
+			"Cameras": {
+				"ArrayCamera": "api/en/cameras/ArrayCamera",
+				"Camera": "api/en/cameras/Camera",
+				"CubeCamera": "api/en/cameras/CubeCamera",
+				"OrthographicCamera": "api/en/cameras/OrthographicCamera",
+				"PerspectiveCamera": "api/en/cameras/PerspectiveCamera",
+				"StereoCamera": "api/en/cameras/StereoCamera"
+			},
+
+			"Constants": {
+				"Animation": "api/en/constants/Animation",
+				"Core": "api/en/constants/Core",
+				"CustomBlendingEquation": "api/en/constants/CustomBlendingEquations",
+				"BufferAttributeUsage": "api/en/constants/BufferAttributeUsage",
+				"Materials": "api/en/constants/Materials",
+				"Renderer": "api/en/constants/Renderer",
+				"Textures": "api/en/constants/Textures"
+			},
+
+			"Core": {
+				"BufferAttribute": "api/en/core/BufferAttribute",
+				"BufferGeometry": "api/en/core/BufferGeometry",
+				"Clock": "api/en/core/Clock",
+				"EventDispatcher": "api/en/core/EventDispatcher",
+				"GLBufferAttribute": "api/en/core/GLBufferAttribute",
+				"InstancedBufferAttribute": "api/en/core/InstancedBufferAttribute",
+				"InstancedBufferGeometry": "api/en/core/InstancedBufferGeometry",
+				"InstancedInterleavedBuffer": "api/en/core/InstancedInterleavedBuffer",
+				"InterleavedBuffer": "api/en/core/InterleavedBuffer",
+				"InterleavedBufferAttribute": "api/en/core/InterleavedBufferAttribute",
+				"Layers": "api/en/core/Layers",
+				"Object3D": "api/en/core/Object3D",
+				"Raycaster": "api/en/core/Raycaster",
+				"Uniform": "api/en/core/Uniform"
+			},
+
+			"Core / BufferAttributes": {
+				"BufferAttribute Types": "api/en/core/bufferAttributeTypes/BufferAttributeTypes"
+			},
+
+			"Extras": {
+				"DataUtils": "api/en/extras/DataUtils",
+				"Earcut": "api/en/extras/Earcut",
+				"ImageUtils": "api/en/extras/ImageUtils",
+				"PMREMGenerator": "api/en/extras/PMREMGenerator",
+				"ShapeUtils": "api/en/extras/ShapeUtils"
+			},
+
+			"Extras / Core": {
+				"Curve": "api/en/extras/core/Curve",
+				"CurvePath": "api/en/extras/core/CurvePath",
+				"Interpolations": "api/en/extras/core/Interpolations",
+				"Path": "api/en/extras/core/Path",
+				"Shape": "api/en/extras/core/Shape",
+				"ShapePath": "api/en/extras/core/ShapePath"
+			},
+
+			"Extras / Curves": {
+				"ArcCurve": "api/en/extras/curves/ArcCurve",
+				"CatmullRomCurve3": "api/en/extras/curves/CatmullRomCurve3",
+				"CubicBezierCurve": "api/en/extras/curves/CubicBezierCurve",
+				"CubicBezierCurve3": "api/en/extras/curves/CubicBezierCurve3",
+				"EllipseCurve": "api/en/extras/curves/EllipseCurve",
+				"LineCurve": "api/en/extras/curves/LineCurve",
+				"LineCurve3": "api/en/extras/curves/LineCurve3",
+				"QuadraticBezierCurve": "api/en/extras/curves/QuadraticBezierCurve",
+				"QuadraticBezierCurve3": "api/en/extras/curves/QuadraticBezierCurve3",
+				"SplineCurve": "api/en/extras/curves/SplineCurve"
+			},
+
+			"Geometries": {
+				"BoxGeometry": "api/en/geometries/BoxGeometry",
+				"CapsuleGeometry": "api/en/geometries/CapsuleGeometry",
+				"CircleGeometry": "api/en/geometries/CircleGeometry",
+				"ConeGeometry": "api/en/geometries/ConeGeometry",
+				"CylinderGeometry": "api/en/geometries/CylinderGeometry",
+				"DodecahedronGeometry": "api/en/geometries/DodecahedronGeometry",
+				"EdgesGeometry": "api/en/geometries/EdgesGeometry",
+				"ExtrudeGeometry": "api/en/geometries/ExtrudeGeometry",
+				"IcosahedronGeometry": "api/en/geometries/IcosahedronGeometry",
+				"LatheGeometry": "api/en/geometries/LatheGeometry",
+				"OctahedronGeometry": "api/en/geometries/OctahedronGeometry",
+				"PlaneGeometry": "api/en/geometries/PlaneGeometry",
+				"PolyhedronGeometry": "api/en/geometries/PolyhedronGeometry",
+				"RingGeometry": "api/en/geometries/RingGeometry",
+				"ShapeGeometry": "api/en/geometries/ShapeGeometry",
+				"SphereGeometry": "api/en/geometries/SphereGeometry",
+				"TetrahedronGeometry": "api/en/geometries/TetrahedronGeometry",
+				"TorusGeometry": "api/en/geometries/TorusGeometry",
+				"TorusKnotGeometry": "api/en/geometries/TorusKnotGeometry",
+				"TubeGeometry": "api/en/geometries/TubeGeometry",
+				"WireframeGeometry": "api/en/geometries/WireframeGeometry"
+			},
+
+			"Helpers": {
+				"ArrowHelper": "api/en/helpers/ArrowHelper",
+				"AxesHelper": "api/en/helpers/AxesHelper",
+				"BoxHelper": "api/en/helpers/BoxHelper",
+				"Box3Helper": "api/en/helpers/Box3Helper",
+				"CameraHelper": "api/en/helpers/CameraHelper",
+				"DirectionalLightHelper": "api/en/helpers/DirectionalLightHelper",
+				"GridHelper": "api/en/helpers/GridHelper",
+				"PolarGridHelper": "api/en/helpers/PolarGridHelper",
+				"HemisphereLightHelper": "api/en/helpers/HemisphereLightHelper",
+				"PlaneHelper": "api/en/helpers/PlaneHelper",
+				"PointLightHelper": "api/en/helpers/PointLightHelper",
+				"SkeletonHelper": "api/en/helpers/SkeletonHelper",
+				"SpotLightHelper": "api/en/helpers/SpotLightHelper"
+			},
+
+			"Lights": {
+				"AmbientLight": "api/en/lights/AmbientLight",
+				"AmbientLightProbe": "api/en/lights/AmbientLightProbe",
+				"DirectionalLight": "api/en/lights/DirectionalLight",
+				"HemisphereLight": "api/en/lights/HemisphereLight",
+				"HemisphereLightProbe": "api/en/lights/HemisphereLightProbe",
+				"Light": "api/en/lights/Light",
+				"LightProbe": "api/en/lights/LightProbe",
+				"PointLight": "api/en/lights/PointLight",
+				"RectAreaLight": "api/en/lights/RectAreaLight",
+				"SpotLight": "api/en/lights/SpotLight"
+			},
+
+			"Lights / Shadows": {
+				"LightShadow": "api/en/lights/shadows/LightShadow",
+				"PointLightShadow": "api/en/lights/shadows/PointLightShadow",
+				"DirectionalLightShadow": "api/en/lights/shadows/DirectionalLightShadow",
+				"SpotLightShadow": "api/en/lights/shadows/SpotLightShadow"
+			},
+
+			"Loaders": {
+				"AnimationLoader": "api/en/loaders/AnimationLoader",
+				"AudioLoader": "api/en/loaders/AudioLoader",
+				"BufferGeometryLoader": "api/en/loaders/BufferGeometryLoader",
+				"Cache": "api/en/loaders/Cache",
+				"CompressedTextureLoader": "api/en/loaders/CompressedTextureLoader",
+				"CubeTextureLoader": "api/en/loaders/CubeTextureLoader",
+				"DataTextureLoader": "api/en/loaders/DataTextureLoader",
+				"FileLoader": "api/en/loaders/FileLoader",
+				"ImageBitmapLoader": "api/en/loaders/ImageBitmapLoader",
+				"ImageLoader": "api/en/loaders/ImageLoader",
+				"Loader": "api/en/loaders/Loader",
+				"LoaderUtils": "api/en/loaders/LoaderUtils",
+				"MaterialLoader": "api/en/loaders/MaterialLoader",
+				"ObjectLoader": "api/en/loaders/ObjectLoader",
+				"TextureLoader": "api/en/loaders/TextureLoader"
+			},
+
+			"Loaders / Managers": {
+				"DefaultLoadingManager": "api/en/loaders/managers/DefaultLoadingManager",
+				"LoadingManager": "api/en/loaders/managers/LoadingManager"
+			},
+
+			"Materials": {
+				"LineBasicMaterial": "api/en/materials/LineBasicMaterial",
+				"LineDashedMaterial": "api/en/materials/LineDashedMaterial",
+				"Material": "api/en/materials/Material",
+				"MeshBasicMaterial": "api/en/materials/MeshBasicMaterial",
+				"MeshDepthMaterial": "api/en/materials/MeshDepthMaterial",
+				"MeshDistanceMaterial": "api/en/materials/MeshDistanceMaterial",
+				"MeshLambertMaterial": "api/en/materials/MeshLambertMaterial",
+				"MeshMatcapMaterial": "api/en/materials/MeshMatcapMaterial",
+				"MeshNormalMaterial": "api/en/materials/MeshNormalMaterial",
+				"MeshPhongMaterial": "api/en/materials/MeshPhongMaterial",
+				"MeshPhysicalMaterial": "api/en/materials/MeshPhysicalMaterial",
+				"MeshStandardMaterial": "api/en/materials/MeshStandardMaterial",
+				"MeshToonMaterial": "api/en/materials/MeshToonMaterial",
+				"PointsMaterial": "api/en/materials/PointsMaterial",
+				"RawShaderMaterial": "api/en/materials/RawShaderMaterial",
+				"ShaderMaterial": "api/en/materials/ShaderMaterial",
+				"ShadowMaterial": "api/en/materials/ShadowMaterial",
+				"SpriteMaterial": "api/en/materials/SpriteMaterial"
+			},
+
+			"Math": {
+				"Box2": "api/en/math/Box2",
+				"Box3": "api/en/math/Box3",
+				"Color": "api/en/math/Color",
+				"Cylindrical": "api/en/math/Cylindrical",
+				"Euler": "api/en/math/Euler",
+				"Frustum": "api/en/math/Frustum",
+				"Interpolant": "api/en/math/Interpolant",
+				"Line3": "api/en/math/Line3",
+				"MathUtils": "api/en/math/MathUtils",
+				"Matrix3": "api/en/math/Matrix3",
+				"Matrix4": "api/en/math/Matrix4",
+				"Plane": "api/en/math/Plane",
+				"Quaternion": "api/en/math/Quaternion",
+				"Ray": "api/en/math/Ray",
+				"Sphere": "api/en/math/Sphere",
+				"Spherical": "api/en/math/Spherical",
+				"SphericalHarmonics3": "api/en/math/SphericalHarmonics3",
+				"Triangle": "api/en/math/Triangle",
+				"Vector2": "api/en/math/Vector2",
+				"Vector3": "api/en/math/Vector3",
+				"Vector4": "api/en/math/Vector4"
+			},
+
+			"Math / Interpolants": {
+				"CubicInterpolant": "api/en/math/interpolants/CubicInterpolant",
+				"DiscreteInterpolant": "api/en/math/interpolants/DiscreteInterpolant",
+				"LinearInterpolant": "api/en/math/interpolants/LinearInterpolant",
+				"QuaternionLinearInterpolant": "api/en/math/interpolants/QuaternionLinearInterpolant"
+			},
+
+			"Objects": {
+				"Bone": "api/en/objects/Bone",
+				"Group": "api/en/objects/Group",
+				"InstancedMesh": "api/en/objects/InstancedMesh",
+				"Line": "api/en/objects/Line",
+				"LineLoop": "api/en/objects/LineLoop",
+				"LineSegments": "api/en/objects/LineSegments",
+				"LOD": "api/en/objects/LOD",
+				"Mesh": "api/en/objects/Mesh",
+				"Points": "api/en/objects/Points",
+				"Skeleton": "api/en/objects/Skeleton",
+				"SkinnedMesh": "api/en/objects/SkinnedMesh",
+				"Sprite": "api/en/objects/Sprite"
+			},
+
+			"Renderers": {
+				"WebGLMultipleRenderTargets": "api/en/renderers/WebGLMultipleRenderTargets",
+				"WebGLRenderer": "api/en/renderers/WebGLRenderer",
+				"WebGL1Renderer": "api/en/renderers/WebGL1Renderer",
+				"WebGLRenderTarget": "api/en/renderers/WebGLRenderTarget",
+				"WebGL3DRenderTarget": "api/en/renderers/WebGL3DRenderTarget",
+				"WebGLArrayRenderTarget": "api/en/renderers/WebGLArrayRenderTarget",
+				"WebGLCubeRenderTarget": "api/en/renderers/WebGLCubeRenderTarget"
+			},
+
+			"Renderers / Shaders": {
+				"ShaderChunk": "api/en/renderers/shaders/ShaderChunk",
+				"ShaderLib": "api/en/renderers/shaders/ShaderLib",
+				"UniformsLib": "api/en/renderers/shaders/UniformsLib",
+				"UniformsUtils": "api/en/renderers/shaders/UniformsUtils"
+			},
+
+			"Renderers / WebXR": {
+				"WebXRManager": "api/en/renderers/webxr/WebXRManager"
+			},
+
+			"Scenes": {
+				"Fog": "api/en/scenes/Fog",
+				"FogExp2": "api/en/scenes/FogExp2",
+				"Scene": "api/en/scenes/Scene"
+			},
 
+			"Textures": {
+				"CanvasTexture": "api/en/textures/CanvasTexture",
+				"CompressedTexture": "api/en/textures/CompressedTexture",
+				"CompressedArrayTexture": "api/en/textures/CompressedArrayTexture",
+				"CubeTexture": "api/en/textures/CubeTexture",
+				"Data3DTexture": "api/en/textures/Data3DTexture",
+				"DataArrayTexture": "api/en/textures/DataArrayTexture",
+				"DataTexture": "api/en/textures/DataTexture",
+				"DepthTexture": "api/en/textures/DepthTexture",
+				"FramebufferTexture": "api/en/textures/FramebufferTexture",
+				"Source": "api/en/textures/Source",
+				"Texture": "api/en/textures/Texture",
+				"VideoTexture": "api/en/textures/VideoTexture"
+			}
+
+		},
+
+		"Examples": {
+
+			"Animations": {
+				"CCDIKSolver": "examples/en/animations/CCDIKSolver",
+				"MMDAnimationHelper": "examples/en/animations/MMDAnimationHelper",
+				"MMDPhysics": "examples/en/animations/MMDPhysics"
+			},
+
+			"Controls": {
+				"ArcballControls": "examples/en/controls/ArcballControls",
+				"DragControls": "examples/en/controls/DragControls",
+				"FirstPersonControls": "examples/en/controls/FirstPersonControls",
+				"FlyControls": "examples/en/controls/FlyControls",
+				"OrbitControls": "examples/en/controls/OrbitControls",
+				"PointerLockControls": "examples/en/controls/PointerLockControls",
+				"TrackballControls": "examples/en/controls/TrackballControls",
+				"TransformControls": "examples/en/controls/TransformControls"
+			},
+
+			"Geometries": {
+				"ConvexGeometry": "examples/en/geometries/ConvexGeometry",
+				"DecalGeometry": "examples/en/geometries/DecalGeometry",
+				"ParametricGeometry": "examples/en/geometries/ParametricGeometry",
+				"TextGeometry": "examples/en/geometries/TextGeometry"
+			},
+
+			"Helpers": {
+				"LightProbeHelper": "examples/en/helpers/LightProbeHelper",
+				"PositionalAudioHelper": "examples/en/helpers/PositionalAudioHelper",
+				"RectAreaLightHelper": "examples/en/helpers/RectAreaLightHelper",
+				"VertexNormalsHelper": "examples/en/helpers/VertexNormalsHelper",
+				"VertexTangentsHelper": "examples/en/helpers/VertexTangentsHelper"
+			},
+
+			"Lights": {
+				"LightProbeGenerator": "examples/en/lights/LightProbeGenerator"
+			},
+
+			"Loaders": {
+				"3DMLoader": "examples/en/loaders/3DMLoader",
+				"DRACOLoader": "examples/en/loaders/DRACOLoader",
+				"FontLoader": "examples/en/loaders/FontLoader",
+				"GLTFLoader": "examples/en/loaders/GLTFLoader",
+				"KTX2Loader": "examples/en/loaders/KTX2Loader",
+				"LDrawLoader": "examples/en/loaders/LDrawLoader",
+				"MMDLoader": "examples/en/loaders/MMDLoader",
+				"MTLLoader": "examples/en/loaders/MTLLoader",
+				"OBJLoader": "examples/en/loaders/OBJLoader",
+				"PCDLoader": "examples/en/loaders/PCDLoader",
+				"PDBLoader": "examples/en/loaders/PDBLoader",
+				"PRWMLoader": "examples/en/loaders/PRWMLoader",
+				"SVGLoader": "examples/en/loaders/SVGLoader",
+				"TGALoader": "examples/en/loaders/TGALoader"
+			},
+
+			"Objects": {
+				"Lensflare": "examples/en/objects/Lensflare"
+			},
+
+			"Post-Processing": {
+				"EffectComposer": "examples/en/postprocessing/EffectComposer"
+			},
+
+			"Exporters": {
+				"ColladaExporter": "examples/en/exporters/ColladaExporter",
+				"EXRExporter": "examples/en/exporters/EXRExporter",
+				"GLTFExporter": "examples/en/exporters/GLTFExporter",
+				"OBJExporter": "examples/en/exporters/OBJExporter",
+				"PLYExporter": "examples/en/exporters/PLYExporter"
+			},
+
+			"Math": {
+				"LookupTable": "examples/en/math/Lut",
+				"MeshSurfaceSampler": "examples/en/math/MeshSurfaceSampler",
+				"OBB": "examples/en/math/OBB"
+			},
+
+			"ConvexHull": {
+				"Face": "examples/en/math/convexhull/Face",
+				"HalfEdge": "examples/en/math/convexhull/HalfEdge",
+				"ConvexHull": "examples/en/math/convexhull/ConvexHull",
+				"VertexNode": "examples/en/math/convexhull/VertexNode",
+				"VertexList": "examples/en/math/convexhull/VertexList"
+			},
+
+			"Renderers": {
+				"CSS2DRenderer": "examples/en/renderers/CSS2DRenderer",
+				"CSS3DRenderer": "examples/en/renderers/CSS3DRenderer",
+				"SVGRenderer": "examples/en/renderers/SVGRenderer"
+
+			},
+
+			"Utils": {
+				"BufferGeometryUtils": "examples/en/utils/BufferGeometryUtils",
+				"CameraUtils": "examples/en/utils/CameraUtils",
+				"SceneUtils": "examples/en/utils/SceneUtils",
+				"SkeletonUtils": "examples/en/utils/SkeletonUtils"
+			}
+
+		},
+
+		"Developer Reference": {
+
+			"WebGLRenderer": {
+				"WebGLProgram": "api/en/renderers/webgl/WebGLProgram"
+			}
+
+		}
+
+	}
 }

+ 162 - 0
docs/manual/ru/introduction/Creating-a-scene.html

@@ -0,0 +1,162 @@
+<!DOCTYPE html>
+<html lang="ru">
+	<head>
+		<meta charset="utf-8">
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>Создание сцены</h1>
+
+		<p>Цель этого раздела - дать краткое введение в three.js . Мы начнем с создания сцены с вращающимся кубом. Рабочий пример приведен внизу страницы на случай, если вы где то застряли и вам понадобится помощь.</p>
+
+		<h2>Прежде чем мы начнем</h2>
+
+		<p>
+			Прежде чем вы сможете использовать three.js , вам нужно где-то его отобразить. Сохраните следующий HTML-код в файл на вашем компьютере вместе с копией [link:https://threejs.org/build/three.js three.js] в каталоге js/ и откройте его в своем браузере.
+		</p>
+
+		<code>
+		&lt;!DOCTYPE html&gt;
+		&lt;html&gt;
+			&lt;head&gt;
+				&lt;meta charset="utf-8"&gt;
+				&lt;title&gt;My first three.js app&lt;/title&gt;
+				&lt;style&gt;
+					body { margin: 0; }
+				&lt;/style&gt;
+			&lt;/head&gt;
+			&lt;body&gt;
+				&lt;script src="js/three.js"&gt;&lt;/script&gt;
+				&lt;script&gt;
+					// Наш Javascript будет здесь..
+				&lt;/script&gt;
+			&lt;/body&gt;
+		&lt;/html&gt;
+		</code>
+
+		<p>Пока это все. Весь приведенный ниже код помещается в пустой тег &lt;script&gt;.</p>
+
+		<h2>Создание сцены</h2>
+
+		<p>Чтобы на самом деле иметь возможность отображать что-либо с three.js, Нам нужны три вещи: сцена, камера и средство визуализации, чтобы мы могли визуализировать сцену с помощью камеры.</p>
+
+		<code>
+		const scene = new THREE.Scene();
+		const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
+
+		const renderer = new THREE.WebGLRenderer();
+		renderer.setSize( window.innerWidth, window.innerHeight );
+		document.body.appendChild( renderer.domElement );
+		</code>
+
+		<p>Давайте воспользуемся моментом, чтобы объяснить, что здесь происходит. Теперь мы настроили сцену, нашу камеру и средство визуализации.</p>
+
+		<p>Есть несколько разных камер в three.js . А пока давайте воспользуемся `PerspectiveCamera`.</p>
+		<p>Первый атрибут - это `поле зрения (field of view)`. FOV - это масштаб сцены, которая видна на дисплее в любой данный момент. Значение указано в градусах.</p>
+
+		<p>Второй - это `соотношение сторон (aspect ratio)`. Вы почти всегда хотите использовать ширину элемента, деленную на высоту, иначе вы получите тот же результат, что и при воспроизведении старых фильмов на широкоэкранном телевизоре - изображение выглядит сплющенным.</p>
+
+		<p>Следующие два атрибута - это `ближняя (near)` и `дальняя (far)` плоскость отсечения. Это означает, что объекты, находящиеся дальше от камеры, чем значение `far`, или ближе, чем `near`, не будут отображаться. Сейчас вам не нужно беспокоиться об этом, но вы можете использовать другие значения в своих приложениях, чтобы повысить производительность.</p>
+
+		<p>Далее следует средство визуализации. Вот тут-то и происходит волшебство. В дополнение к средству визуализации WebGL, которое мы используем здесь, three.js поставляется с несколькими другими, часто используемыми в качестве резервных для пользователей со старыми браузерами или для тех, у кого по какой-либо причине нет поддержки WebGL.</p>
+		<p>В дополнение к созданию экземпляра средства визуализации нам также необходимо установить размер, в котором мы хотим, чтобы оно отображало наше приложение. Рекомендуется использовать ширину и высоту области, которую мы хотим заполнить с помощью нашего приложения - в данном случае ширину и высоту окна браузера. Для приложений с высокой производительностью вы также можете задать `setSize` меньшее значения, например `window.innerWidth/2` и `window.innerHeight/2`, что приведет к рендерингу приложения в четверть размера.</p>
+		<p>Если вы хотите сохранить размер своего приложения, но отобразить его с меньшим разрешением, вы можете сделать это, вызвав `setSize` с `updateStyle`(третий аргумент) равному false. Например, `setSize(window.innerWidth/2, window.innerHeight/2, false)` будет отображать ваше приложение с половинным разрешением, учитывая, что ваш &lt;canvas &gt; имеет 100% ширины и высоты.</p>
+
+		<p>И последнее, но не менее важное: мы добавляем элемент `renderer` в наш HTML-документ. Это элемент &lt;canvas&gt;, который рендерер использует для отображения сцены для нас.</p>
+		<p><em>"Все это хорошо, но, где тот кубик, который Вы так обещали?"</em> Давайте добавим его сейчас.</p>
+
+		<code>
+		const geometry = new THREE.BoxGeometry( 1, 1, 1 );
+		const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
+		const cube = new THREE.Mesh( geometry, material );
+		scene.add( cube );
+
+		camera.position.z = 5;
+		</code>
+
+		<p>Чтобы создать куб, нам нужна `BoxGeometry`. Это объект, который содержит все точки (`vertices/вершины`) и заливку (`faces/грани`) куба. Мы подробнее рассмотрим это в будущем.</p>
+
+		<p>В дополнение к геометрии нам нужен материал, чтобы раскрасить его. Three.js поставляется с несколькими материалами, но пока мы будем придерживаться `MeshBasicMaterial`. Все материалы приобретают объект свойств, которые будут к ним применены. Чтобы все было очень просто, мы предоставляем только атрибут цвета `0x00ff00`, который является зеленым. Это работает так же, как цвета работают в CSS или Photoshop (`шестнадцатеричные цвета/hex colors`).</p>
+
+		<p>Третья вещь, которая нам нужна, - это `Mesh(Сетка)`. Сетка - это объект, который принимает геометрию и применяет к ней материал, который затем мы можем вставить в нашу сцену и свободно перемещать по ней.</p>
+
+		<p>По умолчанию, когда мы вызываем `scene.add()`, то, что мы добавляем, будет добавлено к координатам `(0,0,0)`. Это привело бы к тому, что и камера, и куб оказались бы внутри друг друга. Чтобы избежать этого, мы просто немного выдвигаем камеру.</p>
+
+		<h2>Рендеринг сцены</h2>
+
+		<p>Если бы вы скопировали приведенный выше код в HTML-файл, который мы создали ранее, вы бы ничего не смогли увидеть. Это потому, что на самом деле мы еще ничего не рендерим. Для этого нам нужно то, что называется `цикл рендеринга или анимации`.</p>
+
+		<code>
+		function animate() {
+			requestAnimationFrame( animate );
+			renderer.render( scene, camera );
+		}
+		animate();
+		</code>
+
+		<p> Это создаст цикл, который заставляет средство визуализации отрисовывать сцену каждый раз при обновлении экрана (на обычном экране это означает 60 раз в секунду). Если вы новичок в написании игр в браузере, вы можете сказать <em> "Почему бы нам просто не создать setInterval?"</em> Дело в том, что мы могли бы, но `requestAnimationFrame` имеет ряд преимуществ. Возможно, самым важным из них является то, что он приостанавливается, когда пользователь переходит на другую вкладку браузера, следовательно, не тратя впустую свою драгоценную вычислительную мощность и время автономной работы.</p>
+
+		<h2>Анимация куба</h2>
+
+		<p>Если вы вставите весь приведенный выше код в файл, который вы создали до того, как мы начали, вы должны увидеть зеленое поле. Давайте сделаем все это немного интереснее, повернув его.</p>
+
+		<p>Добавьте следующий код прямо над вызовом `renderer.render` в вашей функции `animate`:</p>
+
+		<code>
+		cube.rotation.x += 0.01;
+		cube.rotation.y += 0.01;
+		</code>
+
+		<p> Это будет выполняться каждый кадр (обычно 60 раз в секунду) и придаст кубу приятную анимацию вращения. По сути, все, что вы хотите переместить или изменить во время работы приложения, должно пройти через цикл анимации. Конечно, вы можете вызывать оттуда другие функции, чтобы в итоге не получить `анимированную` функцию, состоящую из сотен строк.</p>
+
+		<h2>Результат</h2>
+
+		<p>Поздравляю! Теперь вы завершили свой первый three.js применение. Это просто, но вы должны с чего-то начать.</p>
+
+		<p>Полный код доступен ниже и доступен для редактирования [link:https://jsfiddle.net/fxurzeb4/ live example]. Поиграйте с ним, чтобы лучше понять, как он работает.</p>
+
+		<code>
+		&lt;!DOCTYPE html&gt;
+		&lt;html&gt;
+			&lt;head&gt;
+				&lt;meta charset="utf-8"&gt;
+				&lt;title&gt;My first three.js app&lt;/title&gt;
+				&lt;style&gt;
+					body { margin: 0; }
+				&lt;/style&gt;
+			&lt;/head&gt;
+			&lt;body&gt;
+				&lt;script src="js/three.js"&gt;&lt;/script&gt;
+				&lt;script&gt;
+					const scene = new THREE.Scene();
+					const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
+
+					const renderer = new THREE.WebGLRenderer();
+					renderer.setSize( window.innerWidth, window.innerHeight );
+					document.body.appendChild( renderer.domElement );
+
+					const geometry = new THREE.BoxGeometry( 1, 1, 1 );
+					const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
+					const cube = new THREE.Mesh( geometry, material );
+					scene.add( cube );
+
+					camera.position.z = 5;
+
+					function animate() {
+						requestAnimationFrame( animate );
+
+						cube.rotation.x += 0.01;
+						cube.rotation.y += 0.01;
+
+						renderer.render( scene, camera );
+					};
+
+					animate();
+				&lt;/script&gt;
+			&lt;/body&gt;
+		&lt;/html&gt;
+		</code>
+	</body>
+</html>

+ 142 - 0
docs/manual/ru/introduction/Creating-text.html

@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<html lang="ru">
+	<head>
+		<meta charset="utf-8">
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>Создание текста ([name])</h1>
+		<div>
+			<p>
+				Часто бывают случаи, когда вам может понадобиться использовать текст в вашем three.js приложение - вот
+				несколько способов, как это сделать.
+			</p>
+		</div>
+
+		<h2>1. DOM + CSS</h2>
+		<div>
+			<p>
+				Использование HTML, как правило, является самым простым и быстрым способом добавления текста. Этот метод
+				используется для наложения текста в большинстве three.js приложений.
+			</p>
+			<p>Вы можете добавлять содержимое в</p>
+			<code>&lt;div id="info"&gt;Описание&lt;/div&gt;</code>
+
+			<p>
+				и использовать разметку CSS для абсолютного позиционирования над всеми остальным с
+				z-index, особенно если вы используете полноэкранный режим three.js.
+			</p>
+
+			<code>
+#info {
+	position: absolute;
+	top: 10px;
+	width: 100%;
+	text-align: center;
+	z-index: 100;
+	display:block;
+}
+			</code>
+
+		</div>
+
+		
+		<h2>2. Использование [page:CSS2DRenderer] или [page:CSS3DRenderer]</h2>
+		<div>
+			<p>
+				Используйте эти рендереры для отрисовки высококачественного текста, содержащегося в элементах DOM, в вашу сцену three.js.
+				Это похоже на 1. за исключением того, что с помощью этих средств визуализации элементы могут быть более тесно и динамично интегрированы в сцену.
+			</p>
+		</div>
+		
+
+		<h2>3. Нарисуйте текст на холсте используя [page:Texture]</h2>
+		<div>
+			<p>Используйте этот способ, если вы хотите легко нарисовать текст на плоскости в вашем three.js сцене.</p>
+		</div>
+
+
+		<h2>4. Создайте модель в вашем любимом 3D-приложении и экспортируйте в three.js</h2>
+		<div>
+			<p>Используйте этот способ, если вы предпочитаете работать со своими 3d-приложениями и импортировать модели в three.js .</p>
+		</div>
+
+
+		<h2>5. Процедурная геометрия текста</h2>
+		<div>
+			<p>
+				Если вы предпочитаете работать исключительно в three.js или создавать процедурные и динамические 3D
+				текстовые геометрии, вы можете создать mesh, геометрия которой является экземпляром THREE.TextGeometry:
+			</p>
+			<p>
+				<code>new THREE.TextGeometry( text, parameters );</code>
+			</p>
+			<p>
+				Однако для того, чтобы это сработало, вашей текстовой геометрии потребуется экземпляр из THREE.Font
+				должен быть установлен в его параметре "шрифт".
+
+				Смотрите страницу [page:TextGeometry] для получения дополнительной информации о том, как это можно сделать, описания каждого
+				принимаемого параметра и список шрифтов JSON, которые поставляются с THREE.js.
+			</p>
+
+			<h3>Примеры</h3>
+
+			<p>
+				[example:webgl_geometry_text WebGL / geometry / text]<br />
+				[example:webgl_shadowmap WebGL / shadowmap]
+			</p>
+
+			<p>
+				Если шрифт не работает или вы хотите использовать шрифт, которого там нет, есть учебное пособие по
+				скрипту python для blender, который позволит экспортировать текст в Three.js в формате JSON:
+				[link:http://www.jaanga.com/2012/03/blender-to-threejs-create-3d-text-with.html]
+			</p>
+
+		</div>
+
+
+		<h2>6. Растровые шрифты</h2>
+		<div>
+			<p>
+				Растровые шрифты (bitmap fonts) позволяют группировать глифы в единую BufferGeometry. Рендеринг BMFont
+				поддерживает перенос слов, межбуквенный интервал, кернинг, поля расстояния со знаком со стандартными
+				производными, многоканальные поля расстояния со знаком, шрифты с несколькими текстурами и многое другое.
+				Смотрите [link:https://github.com/felixmariotto/three-mesh-ui three-mesh-ui] или [link:https://github.com/Jam3/three-bmfont-text three-bmfont-text].
+			</p>
+			<p>
+				Стандартные шрифты доступны в таких проектах, как
+				[link:https://github.com/etiennepinchon/aframe-fonts A-Frame Fonts], или вы можете создать свой собственный
+				из любого .TTF шрифта, оптимизированный для включения только символов, необходимых для проекта.
+			</p>
+			<p>
+				Некоторые полезные инструменты:
+			</p>
+			<ul>
+				<li>[link:http://msdf-bmfont.donmccurdy.com/ msdf-bmfont-web] <i>(web-based)</i></li>
+				<li>[link:https://github.com/soimy/msdf-bmfont-xml msdf-bmfont-xml] <i>(commandline)</i></li>
+				<li>[link:https://github.com/libgdx/libgdx/wiki/Hiero hiero] <i>(desktop app)</i></li>
+			</ul>
+		</div>
+
+
+		<h2>7. Текст Тройка (Troika Text)</h2>
+		<div>
+			<p>
+				Пакет [link:https://www.npmjs.com/package/troika-three-text troika-three-text] отображает
+				качественный сглаженный текст, использующий ту же технику, что и BMFonts, но работающий напрямую с любым .TTF
+				или .WOFF файлом шрифта, чтобы вам не приходилось восстанавливать текстуру глифа в автономном режиме. Он также добавляет
+				возможности, в том числе:
+			</p>
+			<ul>
+				<li>Такие эффекты, как штрихи, отбрасываемые тени и кривизна</li>
+				<li>Возможность применять любые three.js Материал, даже пользовательский шейдерный материал</li>
+				<li>Поддержка лигатур шрифтов, скриптов с соединенными буквами и компоновки справа-налево/двунаправленно</li>
+				<li>Оптимизация для больших объемов динамического текста, выполнение большей части работы вне основного потока в веб-воркере</li>
+			</ul>
+		</div>
+
+
+	</body>
+</html>

+ 64 - 0
docs/manual/ru/introduction/Drawing-lines.html

@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html lang="ru">
+	<head>
+		<meta charset="utf-8">
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>Рисование линий ([name])</h1>
+		<div>
+			<p>
+				Допустим, вы хотите нарисовать линию или круг, а не каркас [page:Mesh].
+				Сначала нам нужно настроить [page:WebGLRenderer renderer](рендеринг), [page:Scene scene](сцену) и камеру (см. страницу Создания сцены).
+			</p>
+
+			<p>Вот код, который мы будем использовать:</p>
+			<code>
+const renderer = new THREE.WebGLRenderer();
+renderer.setSize( window.innerWidth, window.innerHeight );
+document.body.appendChild( renderer.domElement );
+
+const camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 500 );
+camera.position.set( 0, 0, 100 );
+camera.lookAt( 0, 0, 0 );
+
+const scene = new THREE.Scene();
+			</code>
+			<p>Следующее, что мы сделаем, - это определим материал. Для линий мы должны использовать [page:LineBasicMaterial] или [page:LineDashedMaterial].</p>
+			<code>
+// создаем синий LineBasicMaterial
+const material = new THREE.LineBasicMaterial( { color: 0x0000ff } );
+			</code>
+
+			<p>
+				После материала нам понадобится геометрия с некоторыми вершинами:
+			</p>
+
+			<code>
+const points = [];
+points.push( new THREE.Vector3( - 10, 0, 0 ) );
+points.push( new THREE.Vector3( 0, 10, 0 ) );
+points.push( new THREE.Vector3( 10, 0, 0 ) );
+
+const geometry = new THREE.BufferGeometry().setFromPoints( points );
+			</code>
+
+			<p>Обратите внимание, что линии рисуются между каждой последовательной парой вершин, но не между первой и последней (линия не замкнута).</p>
+
+			<p>Теперь, когда у нас есть точки для двух линий и материал, мы можем соединить их вместе, чтобы сформировать линию.</p>
+			<code>
+const line = new THREE.Line( geometry, material );
+			</code>
+			<p>Все, что осталось, это добавить его в сцену и вызвать [page:WebGLRenderer.render render].</p>
+
+			<code>
+scene.add( line );
+renderer.render( scene, camera );
+			</code>
+
+			<p>Теперь вы должны увидеть стрелку, направленную вверх, сделанную из двух синих линий.</p>
+		</div>
+	</body>
+</html>

+ 63 - 0
docs/manual/ru/introduction/FAQ.html

@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8">
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>Часто задаваемые вопросы [name]</h1>
+
+		<h2>Какой формат 3D-модели лучше всего поддерживается?</h2>
+		<div>
+			<p>
+				Рекомендуемый формат для импорта и экспорта - golf (формат передачи GL). Поскольку glTF ориентирован на доставку ресурсов во время выполнения, он компактен для передачи и быстр для загрузки.
+			</p>
+			<p>
+				three.js предоставляет загрузчики для многих других популярных форматов, таких как FBX, Collada или OBJ. Тем не менее, вы всегда должны сначала пытаться настроить рабочий процесс на основе glTF в своих проектах. Для получения дополнительной информации см. [link:#manual/introduction/Loading-3D-models loading 3D models] (загрузка 3D-моделей).
+			</p>
+		</div>
+
+		<h2>Почему в примерах присутствуют теги meta viewport?</h2>
+		<div>
+				<code>&lt;meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0"&gt;</code>
+
+				<p>
+					Эти теги управляют размером и масштабом областью просмотра экрана для мобильных браузеров (где содержимое страницы может отображаться с размером, отличным от видимой области просмотра экрана).
+				</p>
+
+				<p>[link:https://developer.apple.com/library/content/documentation/AppleApplications/Reference/SafariWebContent/UsingtheViewport/UsingtheViewport.html Safari: Using the Viewport] (Safari: Использование области видимости экрана)</p>
+
+				<p>[link:https://developer.mozilla.org/en-US/docs/Web/HTML/Viewport_meta_tag MDN: Using the viewport meta tag] (MDN: Использование мета-тега области видимости экрана)</p>
+		</div>
+
+		<h2>Как можно сохранить масштаб сцены при изменении размера?</h2>
+		<p>
+			Мы хотим, чтобы все объекты, независимо от их расстояния от камеры, отображались одинакового размера, даже при изменении размера окна.
+
+			Ключевым уравнением для решения этой проблемы является следующая формула для видимой высоты на заданном расстоянии:
+
+			<code>
+visible_height = 2 * Math.tan( ( Math.PI / 180 ) * camera.fov / 2 ) * distance_from_camera;
+			</code>
+			Если мы увеличим высоту окна на определенный процент, то мы хотим, чтобы видимая высота на всех расстояниях
+			увеличилась на тот же процент. Этого нельзя сделать, просто изменив положение камеры.
+			Вместо этого вы должны изменить поле зрения камеры.
+			[link:http://jsfiddle.net/Q4Jpu/ Example] (пример).
+		</p>
+
+		<h2>Почему часть моего объекта невидима?</h2>
+		<p>
+			Это может быть связано с определением граней. Грани имеют ориентацию, которая определяет,
+			какая сторона является какой. И определение удаляет заднюю часть при нормальных условиях.
+			Чтобы увидеть, это ли ваша проблема, измените сторону материала на THREE.DoubleSide.
+			<code>material.side = THREE.DoubleSide</code>
+		</p>
+
+		<h2>Почему three.js иногда возвращает странные результаты для недопустимых входных данных?</h2>
+		<p>
+			Из соображений производительности в большинстве случаев three.js не проверяет входные данные. Ваше приложение должно убедиться, что все входные данные действительны.
+		</p>
+	</body>
+</html>

+ 184 - 0
docs/manual/ru/introduction/How-to-run-things-locally.html

@@ -0,0 +1,184 @@
+<!DOCTYPE html>
+<html lang="ru">
+<head>
+	<meta charset="utf-8">
+	<base href="../../../"/>
+	<script src="page.js"></script>
+	<link type="text/css" rel="stylesheet" href="page.css"/>
+</head>
+<body>
+<h1>Локальная разработка ([name])</h1>
+<p>
+	Если вы используете только процедурную геометрию и не загружаете никаких текстур, веб-страницы должны работать
+	прямо из файловой системы, просто дважды щелкните по HTML-файлу в файловом менеджере, и он
+	должен появиться в браузере (вы увидите <em>file:///вашФайл.html </em> в адресной строке).
+</p>
+
+<h2>Контент загружен из внешних файлов</h2>
+<div>
+	<p>
+		Если вы загружаете модели или текстуры из внешних файлов, из-за того, что браузеры
+		[link:http://en.wikipedia.org/wiki/Same_origin_policy same origin policy](политика одинакового происхождения)
+		ограничения безопасности, загрузка из файловой системы завершится ошибкой с исключением безопасности.
+	</p>
+
+	<p>
+		Чтобы решить эту проблему, запустите файлы с локального веб-сервера. Это позволит вам получить доступ к вашей
+		странице как:
+	</p>
+
+	<p>
+		<code>http://localhost/yourFile.html</code>
+	</p>
+
+	<p>
+		Хотя также можно изменить настройки безопасности браузера вместо запуска локального сервера,
+		мы не рекомендуем такой подход. Это может открыть ваше устройство для уязвимостей, если
+		тот же браузер используется для обычного веб-серфинга. Использование локального сервера является стандартной
+		практикой в
+		веб-разработки, и ниже мы объясним, как установить и использовать локальный сервер.
+	</p>
+</div>
+
+
+<h2>Запуск локального сервера</h2>
+<div>
+	<p>
+		Многие языки программирования имеют встроенные простые HTTP-серверы. Они не так полнофункциональны, как
+		рабочие серверы, такие как [link:https://www.apache.org/ Apache] или [link:https://nginx.org NGINX], однако их
+		должно быть достаточно для тестирования вашего
+		three.js приложение.
+	</p>
+
+	<h3>Плагины для популярных редакторов кода</h3>
+	<div>
+		<p>В некоторых редакторах кода есть плагины, которые по запросу создают простой сервер.</p>
+		<ul>
+			<li>[link:https://marketplace.visualstudio.com/items?itemName=yandeu.five-server Five Server] для Visual
+				Studio Code.
+			</li>
+			<li>[link:https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer Live Server] для Visual
+				Studio Code.
+			</li>
+			<li>[link:https://atom.io/packages/atom-live-server Live Server] для Atom.</li>
+			<li>для ide от jetbrains уже все из коробки (как всегда)</li>
+		</ul>
+	</div>
+
+	<h3>Servez</h3>
+	<div>
+		<p>
+			[link:https://greggman.github.io/servez Servez] это простой сервер с графическим интерфейсом.
+		</p>
+	</div>
+
+	<h3>Node.js five-server</h3>
+	<div>
+		<p>Сервер разработки с возможностью горячей перезагрузки. Установка:</p>
+		<code>
+
+			# Удалите live-server (если он у вас есть)
+			npm -g rm live-server
+
+			# Установите five-server
+			npm -g i five-server
+
+			# Обновление five-server (иногда)
+			npm -g i five-server@latest
+		</code>
+
+		<p>Для запуска (из вашей локальной директории):</p>
+		<code>five-server . -p 8000</code>
+	</div>
+
+	<h3>Node.js http-server</h3>
+	<div>
+		<p>Node.js имеет простой пакет HTTP-сервера. Установка:</p>
+		<code>npm install http-server -g</code>
+
+		<p>Для запуска (из вашей локальной директории):</p>
+		<code>http-server . -p 8000</code>
+	</div>
+
+	<h3>Python сервер</h3>
+	<div>
+		<p>
+			Если у вас установлен [link:http://python.org/ Python], этого должно быть достаточно для запуска
+			из командной строки (из вашей локальной директории):
+		</p>
+		<code>
+			//Python 2.x
+			python -m SimpleHTTPServer
+
+			//Python 3.x
+			python -m http.server
+		</code>
+
+		<p>Это поднимет сервер для файлов из текущего каталога на localhost на порте 8000, т.е. в адресной строке
+			введите:</p>
+
+		<code>http://localhost:8000/</code>
+	</div>
+
+	<h3>Ruby сервер</h3>
+	<div>
+		<p>Если у вас установлен Ruby, вы можете получить тот же результат, выполнив:</p>
+		<code>
+			ruby -r webrick -e "s = WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => Dir.pwd); trap('INT') { s.shutdown }; s.start"
+		</code>
+	</div>
+
+	<h3>PHP сервер</h3>
+	<div>
+		<p>PHP также имеет встроенный веб-сервер, начиная с php 5.4.0:</p>
+		<code>php -S localhost:8000</code>
+	</div>
+
+	<h3>Lighttpd</h3>
+	<div>
+		<p>
+			Lighttpd - это очень легкий веб-сервер общего назначения. Мы рассмотрим установку его на OSX с помощью
+			HomeBrew. В отличие от других серверов, обсуждаемых здесь, lighttpd является полноценным прод. сервером.
+		</p>
+
+		<ol>
+			<li>
+				Установка с помощью homebrew
+				<code>brew install lighttpd</code>
+			</li>
+			<li>
+				Создайте конфигурационный файл с именем lighttpd.conf в каталоге, в котором вы хотите запустить
+				ваш веб-сервер. Пример [link:http://redmine.lighttpd.net/projects/lighttpd/wiki/TutorialConfiguration
+				here].
+			</li>
+			<li>
+				В файле conf измените корневой каталог server.document на каталог, из которого вы хотите обслуживать
+				файлы.
+			</li>
+			<li>
+				Запуск
+				<code>lighttpd -f lighttpd.conf</code>
+			</li>
+			<li>
+				Перейдите в http://localhost:3000/ и он будет обслуживать статические файлы из каталога, который вы
+				выбрали.
+			</li>
+		</ol>
+	</div>
+	<h3>IIS</h3>
+	<div>
+		<p>Если вы используете Microsoft IIS в качестве веб-сервера. Пожалуйста, добавьте настройки типа MIME для
+			расширения .fbx перед загрузкой.</p>
+		<code>File name extension: fbx MIME Type: text/plain</code>
+		<p>По умолчанию IIS блокирует загрузку файлов .fbx, .obj. Вы должны настроить IIS, чтобы такие файлы можно было
+			загружать.</p>
+	</div>
+	<p>
+		Другими простыми альтернативами являются [link:http://stackoverflow.com/q/12905426/24874 discussed
+		here](обсуждается здесь)
+		на Stack Overflow.
+	</p>
+</div>
+
+</body>
+</html>

+ 200 - 0
docs/manual/ru/introduction/Installation.html

@@ -0,0 +1,200 @@
+<!DOCTYPE html>
+<html lang="ru">
+<head>
+	<meta charset="utf-8">
+	<base href="../../../"/>
+	<script src="page.js"></script>
+	<link type="text/css"
+		  rel="stylesheet"
+		  href="page.css"/>
+</head>
+<body>
+	<h1>Установка ([name])</h1>
+
+	<p>
+		Вы можете установить three.js с помощью [link:https://www.npmjs.com/ npm] и современных инструментов сборки или
+		быстро начните работу со статического хостинга или CDN. Для большинства пользователей установка из npm является
+		лучшим выбором.
+	</p>
+
+	<p>
+		Что бы вы ни выбрали, будьте последовательны и импортируйте все файлы из одной и той же версии библиотеки.
+		Смешивание файлов из разных источников может привести к включению дублирующегося кода или даже к неожиданной
+		поломке
+		приложения.
+	</p>
+
+
+	<p>
+		Все способы установки three.js зависят от модулей ES (см.
+		[link:https://eloquentjavascript.net/10_modules.html#h_hF2FmOVxw7 Eloquent JavaScript: ECMAScript Modules]),
+		которые
+		позволяют включать в конечный проект только те части библиотеки, которые необходимы.
+	</p>
+
+	<h2>Установка из npm</h2>
+
+	<p>
+		Чтобы установить [link:https://www.npmjs.com/package/three three] модуль npm, откройте окно терминала в папке
+		вашего
+		проекта и запустите:
+	</p>
+
+	<code>
+		npm install three
+	</code>
+
+	<p>
+		Пакет будет загружен и установлен. Когда вы будете готовы импортировать его в свой код:
+	</p>
+
+	<code>
+		// Вариант 1: Импортируйте весь three.js основная библиотека.
+		import * as THREE from 'three';
+
+		const scene = new THREE.Scene();
+
+
+		// Вариант 2: Импортируйте только те детали, которые вам нужны.
+		import { Scene } from 'three';
+
+		const scene = new Scene();
+	</code>
+
+	<p>
+		При установке из npm вы почти всегда будете использовать какой-либо
+		[link:https://eloquentjavascript.net/10_modules.html#h_zWTXAU93DC bundling tool], чтобы объединить все пакеты,
+		необходимые вашему проекту, в один файл JavaScript. В то время как любой современный пакет JavaScript можно
+		использовать с three.js , самым популярным выбором является [link:https://webpack.js.org/ webpack].
+	</p>
+
+	<p>
+		Не ко всем функциям можно получить доступ непосредственно через модуль <em>three</em> (также называемый "голым
+		импортом"). Другие популярные части библиотеки, такие как элементы управления, загрузчики и эффекты
+		постобработки,
+		должны быть импортированы из подпапки [link:https://github.com/mrdoob/three.js/tree/dev/examples/jsm
+		examples/jsm].
+		Чтобы узнать больше, смотрите <em>Примеры</em> ниже.
+	</p>
+
+	<p>
+		Узнайте больше о модулях npm по ссылке [link:https://eloquentjavascript.net/20_node.html#h_J6hW/SmL/a Eloquent
+		JavaScript: Installing with npm](Выразительный JavaScript: Установка с помощью npm).
+	</p>
+
+	<h2>Установка с CDN или статического хостинга</h2>
+
+	<p>
+		В three.js библиотеку можно использовать без какой-либо системы сборки, либо загрузив файлы на свой собственный
+		веб-сервер, либо используя существующий CDN. Поскольку библиотека полагается на модули ES, любой скрипт, который
+		ссылается на нее, должен использовать <em>type="module"</em>, как показано ниже.
+		Также требуется определить карту импорта, которая разрешает пустой модуль, указанный как `three`.
+	</p>
+
+	<code>
+		&lt;script async src="https://unpkg.com/[email protected]/dist/es-module-shims.js">&lt;/script>
+
+		&lt;script type="importmap">
+		{
+			"imports": {
+				"three": "https://unpkg.com/three@&lt;version&gt;/build/three.module.js"
+			}
+		}
+		&lt;/script>
+
+		&lt;script type="module">
+
+		import * as THREE from 'three';
+
+		const scene = new THREE.Scene();
+
+		&lt;/script>
+	</code>
+
+	<p>
+		Поскольку импорт карт еще не поддерживается всеми браузерами, необходимо добавить полифил *es-module-shims.js*.
+	</p>
+
+	<h2>Дополнения</h2>
+
+	<p>
+		Ядро three.js сосредоточен на наиболее важных компонентах 3D-движка. Многие другие полезные компоненты, такие
+		как элементы управления, загрузчики и эффекты постобработки, являются частью каталога
+		[link:https://github.com/mrdoob/three.js/tree/dev/examples/jsm examples/jsm]. Они называются "дополнениями"(addons) (ранее назывались "примерами"(examples)),
+		потому что, хотя вы можете использовать их в готовом виде, они также предназначены для ремиксов и кастомизации.
+		Эти компоненты всегда синхронизируются с основной библиотекой, в то время как аналогичные пакеты сторонних
+		разработчиков в npm поддерживаются разными пользователями и могут быть устаревшими.
+	</p>
+
+	<p>
+		Дополнения не нужно <em>устанавливать</em> отдельно, но их нужно <em>импортировать</em> отдельно. Если three.js был
+		установлен с помощью npm, вы можете загрузить компонент [page:OrbitControls](Управление орбитой) с помощью:
+	</p>
+
+
+	<code>
+		import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
+
+		const controls = new OrbitControls( camera, renderer.domElement );
+	</code>
+
+	<p>
+		Если three.js был установлен с CDN, используйте тот же код, но с `three/addons/` в карте импорта.
+	</p>
+
+	<code>
+		&lt;script async src="https://unpkg.com/[email protected]/dist/es-module-shims.js">&lt;/script>
+
+		&lt;script type="importmap">
+		{
+			"imports": {
+				"three": "https://unpkg.com/three@&lt;version&gt;/build/three.module.js",
+				"three/addons/": "https://unpkg.com/three@&lt;version&gt;/examples/jsm/"
+			}
+		}
+		&lt;/script>
+		&lt;script type="module">
+
+			import * as THREE from 'three';
+			import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
+
+			const controls = new OrbitControls( camera, renderer.domElement );
+
+		&lt;/script>
+	</code>
+
+	<p>
+		Важно, чтобы все файлы использовали одну и ту же версию. Не импортируйте разные дополнения(addons) из разных версий и
+		не используйте дополнения(addons) из версии, отличной от three.js самой библиотека.
+	</p>
+
+	<h2>Совместимость</h2>
+
+	<h3>CommonJS импорт</h3>
+
+	<p>
+		В то время как большинство современных пакетов JavaScript теперь поддерживают модули по умолчанию, некоторые
+		старые
+		инструменты сборки могут этого не делать. В этих случаях вы, вероятно, можете настроить пакет для подключения
+		модулей ES: [link:http://browserify.org/ Browserify] просто нужен плагин [link:https://github.com/babel/babelify babelify] , как пример.
+
+	</p>
+
+	<h3>Node.js</h3>
+
+	<p>
+		Так как three.js создан для Интернета, он зависит от браузера и DOM API, которые не всегда существуют в Node.js.
+		Некоторые из этих проблем могут быть решены с помощью прослоек, таких как
+		[link:https://github.com/stackgl/headless-gl headless-gl], или путем замены компонентов, таких как
+		[page:TextureLoader], пользовательскими альтернативами. Другие API-интерфейсы DOM могут быть глубоко переплетены
+		с использующим их кодом, и обойти их будет сложнее.
+		Мы приветствуем простые и поддерживаемые предложения `pull requests` для улучшения поддержки Node.js, но
+		рекомендуем сначала открыть `issue`(вопрос), чтобы обсудить ваши улучшения.
+	</p>
+
+	<p>
+		Обязательно добавьте `{ "type": "module" }` в свой `package.json`, чтобы включить модули ES6 в ваш проект.
+	</p>
+
+</body>
+</html>

+ 107 - 0
docs/manual/ru/introduction/Libraries-and-Plugins.html

@@ -0,0 +1,107 @@
+<!DOCTYPE html>
+<html lang="ru">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>Библиотеки и плагины ([name])</h1>
+
+		<p class="desc">
+			Здесь перечислены совместимые библиотеки и плагины, разработанные опенсорсом для three.js . Этот
+			список и связанные с ним пакеты поддерживаются сообществом и не гарантируют
+			их актуальность. Если вы хотите обновить этот список, сделайте PR!
+		</p>
+
+		<h3>Физика</h3>
+
+		<ul>
+			<li>[link:https://github.com/lo-th/Oimo.js/ Oimo.js]</li>
+			<li>[link:https://enable3d.io/ enable3d]</li>
+			<li>[link:https://github.com/kripken/ammo.js/ ammo.js]</li>
+			<li>[link:https://github.com/pmndrs/cannon-es cannon-es]</li>
+		</ul>
+
+		<h3>Постобработка</h3>
+
+		<p>
+			В дополнение к [link:https://github.com/mrdoob/three.js/tree/dev/examples/jsm/postprocessing official three.js postprocessing effects] (оф. эффекты постобработки three.js ],
+			поддержка некоторых дополнительных эффектов и фреймворков доступна через внешние библиотеки.
+		</p>
+
+		<ul>
+			<li>[link:https://github.com/vanruesc/postprocessing postprocessing]</li>
+		</ul>
+
+		<h3>Пересечение и производительность Raycast</h3>
+
+		<ul>
+			<li>[link:https://github.com/gkjohnson/three-mesh-bvh three-mesh-bvh]</li>
+		</ul>
+
+		<h3>Трассировка лучей</h3>
+		
+		<ul>
+			<li>[link:https://github.com/gkjohnson/three-gpu-pathtracer three-gpu-pathtracer]</li>
+		</ul>
+		
+		<h3>Форматы файлов</h3>
+
+		<p>
+			В дополнение к [link:https://github.com/mrdoob/three.js/tree/dev/examples/jsm/loaders official three.js loaders] (оф. three.js загрузчики),
+			поддержка некоторых дополнительных форматов доступна через внешние библиотеки.
+		</p>
+
+		<ul>
+			<li>[link:https://github.com/gkjohnson/urdf-loaders/tree/master/javascript urdf-loader]</li>
+			<li>[link:https://github.com/NASA-AMMOS/3DTilesRendererJS 3d-tiles-renderer-js]</li>
+			<li>[link:https://github.com/kaisalmen/WWOBJLoader WebWorker OBJLoader]</li>
+			<li>[link:https://github.com/IFCjs/web-ifc-three IFC.js]</li>
+		</ul>
+
+		<h3>Геометрия</h3>
+
+		<ul>
+			<li>[link:https://github.com/spite/THREE.MeshLine THREE.MeshLine]</li>
+		</ul>
+
+		<h3>3D Текст и Расположение (3D Text and Layout)</h3>
+
+		<ul>
+			<li>[link:https://github.com/protectwise/troika/tree/master/packages/troika-three-text troika-three-text]</li>
+			<li>[link:https://github.com/felixmariotto/three-mesh-ui three-mesh-ui]</li>
+		</ul>
+
+		<h3>Системы частиц</h3>
+
+		<ul>
+			<li>[link:https://github.com/creativelifeform/three-nebula three-nebula]</li>
+		</ul>
+
+		<h3>Обратная кинематика</h3>
+
+		<ul>
+			<li>[link:https://github.com/jsantell/THREE.IK THREE.IK]</li>
+			<li>[link:https://github.com/lo-th/fullik fullik]</li>
+			<li>[link:https://github.com/gkjohnson/closed-chain-ik-js closed-chain-ik]</li>
+		</ul>
+
+		<h3>Игровой искусственный интеллект</h3>
+
+		<ul>
+			<li>[link:https://mugen87.github.io/yuka/ yuka]</li>
+			<li>[link:https://github.com/donmccurdy/three-pathfinding three-pathfinding]</li>
+		</ul>
+
+		<h3>Обертки и фреймворки</h3>
+
+		<ul>
+			<li>[link:https://aframe.io/ A-Frame]</li>
+			<li>[link:https://github.com/pmndrs/react-three-fiber react-three-fiber]</li>
+			<li>[link:https://github.com/ecsyjs/ecsy-three ECSY]</li>
+		</ul>
+
+	</body>
+</html>

+ 165 - 0
docs/manual/ru/introduction/Loading-3D-models.html

@@ -0,0 +1,165 @@
+<!DOCTYPE html>
+<html lang="ru">
+
+<head>
+	<meta charset="utf-8">
+	<base href="../../../" />
+	<script src="page.js"></script>
+	<link type="text/css" rel="stylesheet" href="page.css" />
+</head>
+
+<body>
+	<h1>Загрузка 3D-моделей ([name])</h1>
+
+	<p>
+		3D-модели доступны в сотнях форматов, каждый из которых имеет различные
+		цели, разнообразные функции и различную сложность. Хотя three.js предоставляет множество
+		<a href="https://github.com/mrdoob/three.js/tree/dev/examples/jsm/loaders" target="_blank" rel="noopener">
+		 загрузчиков</a>, выбор правильного формата и
+		рабочего процесса сэкономит время и не разочарует в дальнейшем. С некоторыми форматами
+		сложно работать, они неэффективны для работы в реальном времени или просто не
+		поддерживаются в полной мере в настоящее время.
+	</p>
+
+	<p>
+		В этом руководстве представлен рабочий процесс, рекомендуемый для большинства пользователей, и рекомендации
+		о том, что предпринять, если что-то пойдет не так, как ожидалось.
+	</p>
+
+	<h2></h2>
+
+	<p>
+		Если вы новичок в управлении локальным сервером, начните с раздела
+		[link:#manual/introduction/How-to-run-things-locally how to run things locally] (Локальная разработка).
+		Многих распространенных ошибок при просмотре 3D-моделей можно избежать, правильно разместив файлы.
+	</p>
+
+	<h2>Прежде чем начать</h2>
+
+	<p>
+		Там, где это возможно, мы рекомендуем использовать glTF (GL Transmission Format). Оба
+		<small>.GLB</small> и <small>.GLTF</small> версии формата
+		хорошо поддерживаются. Поскольку glTF ориентирован на доставку ресурсов во время выполнения, он
+		компактен для передачи и быстр для загрузки. Объекты включают в себя mesh, материалы,
+		текстуры, скины, скелеты, цели морфинга, анимацию, освещение и
+		камеры.
+	</p>
+
+	<p>
+		Файлы glTF, находящиеся в открытом доступе, доступны на таких сайтах, как
+		<a href="https://sketchfab.com/models?features=downloadable&sort_by=-likeCount&type=models" target="_blank" rel="noopener">
+		Sketchfab</a>, так же есть различные инструменты включающие экспорт glTF:
+	</p>
+
+	<ul>
+		<li><a href="https://www.blender.org/" target="_blank" rel="noopener">Blender</a> от Blender Foundation</li>
+		<li><a href="https://www.allegorithmic.com/products/substance-painter" target="_blank" rel="noopener">Substance Painter</a> от Allegorithmic</li>
+		<li><a href="https://www.foundry.com/products/modo" target="_blank" rel="noopener">Modo</a> от Foundry</li>
+		<li><a href="https://www.marmoset.co/toolbag/" target="_blank" rel="noopener">Toolbag</a> от Marmoset</li>
+		<li><a href="https://www.sidefx.com/products/houdini/" target="_blank" rel="noopener">Houdini</a> от SideFX</li>
+		<li><a href="https://labs.maxon.net/?p=3360" target="_blank" rel="noopener">Cinema 4D</a> от MAXON</li>
+		<li><a href="https://github.com/KhronosGroup/COLLADA2GLTF" target="_blank" rel="noopener">COLLADA2GLTF</a> от Khronos Group</li>
+		<li><a href="https://github.com/facebookincubator/FBX2glTF" target="_blank" rel="noopener">FBX2GLTF</a> от Facebook</li>
+		<li><a href="https://github.com/AnalyticalGraphicsInc/obj2gltf" target="_blank" rel="noopener">OBJ2GLTF</a> от Analytical Graphics Inc</li>
+		<li><a href="http://github.khronos.org/glTF-Project-Explorer/" target="_blank" rel="noopener">…и многое другое</a></li>
+	</ul>
+
+	<p>
+		Если предпочитаемые вами инструменты не поддерживают glTF, рассмотрите возможность запроса экспорта glTF у авторов или опубликуйте
+		<a href="https://github.com/KhronosGroup/glTF/issues/1051" target="_blank" rel="noopener">в ветке glTF roadmap</a>.
+	</p>
+
+	<p>
+		Если glTF не подходит, используйте популярные форматы, такие как FBX, OBJ или COLLADA
+		также доступны и регулярно обновляются.
+	</p>
+
+	<h2>Loading</h2>
+
+	<p>
+		Только несколько загрузчиков (например, [page:ObjectLoader]) включены по умолчанию с
+		three.js — другие должны быть добавлены в ваше приложение индивидуально.
+	</p>
+
+	<code>
+		import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
+	</code>
+
+	<p>
+		После того, как вы импортировали загрузчик, вы готовы добавить модель в свою сцену. Синтаксис отличается у
+		разных загрузчиков — при использовании другого формата ознакомьтесь с примерами и документацией для этого
+		загрузчика. Для glTF использование с глобальными скриптами было бы:
+	</p>
+
+	<code>
+		const loader = new GLTFLoader();
+
+		loader.load( 'path/to/model.glb', function ( gltf ) {
+
+			scene.add( gltf.scene );
+
+		}, undefined, function ( error ) {
+
+			console.error( error );
+
+		} );
+	</code>
+
+	<p>
+		См. [page:GLTFLoader GLTFLoader documentation] для получения более подробной информации.
+	</p>
+
+	<h2>Диагностика</h2>
+
+	<p>
+		Вы потратили часы на создание шедевра ручной работы, загружаете его на
+		веб—страницу и - о нет! 😭 Он искажен, неправильно окрашен или полностью отсутствует.
+		Начните с выполнения следующих действий по устранению неполадок:
+	</p>
+
+	<ol>
+		<li>
+			Проверьте консоль JavaScript на наличие ошибок и убедитесь, что вы использовали
+			обратный вызов `onError` при вызове `.load()` для регистрации результата.
+		</li>
+		<li>
+			Просмотрите модель в другом приложении. Для glTF, средства просмотра с помощью перетаскивания
+			доступны для
+			<a href="https://gltf-viewer.donmccurdy.com/" target="_blank" rel="noopener">three.js</a> и
+			<a href="https://sandbox.babylonjs.com/" target="_blank" rel="noopener">babylon.js</a>. Если модель
+			отображается правильно в одном или нескольких приложениях,
+			<a href="https://github.com/mrdoob/three.js/issues/new" target="_blank" rel="noopener">сообщить об ошибке в three.js</a>.
+			Если модель не может быть показана ни в одном приложении, мы настоятельно рекомендуем предоставить приложение
+			(можно в песочнице) для воспроизведения бага.
+		</li>
+		<li>
+			Попробуйте увеличить или уменьшить масштаб модели в 1000 раз. Многие модели
+			масштабируются по-разному, и большие модели могут не отображаться, если камера находится
+			внутри модели.
+		</li>
+		<li>
+			Попробуйте добавить и расположить источник света. Модель может быть скрыта в темноте.
+		</li>
+		<li>
+			Ищите неудачные запросы текстур на вкладке сеть, например
+			`"C:\\Path\To\Model\texture.jpg "`. Вместо этого используйте пути относительно вашей
+			модели, например `images/texture.jpg ` — для этого может потребоваться
+			редактирование файла модели в текстовом редакторе.
+		</li>
+	</ol>
+
+	<h2>Помощь</h2>
+
+	<p>
+		Если вы прошли шаги описанные выше для устранения неполадок, а ваша модель
+		по-прежнему не работает, правильный подход это обращение за помощью которое поможет вам
+		быстрее найти решение. Разместите вопрос на
+		<a href="https://discourse.threejs.org/" target="_blank" rel="noopener">форуме three.js</a> и, по возможности,
+		приложите свою модель (или более простую модель с той же проблемой) в любых
+		доступных вам форматах. Предоставьте достаточно информации, чтобы кто-то другой мог воспроизвести
+		проблему быстро — в идеале, живая демонстрация.
+	</p>
+
+</body>
+
+</html>

+ 177 - 0
docs/manual/ru/introduction/Useful-links.html

@@ -0,0 +1,177 @@
+<!DOCTYPE html>
+<html lang="ru">
+	<head>
+		<meta charset="utf-8">
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>Полезные ссылки ([name])</h1>
+
+		<p class="desc">
+			Ниже приведен список ссылок, которые могут оказаться полезными при изучении three.js .<br />
+			Если вы нашли что-то, что хотели бы добавить сюда, или считаете, что одна из приведенных ниже ссылок больше не
+			актуально или работает, не стесняйтесь нажать кнопку "Редактировать" в правом нижнем углу и внести некоторые изменения!<br /><br />
+
+			Отметим также, что в качестве three.js находится в стадии быстрой разработки, многие из этих ссылок будут содержать
+			устаревшую информацию - если что-то работает не так, как вы ожидаете или как следует по одной из этих ссылок,
+			проверьте консоль браузера на наличие предупреждений или ошибок. Также проверьте соответствующие страницы документов.
+		</p>
+
+		<h2>Форумы для помощи</h2>
+		<p>
+			Three.js официально использует [link:https://discourse.threejs.org/ forum] и [link: http://stackoverflow.com/tags/three.js/info StackOverflow] для просьб о помощи.
+			Если вам нужна помощь в чем-то, это то место, куда нужно обратиться. Не открывайте проблему на Github для просьб о помощи.
+		</p>
+
+		<h2>Учебники и курсы</h2>
+
+		<h3>Начало работы с three.js</h3>
+		<ul>
+			<li>
+				<a href="https://threejs.org/manual/#ru/fundamentals" target="_blank">Основы Three.js фундаментальные знания</a>
+			</li>
+			<li>
+				[link:https://codepen.io/rachsmith/post/beginning-with-3d-webgl-pt-1-the-scene Beginning with 3D WebGL] (Начиная с 3D WebGL) вместе с [link:https://codepen.io/rachsmith/ Rachel Smith].
+			</li>
+			<li>
+				[link:https://www.august.com.au/blog/animating-scenes-with-webgl-three-js/ Animating scenes with WebGL and three.js] (Анимация сцен с помощью WebGL и three.js)
+			</li>
+		</ul>
+
+		<h3>Более обширные / продвинутые статьи и курсы</h3>
+		<ul>
+			<li>
+				[link:https://threejs-journey.com/ Three Journey] Курс [link:https://bruno-simon.com/ Bruno Simon] - Учит начинающих, как использовать Three.js шаг за шагом
+			</li>
+			<li>
+				[link:https://discoverthreejs.com/ Discover three.js]
+			</li>
+			<li>
+				[link:http://blog.cjgammon.com/ Collection of tutorials] by [link:http://www.cjgammon.com/ CJ Gammon].
+			</li>
+			<li>
+				[link:https://medium.com/soffritti.pierfrancesco/glossy-spheres-in-three-js-bfd2785d4857 Glossy spheres in three.js].
+			</li>
+		 <li>
+			 [link:https://www.udacity.com/course/cs291 Interactive 3D Graphics] - a free course on Udacity that teaches the fundamentals of 3D Graphics,
+			 and uses three.js as its coding tool.
+		 </li>
+		 <li>
+			[Link:https://aerotwist.com/tutorials/ Aerotwist] tutorials by [link:https://github.com/paullewis/ Paul Lewis].
+		 </li>
+		 <li>
+			 [link:https://discourse.threejs.org/t/three-js-bookshelf/2468 Three.js Bookshelf] - Ищете больше ресурсов о three.js или компьютерную графику в целом?
+			 Ознакомьтесь с подборкой литературы, рекомендованной сообществом.
+		 </li>
+		</ul>
+
+		<h2>Новости и обновления</h2>
+		<ul>
+			<li>
+				[link:https://twitter.com/hashtag/threejs Three.js on Twitter]
+			</li>
+			<li>
+				[link:http://www.reddit.com/r/threejs/ Three.js on reddit]
+			</li>
+			<li>
+				[link:http://www.reddit.com/r/webgl/ WebGL on reddit]
+			</li>
+		</ul>
+
+		<h2>Примеры</h2>
+		<ul>
+			<li>
+				[link:https://github.com/edwinwebb/three-seed/ three-seed] - three.js стартовый проект с ES6 и Webpack
+			</li>
+			<li>
+				[link:http://stemkoski.github.io/Three.js/index.html Professor Stemkoskis Examples] - коллекция примеров удобных для начинающих,
+				построенные с использованием three.js r60.
+			</li>
+			<li>
+				[link:https://threejs.org/examples/ Official three.js examples] - эти примеры
+				поддерживаются как часть three.js репозиторий и всегда используйте последнюю версию three.js .
+			</li>
+			<li>
+				[link:https://raw.githack.com/mrdoob/three.js/dev/examples/ Official three.js dev branch examples]  -
+				То же, что и выше, за исключением того, что они используют ветвь dev three.js , и используются для проверки того, что
+				все работает как когда разрабатывается three.js .
+			</li>
+		</ul>
+
+	<h2>Инструменты</h2>
+	<ul>
+		<li>
+			[link:https://github.com/tbensky/physgl physgl.org] - Внешний интерфейс JavaScript с обертками для three.js, чтобы добавить WebGL
+			графику для студентов, изучающих физику и математику.
+		</li>
+		<li>
+			[link:https://whsjs.readme.io/ Whitestorm.js] – Модульный фреймворк three.js с физическим плагином AmmoNext.
+		</li>
+		<li>
+			[link:http://zz85.github.io/zz85-bookmarklets/threelabs.html Three.js Inspector] Инспектор Three.js
+		</li>
+		<li>
+			[link:http://idflood.github.io/ThreeNodes.js/ ThreeNodes.js].
+		</li>
+		<li>
+			[link:https://marketplace.visualstudio.com/items?itemName=slevesque.shader vscode shader] - Подсветка синтаксиса для языка шейдеров.
+			<br />
+			[link:https://marketplace.visualstudio.com/items?itemName=bierner.comment-tagged-templates vscode comment-tagged-templates] - Подсветка синтаксиса для помеченных строк шаблона с использованием комментариев к языку шейдеров, например: glsl.js.
+		</li>
+		<li>
+			[link:https://github.com/MozillaReality/WebXR-emulator-extension WebXR-emulator-extension]
+		</li>
+	</ul>
+
+	<h2>Ссылки на WebGL</h2>
+		<ul>
+			<li>
+			[link:https://www.khronos.org/files/webgl/webgl-reference-card-1_0.pdf webgl-reference-card.pdf] - Ссылка на все ключевые слова WebGL и GLSL, терминологию, синтаксис и определения.
+			</li>
+		</ul>
+
+	<h2>Старые ссылки</h2>
+	<p>
+		Эти ссылки сохранены в исторических целях - вы все еще можете найти их полезными, но имейте в виду, что
+		они могут содержать информацию, относящуюся к очень старым версиям three.js .
+	</p>
+
+	<ul>
+		<li>
+			<a href="https://www.youtube.com/watch?v=Dir4KO9RdhM" target="_blank">AlterQualia at WebGL Camp 3</a>
+		</li>
+		<li>
+			[link:http://yomotsu.github.io/threejs-examples/ Yomotsus Examples] - коллекция примеров, использующих three.js r45.
+		</li>
+		<li>
+			[link:http://fhtr.org/BasicsOfThreeJS/#1 Introduction to Three.js] by [link:http://github.com/kig/ Ilmari Heikkinen] (слайд-шоу).
+		</li>
+		<li>
+			[link:http://www.slideshare.net/yomotsu/webgl-and-threejs WebGL and Three.js] by [link:http://github.com/yomotsu Akihiro Oyamada] (слайд-шоу).
+		</li>
+		<li>
+			<a href="https://www.youtube.com/watch?v=VdQnOaolrPA" target="_blank">Trigger Rally</a>  by [link:https://github.com/jareiko jareiko] (видео).
+		</li>
+		<li>
+			[link:http://blackjk3.github.io/threefab/ ThreeFab] - редактор сцен, поддерживаемый примерно до three.js r50.
+		</li>
+		<li>
+			[link:http://bkcore.com/blog/3d/webgl-three-js-workflow-tips.html Max to Three.js workflow tips and tricks] by [link:https://github.com/BKcore BKcore]
+		</li>
+		<li>
+			[link:http://12devsofxmas.co.uk/2012/01/webgl-and-three-js/ A whirlwind look at Three.js]
+			by [link:http://github.com/nrocy Paul King]
+		</li>
+		<li>
+			[link:http://bkcore.com/blog/3d/webgl-three-js-animated-selective-glow.html Animated selective glow in Three.js]
+			by [link:https://github.com/BKcore BKcore]
+		</li>
+		<li>
+			[link:http://www.natural-science.or.jp/article/20120220155529.php Building A Physics Simulation Environment] - three.js учебное пособие на японском языке
+		</li>
+	 </ul>
+
+	</body>
+</html>

+ 35 - 0
docs/manual/ru/introduction/WebGL-compatibility-check.html

@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8">
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>Проверка совместимости с WebGL ([name])</h1>
+		<p>
+			Несмотря на то, что это становится все менее и менее серьезной проблемой, но все еще некоторые устройства или браузеры могут не поддерживать WebGL.
+			Следующий метод позволяет вам проверить, поддерживается ли он, и отобразить сообщение пользователю, если это не так.
+		</p>
+
+		<p>
+			Добавьте [link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/capabilities/WebGL.js]
+			к вашему javascript и выполните следующее, прежде чем пытаться что-либо отобразить.
+		</p>
+
+		<code>
+		if ( WebGL.isWebGLAvailable() ) {
+
+			// Инициализируйте функцию или другие инициализации здесь
+			animate();
+
+		} else {
+
+			const warning = WebGL.getWebGLErrorMessage();
+			document.getElementById( 'container' ).appendChild( warning );
+
+		}
+		</code>
+	</body>
+</html>