Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
vosa53
Člen
Avatar
vosa53:1.10.2015 17:46

Ahoj, dělám aplikaci ve WPF ve 3D. Potřeboval bych při startu aplikace vytvořit 10 000 modelů a přidat je do Model3DGroup v co nejkratším čase. Každý model má mesh s 24 vertexy, 36 indexy a 24 UV souřadnic. Jde tento kód zrychlit? Trvá mi to kolem 24 sekund, sice jsem na špatném počítači, ale i tak to je hodně. Díky :)

for (int i = 0; i < 10000; i++)
            {
                GeometryModel3D model = new GeometryModel3D(Mesh, Material);
                model.Transform = Transform;
                Group.Children.Add(model);
            }
 
Odpovědět
1.10.2015 17:46
Avatar
Odpovídá na vosa53
sadlomaslox25:1.10.2015 19:16

tak nedel 10 000 ruznych modelu se stejnou texturou a materialem ale udelej jeden geometricky slozity model. je to x nasobne rychlejsi. dal klasika jako nepouzivat backmaterial a zbytecne slozite materialy pokud je nepotrebujes.

 
Nahoru Odpovědět
1.10.2015 19:16
Avatar
vosa53
Člen
Avatar
Odpovídá na sadlomaslox25
vosa53:1.10.2015 19:58

jj, díky :) , ale tohle jsem jen chtěl otestovat kolik otáčejících se kostek zvládne WPF vykreslit bez záseků na mém PC. Rychlost vykreslovaní, ale teď zatím neřeším, zatím mi jde jen o tu rychlost přidávání modelů do Viewportu, jestli to jde zrychlit.

 
Nahoru Odpovědět
1.10.2015 19:58
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na vosa53
Petr Čech:1.10.2015 20:36

Tak teoreticky můžeš vytvořit ošklivou statickou proměnnou, kam budeš dočasně ukládat modely z několika vláken a potom ji jen nastavit jako Group.children
Netuším, jestli se to urychlí, jestli je to thread-safe, ale dozajista vím, že je to strašná prasárna :D

Nahoru Odpovědět
1.10.2015 20:36
the cake is a lie
Avatar
vosa53
Člen
Avatar
Odpovídá na Petr Čech
vosa53:2.10.2015 15:02

Díky, použít vlákna mě ani nenapadlo :D, až se k tomu dostanu, tak zkusím jestli mi to urychlí nějaká thread-safe, kolekce. Jestli jo, tak ti pak označím řešení. :)

Editováno 2.10.2015 15:03
 
Nahoru Odpovědět
2.10.2015 15:02
Avatar
Gramli
Tvůrce
Avatar
Odpovídá na vosa53
Gramli:2.10.2015 19:54

Co treba Parallel.For?
https://msdn.microsoft.com/…vs.110).aspx

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
2.10.2015 19:54
Kdo to říká ten to je...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.