## Poznámky k implementaci ### 5 roomka - Portál který vidím skrz jiný portál se NEVYPNE, ale vidí scénu z nějakého uplně pošahaného venkovního úhlu. Protože reálně jsem od něj mega daleko, takže portálová kamera je taky daleko. ### Island level - Dolní collider jsem musel hodně zvětšit aby skrz něj hráč neproletěl během 1 physics framu - Horní jsem musel trochu potočit, jinak se hráč objevil zrcadlově?? - Zapnout/Vypnout tadyto *proporční* teleportování? V MC se člověk objeví asi uprostřed nether portálu i když je kde chce - Kdybych chtěl mesh do dveří (oblouk), možná by bylo jednodušší udělat masku než spešl mesh. Viewport je čtveratý tak jako tak. ### Semafor 3 místnosti do čtverce - Zkusil jsem vymodelovat vlastní mesh v blenderu. Moc to nefunguje, Godot je asi zmatený z toho že on má Y-up a Blender používá Z-up. V portal repu je k tomu poznámka ale nepochopil jsem to asi. - Divně se na ten mesh pak projektuje ta textura kamery?? - Možná by stálo za to udělat procedurální mesh. Nejběžnější tvar portálu bude asi obdélník - `OnScreenNotifier3D` nemůže specifikovat _která_ kamera ten objekt vidí, takže je asi k ničemu. Portály se vidí různě navzájem, s tolika kamerama ve scéně je to nepředvídatelné trochu. - **I když** možná by to šlo pofejkovat s culling vrstvama. Vzdáváme se tím rekurzivních portálů, ale kdyby portály **ne**renderovaly ostatní portály, tak by se daly vypnout v momentě kdy nejsou vidět (stonks?) - **Fejkování světel** (OmniLight) by možná šlo!!! S rendering layerama bys nastavil aby některé světla byly vidět JEN skrz portály a NE tou kamerou co má hráč na sobě. - Tohle platí hlavně u ~~free-standing~~ portálů na které jde koukat z obou stran. *Bylo by divné kdyby byl zezadu portálu ve vzduchu light source jenom proto, že na druhé straně portálu (bůh ví kde) takový source někde je* - Free-standing portál neni uplně dobrý příklad, protože by to světlo mělo házet _výseč_ ven. To ničím fajné, to jsme zpátky u raytracingu. Leda by to člověk oblbnul nějakým shadow meshem nebo něco.. hm. Velmi specifické. Ale u těch dveří jako v semaforovém levelu by to fungovalo asi v pohodě, protože kolem futer je stěna. - Spotlight..? ### Gizmos - Kreslím kubickou bezierku, která spojuje portál s exit portálem, ale nevypadá to nic moc. Je to blbě vidět a hloubka se dost ztrácí. - Možná by bylo lepší ten exit portal _highlightnout_ podobně jak je zrovna vybraný node - double line gizmo - TODO: Handly na procedurální mesh. Inspirace v godotím CollisionShape ### Procedural mesh Momentálně procedural mesh generuju helper nodem. Tohle je ideální kandidát na _gizmo handles_ podobně jak collision shape - Normály jsou pass. Mám jenom 8 vertexů, takže to bude dycky vypadat blbě. Ale portály jsou stejně vždycky unshaded. - **Zmínit v DP!** Docela dobrý sell, obhajoba rozhodnutí. - *UV coords:* Když se na portál podívám přímo zepředu (ortogonálně), tak ten indent není vubec vidět. Nejsem si jistý jestli to je k něčemu.. ten portálový mesh který jsem vzal z _simple portal sytem_ ani žádné UV coodinates nemá. Procedural mesh funguje hezky ✅ - Možná by se to hodilo kdyby měl portál "inactive" texturu... ale to se dá obejít placatým meshem narvaným před něj.. a neřešíš prohlubeň. Asi undefined behavior tady :D nechám na vývojářích - Na to kolik jsem s tím teď zabil času, tak tohle je asi nanic. Prohlubeň je extrémně důležitá featura. ![portal-uv-coordinates](assets/portal-uv-coordinates.png) - **Stíny** - shadow mesh tam můžu a nemusím plácnout (stejný jako hlavní). Další věc je že stíny by asi měly být na OFF a nebo DOUBLE_SIDED. Asi to nechám na uživateli.. to s meshem nesouvisí nutně. ### Texture portal mask Mám v plánu udělat texture masku pro tvarování protálů. S házením stínů to bude průser. V tomhle je přístup s _tvarem meshe_ lepší. Měl bych nakódit generování vícero tvarů...? :exclamation: Tohle asi nebude fungovat kvůli té prohlubni - Kdybys měl oblouk nahoře, tak nemůžeš jenom tak clipnout obdélníkový portál. Kdyby byl plochý, tak jo. Ale takhle. :question: Tohle asi řeší tenký box s **culling- off** jak měl Sebastian ve svém Unity videu. Akorát to žere trochu renderingu.. ale v porovnání s X kamerama navíc je to asi fuk.