public void LoadProject(bool newProject, RectangleAABB aabb, string headTexturePath, bool isOpenSmile) { HeadTextureId = 0; if (!string.IsNullOrEmpty(headTexturePath)) { HeadTextureId = GetTexture(headTexturePath); } if (newProject) { var modelPath = ProgramCore.Project.HeadModelPath; //ProgramCore.PluginMode pickingController.AddMehes(modelPath, MeshType.Head, false, ProgramCore.Project.GenesisType, ProgramCore.Project.ManType, true, isOpenSmile); } HeadShapeController.Initialize(headMeshesController); var baseDots = HeadController.GetBaseDots(ProgramCore.Project.ManType); headMeshesController.RenderMesh.SetBlendingInfo(baseDots[0], baseDots[1], baseDots[2], baseDots[3]); #region Сглаживание текстур SmoothedTextures.Clear(); var index = 1; for (var i = 0; i < headMeshesController.RenderMesh.Parts.Count; i++) { var part = headMeshesController.RenderMesh.Parts[i]; if (part.Texture == -1) { continue; } var oldTexture = GetTexture(part.DefaultTextureName); if (!SmoothedTextures.ContainsKey(oldTexture)) { if (part.Texture == 0 || part.IsBaseTexture) { part.IsBaseTexture = true; part.Texture = 0; } else { var path = part.DefaultTextureName;//GetTexturePath(part.Texture); var newImagePath = @"ftp://108.167.164.209/public_html/printahead.online/PrintAhead_models/" + ProgramCore.Project.ProjectName + "/Textures/"; var smoothedImagePath = newImagePath + Path.GetFileNameWithoutExtension(path) + "_smoothed" + Path.GetExtension(path); var smoothedTexture = GetTexture(smoothedImagePath); // GetTexture(smoothedImagePath); // по старому пути у нас будут храниться сглаженные текстуры (что бы сохранение модельки сильно не менять) part.Texture = oldTexture; SmoothedTextures.Add(oldTexture, smoothedTexture); // связка - айди старой-новой текстур } } else { part.Texture = oldTexture; } if (part.Texture != 0) //все кроме отсутствующих. после первых автоточек - станет фоткой { part.Texture = SmoothedTextures[part.Texture]; // переприсваиваем текстуры на сглаженные part.TextureName = GetTexturePath(part.Texture); } } ProgramCore.Project.SmoothedTextures = true; #endregion if (newProject) { if (ProgramCore.Project.ManType != ManType.Custom) { var scaleX = UpdateMeshProportions(aabb); UpdatePointsProportion(scaleX, (aabb.A.X + aabb.B.X) * 0.5f); autodotsShapeHelper.TransformRects(); autodotsShapeHelper.InitializeShaping(); var points = autodotsShapeHelper.GetBaseDots(); SpecialEyePointsUpdate(points, true); SpecialEyePointsUpdate(points, false); SpecialLipsPointsUpdate(points, ProgramCore.Project.MouthCenter); SpecialNosePointsUpdate(points); SpecialCenterUpdate(points, headController.GetNoseTopIndexes(), ProgramCore.Project.DetectedNosePoints[3].Xy); SpecialBottomPointsUpdate(points); SpecialTopHaedWidth(points); } } else { autodotsShapeHelper.TransformRects(); headMeshesController.UpdateBuffers(); } }