Avatar
vosa53
Člen
Avatar
vosa53:

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:

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:

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
Odpovídá na vosa53
Petr Čech (czubehead):

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 1.10.2015 20:36
Why so serious? -Joker
Avatar
vosa53
Člen
Avatar
Odpovídá na Petr Čech (czubehead)
vosa53:

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
Redaktor
Avatar
Odpovídá na vosa53
Gramli:

Co treba Parallel.For?
https://msdn.microsoft.com/…ary/dd460713(v=vs.110).aspx

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  +2 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.