Kezdőoldal » Számítástechnika » Programozás » Unity 2D SpriteRenderer vagy...

Unity 2D SpriteRenderer vagy hagyományos 3D Quad elemre UV map Renderer?

Figyelt kérdés

Egy kis utánajárás után én arra a következtetésre jutottam, hogy az Unity beépített 2D megoldása nem támogatja a hagyományos értelemben vett 2D sprite atlas csak egy adott részének kirajzolását manuálisan. Vagyis úgy, hogy én manuálisan állítom be azt kódból, hogy egy kis négyzetre egy nagy textúrának mekkora méretben és melyik része kerüljön kirajzolásra, és ezt úgy értve, hogy akár valós időben is tudom állítgatni fel/le és jobbra/balra. Úgy tűnik, hogy ez csak a sima Renderer komponenssel működik UV map -al.


2D-re egy ilyet találtam:


[link]


De itt egyszerűen mintha fogna egy tömböt, és külön kis képekként kezelné a textúra atlasz részeit. A kérdés az, hogy itt most mi történik a háttérben? A GPU -nak melyik megoldás gyorsabb? Ha 2D -t szeretnék animálni kódból a beépített SpriteRenderer segítségével, vagy a hagyományos Quad -ra ráhelyezett textúra, és UV map -et használni a Renderer komponenssel? Mert csak utóbbival működne a sprite atlaszon a scroll megoldás, és nem úgy, hogy amit előre felszeletelek a sprite editorral, csak azt tudom váltogatni egy tömbből.



2022. aug. 8. 18:26
 1/2 anonim ***** válasza:

Van pár félreértés. A sprite renderer sprite objectet vár ami lehet egy atlasz része, saját forgásponttal, ennyivel különb a sprite object Unity ben - az egész atlaszt feltölti a gpu ra, ezt csak azzal tudod optimalizálni ha az atlasz méretét csökkented.

A sprite annyi infót tartalmaz, hogy adott atlaszt mekkora részét fedi le, és hol van a forgáspontja - magát a textúrát nem, az egész lényege az, hogy ne kelljen ezer textúrát tölteni a gpu ra. A szűk keresztmetszet az az idő amíg a cpu szól a gpu nak, így egyszer feltölti a textúrát, meg egyszer egy nagy tömböt az összes sprite adatával és le van tudva az egész.

Ha akarsz írhatsz saját shadert aztán azt csinálsz vele amit szeretnél, ha futásidőben akarsz textúrát darabolni valószínűleg ez a legjobb megoldás.


Ha elégedetlen vagy a sebességgel ne ezen optimalizálj, mert ezen nincs mit, hanem válts DOTS ra, több százezer spriteot ki tudsz rajzolni/animálni gond nélkül.

2022. aug. 9. 12:17
Hasznos számodra ez a válasz?
 2/2 A kérdező kommentje:

"az egész atlaszt feltölti a gpu ra, ezt csak azzal tudod optimalizálni ha az atlasz méretét csökkented."


Köszi, erre voltam kíváncsi, tehát nyugodtan használhatom, amíg nincs szükségem arra, hogy scrollozzam az atlaszt valósidőben.

2022. aug. 9. 15:32

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!