|
-
-
- // // // //
-
-
- форматИзображенияДляБазы64 = (файл) =>
- {
- var форматы = {
- ".png": "png",
- ".jpg": "jpeg",
- ".jpeg": "jpeg",
- ".gif": "gif",
- };
-
- for (var окончание in форматы)
- {
- if (файл.toLowerCase().endsWith(окончание))
- {
- return форматы[окончание];
- }
- }
-
- return null;
- };
-
-
- // // // //
-
-
- загрузитьТекстуру = (мир, указатель, файл, откликУспех, откликПровал = null) =>
- {
- var модуль = мир.модули.модульПоУказателю(указатель);
- var содержимое = модуль.содержимое[файл];
- var представление = мир.база64ИзДвоичногоМассива(new Uint8Array(содержимое));
- var формат = форматИзображенияДляБазы64(файл);
- var адрес = `data:image/${формат};base64,${представление}`;
- мир.текстурщик.load(
- адрес,
- function(текстура) {
- текстура.flipY = false;
- откликУспех(текстура);
- },
- null,
- function(error) {
- var ошибка = "ОШИБКА ⚬ 错误 ⚬ ERROR: Не удалось загрузить текстуру ⚬ 无法加载纹理 ⚬ Could not load texture";
- console.error(ошибка, указатель, файл);
- if (откликПровал)
- {
- откликПровал();
- }
- }
- );
-
- };
-
-
- // // // //
-
-
- загрузитьПолигональнуюСетку = (мир, указатель, файл, откликУспех, откликПровал = null) =>
- {
- var м = мир.модули.модульПоУказателю(указатель);
- var адрес = `${window.location.origin}${файл}`;
- THREE.Cache.enabled = true;
- THREE.Cache.add(адрес, м.содержимое[файл]);
- мир.модельер.load(
- адрес,
- function(gltf) {
- THREE.Cache.remove(адрес);
- // Вычленяем полигональную сетку.
- // Take polygon mesh.
- var успех = false;
- gltf.scene.traverse(function(ребёнок) {
- if (!успех && ребёнок.isMesh)
- {
- откликУспех(ребёнок);
- успех = true;
- }
- });
- if (успех)
- {
- return;
- }
- var ошибка = "ОШИБКА ⚬ 错误 ⚬ ERROR: Отсутствует полигональная сетка ⚬ 不存在多边形网格 ⚬ Polygon mesh is absent";
- console.error(ошибка, указатель, файл);
- if (откликПровал)
- {
- откликПровал();
- }
- },
- null,
- function(error) {
- var ошибка = "ОШИБКА ⚬ 错误 ⚬ ERROR: Не удалось загрузить полигональную сетку ⚬ 无法加载多边形网格 ⚬ Could not load polygon mesh";
- console.error(ошибка, указатель, файл);
- if (откликПровал)
- {
- откликПровал();
- }
- }
- );
- };
|