Отрисовка с помощью Three.js, загрузка моделей GLTF и текстур PNG | Rendering with Three.js, loading of GLTF models and PNG textures
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
1.9KB

  1. // // // //
  2. загрузитьМодельЭтогоМодуля = (мир, ресурс, откликУспех, откликПровал = null) =>
  3. {
  4. загрузитьМодель(мир, УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ, ресурс, откликУспех, откликПровал);
  5. };
  6. // // // //
  7. загрузитьМодель = (мир, модуль, ресурс, откликУспех, откликПровал = null) =>
  8. {
  9. var м = мир.модули.модульПоУказателю(модуль);
  10. var адрес = `${window.location.origin}${ресурс}`;
  11. THREE.Cache.enabled = true;
  12. THREE.Cache.add(адрес, м.содержимое[ресурс]);
  13. мир.модельер.load(
  14. адрес,
  15. function(gltf) {
  16. // Вычленяем полигональную сетку.
  17. // Take polygon mesh.
  18. var успех = false;
  19. gltf.scene.traverse(function(ребёнок) {
  20. if (!успех && ребёнок.isMesh)
  21. {
  22. откликУспех(ребёнок);
  23. успех = true;
  24. }
  25. });
  26. if (успех)
  27. {
  28. return;
  29. }
  30. var ошибка = "ОШИБКА ⚬ 错误 ⚬ ERROR: Отсутствует полигональная сетка ⚬ 不存在多边形网格 ⚬ Polygon mesh is absent";
  31. console.error(ошибка, модуль, ресурс);
  32. откликПровал();
  33. },
  34. null,
  35. function(error) {
  36. var ошибка = "ОШИБКА ⚬ 错误 ⚬ ERROR: Отсутствует ресурс ⚬ 资源不存在 ⚬ Resource is absent";
  37. console.error(ошибка, модуль, ресурс);
  38. откликПровал();
  39. }
  40. );
  41. };