62 lines
4.5 KiB
Markdown
62 lines
4.5 KiB
Markdown
## 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.
|
|
|
|

|
|
|
|
- **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.
|