Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
yaqwsx
Založen: 25. 02. 2008 Příspěvky: 66
|
Zaslal: 12. duben 2011, 19:53:52 Předmět: Obnova dat ve VertexBufferu v každém snímku & výkon |
|
|
Chystám se vytvořit pro své účely malé technické demo. Při návrhu jsem však narazil na problém - v určitých chvílích bych potřeboval data ve VertexBufferu měnit s každým snímkem.
Jaký by to mělo dopad na výkon? Popř. jak se řeší situace, kdy je potřeba s každým bodem "pohnout jiným směrem", respktive tranformace geometrie se nedá popsat jednou transformační maticí?
Předem děkuji za odpověď. |
|
Návrat nahoru |
|
|
Marek
Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 12. duben 2011, 20:27:42 Předmět: |
|
|
Na výkon to může mít neblahý vliv, pokud si nedáš pozor. Když mapuješ vertex buffer (funkce *Map* nebo *Lock*), měl bys použít flag, kterej původní data zahodí, jmenuje se DISCARD, INVALIDATE, nebo tak nějak. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
|
yaqwsx
Založen: 25. 02. 2008 Příspěvky: 66
|
Zaslal: 12. duben 2011, 20:31:25 Předmět: |
|
|
Takže když dodržím určité zásady, tak v podstatě není problém? To jsi mě potěšil! Díky za rychlou odpověď. |
|
Návrat nahoru |
|
|
]semo[
Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 13. duben 2011, 07:50:15 Předmět: |
|
|
A je dobrý použít na to doublebuffering a případně to ještě plnit paralelně. _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
|
yaqwsx
Založen: 25. 02. 2008 Příspěvky: 66
|
Zaslal: 13. duben 2011, 13:12:59 Předmět: |
|
|
Paralerním plněním myslíš, že bych měl sólo vlákno na vykreslování a jakmilech bych začal kreslit, tak bych v jiném vláknu začal plnit "back buffer" vertexů? |
|
Návrat nahoru |
|
|
]semo[
Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 13. duben 2011, 13:23:30 Předmět: |
|
|
Ano, tak to myslím, prostě jen pro tu operaci plnění back vertex-bufferu mít vlastní vlákno. Tuším, že to jde, když buffer lockneš na hlavním vlákně, kde běží rendering. Plnění pak může běžet z jiného vlákna. Ale sám jsem to nedělal, jen viděl, proto kdyžtak pohledej. _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
|
yaqwsx
Založen: 25. 02. 2008 Příspěvky: 66
|
Zaslal: 13. duben 2011, 13:47:37 Předmět: |
|
|
Ok, pohledám. Díky za nasměrování. |
|
Návrat nahoru |
|
|
|