Files
martinfencl.eu/locenice/README_CZ.md
T
2026-10-22 01:22:01 +02:00

8.2 KiB

Ločenice / webový model pro PHP hosting

Nahrání na web

  1. Zálohujte dosavadní složku locenice.
  2. Nahrajte celý obsah přiložené složky locenice/ do stejné složky na hostingu.
  3. Otevřete /locenice/ nebo /locenice/index.php a obnovte stránku bez cache.

PHP jen vrací HTML. Pro samotný provoz nepotřebujete Node.js, npm, databázi ani sestavování aplikace. Složky blender, tools a tests na hosting nenahrávejte; jsou určené pro úpravy na počítači.

Základ index.php zůstává stejný jako dosud:

<?php
header('Content-Type: text/html; charset=utf-8');
readfile(__DIR__ . '/app.html');

Dodaný index.php navíc kontroluje existenci souboru a posílá hlavičku nosniff. Relativní cesty počítají s tím, že index.php i app.html jsou ve stejné složce. Nenahrávejte pouze PHP nebo pouze HTML. Stránka potřebuje i js, css, data, models a assets. Na běžném Apache není nutné přidávat .htaccess ani přesměrování. Server musí vydávat .js jako JavaScript, .json jako JSON a umožnit stažení .glb.

Co je kde

Soubor / složka Účel
locenice/index.php Vstup na dosavadním PHP hostingu.
locenice/app.html Struktura stránky; už bez vloženého modelu.
locenice/models/dum.glb Celý zdrojový model, včetně alternativ a textur.
locenice/data/catalog.json Možnosti standardů, názvy, barvy a výchozí volby.
locenice/data/scene.json Vazby materiálů, místnosti, kamery, kolizní obrysy a metadata.
locenice/data/site.json 27 bodů výškopisu a zvlášť souřadnice z geometrického plánu.
locenice/data/app-config.json Model, renderer, cesty a maximální hustota vykreslování.
locenice/assets/ Samostatné obrázky katalogu a referencí.
locenice/js/app.js Ovládání, pohledy, stav a pravidla konfigurátoru.
locenice/js/three-renderer.js Nový renderer nad Three.js.
locenice/js/legacy-renderer.js Lokální záloha nad původním WebGL.
locenice/js/solar.js Oddělený výpočet polohy slunce.
locenice/js/model-io.js Načtení a zápis kontejneru GLB.
locenice/css/ Vzhled aplikace.

Three.js a záložní renderer

Výchozí renderer: "auto" nejprve zkusí Three.js 0.180.0 / r180, přesně připnutou verzi z CDN jsDelivr. Model, katalog ani fotografie se na CDN neposílají. Prohlížeč odtud stahuje knihovnu, takže jde o externí síťový požadavek. Knihovna Three.js není fyzicky součástí tohoto ZIPu. Při nedostupnosti CDN nastoupí lokální renderer. Nejde tedy o úplné odstranění původního vykreslování: je zachované jako oddělená záloha. Obě cesty vyžadují WebGL 2; zablokovanou grafiku prohlížeče záloha neobejde.

V levém dolním rohu nebo v dialogu Projekt a podklady je uveden aktivní renderer. Vynucené režimy pro diagnostiku: index.php?renderer=three a index.php?renderer=legacy.

Volitelně vše z vlastního hostingu

Na počítači s Pythonem a připojením k internetu spusťte z kořene balíčku:

python tools/vendor_three.py

Skript stáhne připnuté soubory a jejich relativní závislosti z oficiálního repozitáře Three.js, včetně licence. Potom nahrajte vytvořenou složku locenice/vendor a upravený locenice/data/app-config.json. Stahovací skript se nespouští na webu a neslouží jako veřejný instalátor. Jeho síťovou část zde kvůli blokovanému připojení nebylo možné ověřit.

Model, projekt a dodané fotografie

Stavební geometrie i svažitý terén jsou převzaté z dodaného modelu ALLSTAV v2. Neproběhlo nové zaměření ani kompletní přemodelování domu z PDF. Kuchyň a obývací prostor dosavadního modelu zůstávají včetně zelených čel, desky, vinotéky, vybavení a trámů. Čtyři nově dodané obrázky jsou dostupné v dialogu pro porovnání. Obrázky nejsou zaměřené ani mezi sebou zcela shodné; jejich odlišné rámy a dispozice neřídí přesun oken. Nejde o fotorealistickou rekonstrukci, BIM, výrobní návrh kuchyně nebo dokumentaci pro stavbu.

Výškopis je dostupný jako podklad a lze zapnout jeho body nad 3D modelem. Výšková nula je 591,840 m Bpv. Grafické x/z polohy 27 bodů jsou převzaté z dosavadního modelu. Souřadnice S-JTSK z geometrického plánu jsou uložené odděleně, nepředstírají souřadnice vytyčení domu. Doklad uvádí parcelu 3480/37 o výměře 1 010 m²; dosavadní grafický obrys modelu má 987,89 m². Tento rozdíl je uvedený, nikoli skrytě odstraněný deformací modelu. Výšky upraveného terénu u domu a původní zaměření nejsou zaměnitelné.

Standardy a sdílení

Zachované volby: dveře, parapety, okapy, krytina, žaluzie, podlahy po místnostech, obklady, malba, vnitřní dveře, kuchyň, sprcha a další specifikace. Žaluzie se týkají devíti obdélníkových otvorů, nikdy trojúhelníku nebo vstupních dveří. Výchozí barvy jsou RAL 7016 / antracit / CERN 015 / tmavě šedivá.

Na webu je export samostatného HTML nahrazen odkazem s výběrem. Odkaz otevře tento web s vloženým nastavením. Obsahuje i poznámku pro dodavatele; nevkládejte do ní citlivé údaje. Nastavení je ve fragmentu URL za #; neukládá se do serverové databáze. Zachovaný je export/import JSON, TXT a export viditelného modelu GLB; PNG zachycuje 3D canvas. Soubor models/dum.glb je kompletní editovatelný zdroj. Export viditelného výběru ho nenahrazuje. Dosavadní JSON výběry lze importovat. Lokální uložení je pouze v daném prohlížeči. Změna výchozích hodnot v katalogu nepřepíše již uložený výběr; použijte tlačítko obnovy výchozích voleb.

Úpravy v Blenderu

Soubor .blend v balíčku není. Přiložený skript jej vytvoří ve vašem Blenderu:

blender --background --python blender/prepare_model.py

Výsledek: blender/dum_locenice.blend. Skript vytvoří pojmenované kolekce a skryje neaktivní varianty. Skript zde nebyl spuštěn, protože Blender není v prostředí nainstalovaný. Alternativně importujte locenice/models/dum.glb do Blenderu ručně. Neslučujte vše do jednoho objektu ani materiálu. Zachovejte vlastnosti loceniceId, interiorLayer, stdWhen, stdBlind a windowNode.

Při exportu do GLB zapněte vlastní vlastnosti / Custom Properties (extras). Exportujte všechny varianty, nikoli jen viditelné objekty; vypněte filtr Visible / Renderable / Selected objects only. Pak spusťte:

python tools/prepare_export.py upraveny_model.glb --out pripraveno

Nástroj znovu naváže čísla objektů a materiálů na stabilní ID a doplní celý katalog textur. Po záloze webu vyměňte oba soubory models/dum.glb a data/scene.json za připravené výsledky. Nástroj byl ověřen na testu s přeházeným pořadím objektů a materiálů, ne na skutečném exportu z Blenderu. Transformované objekty po novém exportu vyžadují Three.js; původní záložný renderer je pro takový model odmítne namísto chybného zobrazení. Změna dispozice navíc vyžaduje kontrolu kolizních obrysů, poloh žaluzií, podlah a připravených kamer v data/scene.json. Samotné přejmenování nebo výměna GLB tyto pravidla automaticky nepřeprojektuje.

Soukromí a provoz

Balíček obsahuje referenční obrázky a výřezy podkladů v assets. Na veřejném webu jsou přímo dostupné. Pro neveřejný projekt chraňte celou složku, nikoli pouze index.php. Meta noindex není zabezpečení. Aplikace sama nemá přihlášení ani serverové ukládání.

Ověření a omezení

Ověřena je syntaxe PHP a JavaScriptu, vracení stránky přes PHP, HTTP cesty a typy souborů, struktura GLB, katalog a jeho vazby, změny výběrů a rozložení rozhraní na desktopu i mobilu. Testy ovládání použily simulované grafické API. Nejde o ověření skutečného 3D vykreslení. Zdejší prohlížeč blokuje WebGL i externí knihovny, proto nebyl renderer Three.js plně spuštěn. Barevné podání a výkon je potřeba zkontrolovat po nasazení v běžném prohlížeči.

Opakovatelná kontrola dat na počítači s Node.js:

node tests/data_checks.mjs

Node.js je zde pouze pro dobrovolný test, nikoli pro hosting nebo běh webu.