4.5 KiB
4.5 KiB
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 nerenderovaly 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-standingportá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..?
- Tohle platí hlavně u
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.
- 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ů...?
❗ 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 bude ten okraj nahoře jakoby zabořený a nebude to pěkné (asi). Zvlášť v rožkách.
❓ 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.