8.2 KiB
Ločenice / webový model pro PHP hosting
Nahrání na web
- Zálohujte dosavadní složku
locenice. - Nahrajte celý obsah přiložené složky
locenice/do stejné složky na hostingu. - Otevřete
/locenice/nebo/locenice/index.phpa 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.