Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
pepekpepek
Založen: 30. 09. 2011 Příspěvky: 7
|
Zaslal: 30. září 2011, 07:04:28 Předmět: xna neviditelne pixely |
|
|
Mám dotaz v xna vykresluju teren a v hlsl na něm provádím výpočet světla a multitexturing, a rychlost tohoto vypoctu neni moc dobra. Jde nějak v hlsl v pixel shaderu podle pohledu kamery nějak určit pro ktere pixely nema smysl toto osvětlení atd. počítat a jenom vratit nejakou barvu. Vim ze v xna by se mohla spočítat Bouding frustrum jetsli se neprotina s nějakym objektem ale toto mi na teren neprislo jako dobré řešení. Díky za odpovědi |
|
Návrat nahoru |
|
 |
micky

Založen: 28. 02. 2008 Příspěvky: 348 Bydliště: Plzeň, Praha
|
|
Návrat nahoru |
|
 |
pepekpepek
Založen: 30. 09. 2011 Příspěvky: 7
|
Zaslal: 30. září 2011, 08:56:52 Předmět: |
|
|
ja nevim ale mi se zda ze vypocty probihaji na vsech pixelech ale jenom se nevykresluji, protoze jakmile vyjedu pryc z terenu tak by mi mel narust fps na 60 ale zvetsi se jenom o 10 -20 fps a to asi z toho ze se nemusi vykreslovat ale pocitat se asi museji...
pokud to debaguju v PIX tak jsou pocitany vsechny pixely |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 30. září 2011, 09:23:33 Předmět: |
|
|
samozrejme ze sa nekreslia vsetky pixely. najpr sa prevedie cliping. a asi mas bootlenec na geometrii ak nevidis prislis velky narast. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
pepekpepek
Založen: 30. 09. 2011 Příspěvky: 7
|
Zaslal: 30. září 2011, 09:38:18 Předmět: |
|
|
co tim bootlenec myslite? Takze to znamena ze potom neviditelne pixely nebo vrcholy se (automaticky) nepocitaji ? |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 30. září 2011, 10:04:42 Předmět: |
|
|
vrcholy sa pocitaju vsetky. potom to ide do zostavenia geometrie. tam sa vykona cliping a az potom sa to posle do rasterizera a teda spusta sa pixel shader. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
pepekpepek
Založen: 30. 09. 2011 Příspěvky: 7
|
Zaslal: 30. září 2011, 10:54:22 Předmět: |
|
|
no tak jsem to znova zkusil jednou s pocitanim osvetleni textur a pak sem jenom vratil nejakou barvu a rozdil v fps byl o 14 snimku. |
|
Návrat nahoru |
|
 |
Ladis

Založen: 18. 09. 2007 Příspěvky: 1537 Bydliště: u Prahy
|
Zaslal: 30. září 2011, 13:37:29 Předmět: |
|
|
Tak ti to brzdí geometrie, ty pixely se skutečně nepočítají, když nejsou vidět (polygony se po převedení do souřadnic obrazovky oříznou; jedna z posledních grafik, která to nedělala, byl GeForce 4 MX). Ta geometrie nemusí znamenat nutně počet vertexů a polygonů, ale i způsob, jak je vykresluješ. _________________ Award-winning game developer |
|
Návrat nahoru |
|
 |
VladR
Založen: 30. 07. 2007 Příspěvky: 1322 Bydliště: Greater New York City Area
|
Zaslal: 30. září 2011, 16:48:18 Předmět: Re: xna neviditelne pixely |
|
|
pepekpepek napsal: |
v xna vykresluju teren
......
Vim ze v xna by se mohla spočítat Bouding frustrum jetsli se neprotina s nějakym objektem ale toto mi na teren neprislo jako dobré řešení. |
Tak to ti prislo nespravne.
A nezalezi tu pritom na API. Teren som renderoval v OpenGL, DirectX aj XNA a vsade ho musis nejako nasekat na chunky a renderovat len tie, ktore pretinaju View Frustum, nech karta zbytocne neprocesuje neviditelne vertexy.
Nemusis to robit jedine vtedy, ak mas kameru nastavenu tak, ze vidis vzdy cely teren.
Brute-force metody je dobre mat po ruke ako referencny bod, a vracat sa k nim, len ak ti nieco nejde ako by malo.
O akej graf.karte sa tu bavime, ake rozlisenie a kolko polygonov ma teren ? |
|
Návrat nahoru |
|
 |
pepekpepek
Založen: 30. 09. 2011 Příspěvky: 7
|
Zaslal: 30. září 2011, 17:28:08 Předmět: |
|
|
no teren jsem zkoušel na sekat na kousky, ale ještě jsem nedělal porovnání jestli protína view frustrum nějakou čast, protože jak jsem vykreslil celou plochu po částech tak se vyrazně snížil vykon a pokud by se nahdou nekdy vykreslovala cela čast tak by to bylo na nic ale je pravděpodobne že sem to nasekal nějak špatně |
|
Návrat nahoru |
|
 |
VladR
Založen: 30. 07. 2007 Příspěvky: 1322 Bydliště: Greater New York City Area
|
Zaslal: 30. září 2011, 20:08:58 Předmět: |
|
|
citace: |
vyrazne snizil vykon |
Co to znamena, ze vyrazne ? 14 framov z 1400 alebo 14 framov zo 40 ?
Na kolko chunkov si ho nasekal ? Pouzivas 1 spolocny Index Buffer ? Nevyratavas nic za behu na kazdy chunk ? Spravne by si mal len bindnut vertex buffer noveho chunku (index buffer zostane ten isty) a to je vsetko.
Kedze dokazes teren vykreslit naraz jednym volanim, tak je zjavne, ze nepotrebujes prepinat materialy/shadery pomedzi jednotlive chunky, takze fakt jedine co musis urobit je switchnut VB per chunk.
Pokles vykonu mozes ocakavat, ak to nasekas az prilis - tzn. napr. 16x16 = 256 DIP calls na viditelnu cast terenu - v taky cas je logicke, ze API overhead ta zbrzdi.
Stale si nenapisal, na akej karte to bezi a kolko tris ma teren. Mas tam zapnuty nejaky postprocessing, alebo AA ktory by ta mohol brzdit ? Mas urcite vygenerovane mipmapy na textury terenu ? |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 30. září 2011, 21:06:08 Předmět: |
|
|
Je jasný, že ho brzdí CPU.
Buď má dost rychlé GPU, nebo má nenáročný rendering vzhledem k jeho GPU, nebo má pomalý kód na CPU.
Doporučuju projet to profilerem. Předpokládám, že kompiluje se všema optimalizacema zapnutýma, jinak se nemá smysl o výkonu ani bavit. (debug kód = klidně i 10x pomalejší) _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
|