| Zobrazit předchozí téma :: Zobrazit následující téma |
| Autor |
Zpráva |
Ladis

Založen: 18. 09. 2007 Příspěvky: 1537 Bydliště: u Prahy
|
Zaslal: 27. září 2014, 14:45:20 Předmět: |
|
|
| Myslím, že to že není Pro dohromady pro všechny platformy, je dáno i licencí toho Xamarinu, nad kterým je teď Unity postavený. |
|
| Návrat nahoru |
|
 |
Hunter

Založen: 28. 07. 2007 Příspěvky: 544
|
Zaslal: 28. září 2014, 22:32:28 Předmět: |
|
|
Ještě se zeptám, možná jako trotl (zatím jsem viděl jen pár tutorial videí z webu Unity a z těch jsem se nedozvěděl dosud vůbec nic ):
Jaký zhruba polycount můžu použít, když budu chystat model (řekněme, že 1 scéna = 1 model) pro PC, iOS a Android (definoval bych si to jako iPad 3/Nexus 7 a výš, telefony mě nezajímají)?
Žádné ultra-shadery ani hypermateriály tam určitě nebudou. Nasvícení bych při verzi Pro bral nějaké "lepší", ale klidně stačí statické předpočítané.
Jde o to, že nejdřív budu muset celý model překlopit z NURBSu do polygonů - a nejspíš toho hodně vymodelovat znovu ručně - a nerad bych to dělal dvakrát
Edit: Omlouvám se, jestli je tohle na technické dotazy špatné téma. Pokud už tu téma o Unity je, tak to prosím přesuňte tam. _________________ Sharing is caring. |
|
| Návrat nahoru |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 29. září 2014, 08:08:11 Předmět: |
|
|
Jenomže na to neni odpověď. Nejde o engine, ani o operační systém, ale spíš o výkon toho určitýho zařízení. Záleží pak taky, jaký informace budou vertexy toho modelu obsahovat a jaký s nima budeš dělat operace...ale to je v tým případě zanedbatelný, pokud nejde třeba o kostěný animace atp. Zkus pohledat jaký grafický čip má to či ono zařízení a koukni na wikipedii. Nějaký informace tam budou.
Na PC je to dneska už většinou tak, že se počet trojúhelníků neřeší, spíš to brzdí náročný pixel-shadery. Pro příklad, my teď máme klidně přes 200000 trojúhelníků na letadle a říkáme tomu low-poly. Ale na nějaký tablet by to takhle asi nešlo :-) _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
| Návrat nahoru |
|
 |
DespeRadoX

Založen: 28. 07. 2007 Příspěvky: 520
|
Zaslal: 29. září 2014, 09:48:51 Předmět: |
|
|
Keep vertex count below 200K..3M per frame when targetting PCs, depending on the target GPU
Dobre je pozriet si optimalizacne techniky, to by ti mohlo pomoct. Inac samozrejme jednoznacna odpoved nie je , ako pri PC tak pri mobilnych zariadeniach zalezi na vykone samotneho zariadenia, je len na tebe ake zvolis minimum.
http://docs.unity3d.com/Manual/OptimizingGraphicsPerformance.html _________________ http://www.touchgames.eu/
http://playito.com
TW: @Despo100
Space Merchants Online ...zruseny, pracujem na mobilnej verzii space merchantu |
|
| Návrat nahoru |
|
 |
Hunter

Založen: 28. 07. 2007 Příspěvky: 544
|
Zaslal: 29. září 2014, 10:03:42 Předmět: |
|
|
To jsem tam napsal, to si nikdo nevšiml, že je tam iPad 3 pro iOS (PowerVR SGX543MP4 ... ale nevím, k čemu mi taková informace je) a Nexus 7 (1st gen - nVidia Tegra 3) pro Android?
S telefony vůbec nepočítám.
Já samozřejmě vím, že to záleží na mnoha věcech.
Potřeboval jsem jen nějaké odrazové číslo. Vím, že PC jich běžně zvládne miliony (tam se nedostanu ani náhodou), ale žádné mobilní 3D jsem nikdy nedělal, tak nevím, jestli 10K, 50K, 100K, 500K ... je nějaké běžné číslo dnes.
200K mi jako "odraz" bude stačit, díky. _________________ Sharing is caring. |
|
| Návrat nahoru |
|
 |
Radis
Založen: 29. 03. 2014 Příspěvky: 235
|
Zaslal: 29. září 2014, 10:59:01 Předmět: |
|
|
Hunter: Na high endech (dejme tomu ten Nexus 7) bych bral jako rozumny limit 100k vertexu a 100 draw calls.
Videl jsem nejakou prednasku, kde jako limit pro vylozene moderni zarizeni (na Snapdragonu 805) uvadeli 350k vertexu + 200 draw calls.
Ale opravdu je tezke to zobecnovat. Nakonec ti stejne nezbude nic jineho, nez konkretni scenu otestovat na konkretnim zarizeni. |
|
| Návrat nahoru |
|
 |
Mnemonic

Založen: 28. 07. 2007 Příspěvky: 93
|
Zaslal: 30. září 2014, 07:14:19 Předmět: |
|
|
| Ladis napsal: |
| je dáno i licencí toho Xamarinu, nad kterým je teď Unity postavený. |
Zdroj? Myslel jsem, že si UT šudlí svůj vlastní fork Mono, což je ten důvod, proč jsou poměrně dost pozadu za vlastnostmi normálního Mono runtime. |
|
| Návrat nahoru |
|
 |
McMagic
Založen: 06. 08. 2012 Příspěvky: 615
|
Zaslal: 24. říjen 2014, 12:53:54 Předmět: |
|
|
Tak tu mám první dotaz (tedy myslím, že je první )
----------------
Jde o raycast na mouse - ukázka kódu:
| kód: |
Ray rayMouse = Camera.main.ScreenPointToRay (Input.mousePosition);
LayerMask fixLayerMaskMouse = (1 << 20);
RaycastHit hitMouse = new RaycastHit();
if(Physics.Raycast(rayMouse,out hitMouse,Mathf.Infinity,fixLayerMaskMouse) ){
some code...
}
|
Detekce,pozice myší funguje pouze pokud je target (layer 20) dole, tj. reaguje to pokud klikám myší jakoby pod sebe pokud klikám nad sebe a mám nad hlavou objekt (layer 20), tak je to bez detekce.
Řešitelné to určitě je - jen nevím aktuálně jak a rychlejší je se zeptat;)
Potřebuji zjistit 3D pozici myší X/Z ať kliknu kamkoliv nahoru či dolu - pokud tam je target (layer 20) - a jak píši funguje to pouze pokud je dole:/ _________________
http://www.mcmagic-productions.com/ |
|
| Návrat nahoru |
|
 |
McMagic
Založen: 06. 08. 2012 Příspěvky: 615
|
Zaslal: 24. říjen 2014, 12:55:48 Předmět: |
|
|
Ještě dodatek - teď mě napadlo - target je unity primitive quad - je 100% 2 face? To by možná mohlo řešit problém... I když raycast je na collider tak nevím... _________________
http://www.mcmagic-productions.com/ |
|
| Návrat nahoru |
|
 |
Radis
Založen: 29. 03. 2014 Příspěvky: 235
|
Zaslal: 24. říjen 2014, 15:52:45 Předmět: |
|
|
| McMagic: Dej tam tenky boxcollider misto meshcollideru. Nebo pouzij dva quady natocene zady k sobe. |
|
| Návrat nahoru |
|
 |
McMagic
Založen: 06. 08. 2012 Příspěvky: 615
|
Zaslal: 24. říjen 2014, 15:54:54 Předmět: |
|
|
| Radis napsal: |
| McMagic: Dej tam tenky boxcollider misto meshcollideru. Nebo pouzij dva quady natocene zady k sobe. |
jj také mě to napadlo - že jsem tam nechal mesh collider který nemá 2face - člověku to docvakne až když to píše jako dotaz Za chvilku budu zkoušet uvidím no. _________________
http://www.mcmagic-productions.com/ |
|
| Návrat nahoru |
|
 |
McMagic
Založen: 06. 08. 2012 Příspěvky: 615
|
|
| Návrat nahoru |
|
 |
McMagic
Založen: 06. 08. 2012 Příspěvky: 615
|
Zaslal: 24. listopad 2014, 10:46:53 Předmět: |
|
|
Tak mám tu další - spíše dotaz než neřešitelnost;)
Někde jsem kdysi četl, že Unity po sobě čistí paměť, dočasné třídy atd. a není třeba po sobě uklízet.
O víkendu jsem začal řešit čistění ramky, protože se mě moc nezdálo že bych tam měl tolik dat. A ano - unity po sobě něco uklidí samo, ale asi tak 20% (nebo to umí na věci které jsou stavěny tak jak byl záměr autorů enginu)
Takže jsem pomalu začal v realtime čistit data klasiky za pomocí
www.Dispose();//toto hlavně na memory leak (jako fakt blbost, ale výsledek je hodně poznat).
a Resources.UnloadUnusedAssets;
Obojí udělalo celkem pěknou čistku, ale i tak budu čistit a likvidovat dočasné data ještě ručně.
Mám ale problém s Resources.UnloadUnusedAssets - nedá se nějak nastavit dirty v realtime? Jelikož tento příkaz vezme vše i rozpočítaná data a zahodí je. Jako ano - mám tam berličky co to hlídají a nedovolí provést čistku, ale i tak bych raději měl vetší jistotu, když budou data tagnuta a nezahrnutá do čistky. Nebo si to musím hlídat vnitřní logikou.
Dva výše uvedené příkazy na správných místech (+ ruční likvidace již nepotřebných tříd) mě celkem zvedly výkon = raději po sobě čistit ručně, než to nechat na někom jiném. _________________
http://www.mcmagic-productions.com/ |
|
| Návrat nahoru |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 24. listopad 2014, 11:03:09 Předmět: |
|
|
No, tohle je jedna z věcí, díky který u mě Unity pěkně kleslo. Když totiž na nějakým rendereru uděláš třeba tohle:
object.material.SetColor(..něco);
Tak Unity potají vytvoří nový materiál. To by nebylo tak zlé, ale když ten renderer pak uvolníš, tak se ten materiál, který byl tímto renderem vytvořen, neuvolní! Tak sem to aspoň vypozoroval v Unity 3.5 Pro. Je samozřejmě dobrým zvykem, že co si vytvořím, to si taky uvolním.
Nelíbí se mi ani název property "material". Člověku to neříká, že jde defacto o novou kopii materiálu. Lepší by bylo něco jako "object.materialCopy". Podobně jsem to měl ve svým enginu.
A korektní řešení? Neznám. Ten problém jsem měl konkrétně v simulátoru provozu v tunelu, kde dálničním tunelem projíždějí auta a každý si vytvořilo svůj materiál. Znechucen jsem vždy při uvolnění auta na konci tunelu volal Resources.UnloadUnusedAssets. Případně to jde jednou za několik aut. Tvůj projekt je dost velký a pro Unity už asi netypický. Workaroundům se asi nevyhneš. _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
| Návrat nahoru |
|
 |
McMagic
Založen: 06. 08. 2012 Příspěvky: 615
|
Zaslal: 24. listopad 2014, 11:30:47 Předmět: |
|
|
Díky za ujištění
Berliček tam mám spoustu - jinak by Unity spadlo během prvních sekund. _________________
http://www.mcmagic-productions.com/ |
|
| Návrat nahoru |
|
 |
|