Slova s kořeny “ros” – “rast” – “rasch” starověkého ruského původu. Původní (prototypický) kořen v nich je verbální – “vyrůst”. Je možné, že původní kořen je zde “ras”, ale tato okolnost nemá vliv na střídání samohlásek v těchto kořenech: před kombinací písmen “Svatý” a dopis “SCH” hláskoval “a”a předtím “s” – “o”, bez ohledu na to, jaká písmena přijdou dál. Tedy střídání samohlásek ve slovesných kořenech „ros“ – „rast“ – „rasch“ znamená nahrazení souhlásek:
- Pokud za kořenem “vyrůst” nejsou tam žádná písmena, nebo tam je souhláska, pak to zůstane prototypické a je psáno skrz “o”: “dorÓS”, “vyrostlи́», “subÓskladem”. Navíc to nezávisí na umístění akcentu (na kořen nebo ne), viz zvýrazněná písmena.
- Pokud za stejným kořenem následuje přízvučná samohláska, přidá se „T“a místo toho u kořene “o” hláskoval “a”: «závodyтA”, “szávodyтAno”, «závodyт“Ushchiy”, “vyrůstтdosažitelný”.
- Je-li samohláska následující po kořeni nepřízvučná, pak kromě záměny “o”–“a” zásadně také “-Svatý-“ nahrazuje “SCH”a kořen se stává stresovaným: “StA“zmenšit”, “vyrAporodila”.
Gramatika
Slovo “růst” – nesklonné sloveso nedokonavého tvaru izolované konjugace (viz článek o slov “Přijít”). Skládá se z kořene “ras-“ a koncovku sloves “-ti”. Kladení důrazu a dělení na dělení slov růst. Odpovídající dokonavá slovesa “vyrůst”, “vyrůst”, “vyrůst”, “vyrůst”.
Infinitivní (původní, slovníkový) tvar “růst” konjugáty takto:
Aktivní příčestí přítomné rostoucí; minulost vyrůstání. Přítomné příčestí vyrůstání;́ minulý vyrůstání. Tvary budoucího času 3. osoby, stejně jako rozkazovací způsob, se tvoří z odpovídajícího dokonavého slovesa “vyrůst”.
Hodnota
Význam slovesa “růst” ve všech formách zůstává počáteční – zvyšuje se v nějaké kvalitě (atributu, parametru, faktoru):
- Materiál (fyzický) – velikost (velikost), množství, vzhled, vnitřní struktura: “Měli bychom vzít naši dceru k lékaři, něco je špatně.” roste»; “Platíme a platíme, ale tarify.” růst как růst – kdy to skončí?; “Co myslíš, budeme mít v naší dači?” růst hroznový?”.
- Morální, kulturní, duchovní: „Je třeba rozumně omezit samostatnost dítěte tak, aby bylo správně vyrostl morálně”. Částečné synonymum “vzdělávat”.
- Profesionální, intelektuální: “Snaž se růst ve vlastní dovednosti, a ne v napodobování“ Částečné synonymum “zlepšit”.
Poznámka k odstavci 1: pokud za slovesem následuje přídavné jméno, musí se skloňovat podle rodu, čísla a pádu podle časování slovesa. Například psát nebo říkat „Jezte lépe, růst zdravě“ bude nesprávné, protože zde se sloveso používá v rozkazovacím způsobu. To znamená, že přídavné jméno musí být vloženo do instrumentálního pádu („vyrůst zdravě“), takže nyní obě slova naznačují, že s předmětem výroku něco dělají – říkají mu, nutí ho, povzbuzují.
Vysvětlení pravidel
V dávných dobách uměl číst a psát jen málo lidí a gramotní lidé museli často psát, vnímali slova sluchem. Písaři tedy potřebovali rozlišovat nuance řeči, o kterých naši současníci nejčastěji nepřemýšlejí. Proto bylo mnoho jemných významů slov ve starém ruském jazyce označeno střídajícími se písmeny. Nejčastěji označoval typ slovesa, imperfekta nebo perfekta (“mít zpoždění” – “přijít pozdě”). Nicméně kořeny “vyrůst”/“ras” velmi bohaté, bylo z nich vyrobeno mnoho slov. Přechod ke střídání prakticky celých kořenů “ros” – “rast” – “rasch” umožnil zřetelně rozlišit sluchem i časy, nálady a odvozeniny slov s nimi.
Autor: Artur Aleksandrovich Sadov, lingvista-typolog
Povolil jsem program VBO. Přiděluji 2 vyrovnávací paměti: jeden pro síť (vertex, normální, souřadnice textury – 32 bajtů na vrchol) a jeden pro indexy (32-bit). Buffer připojuji po všech přípravných pracích a odpojuji až na konci programu, tzn. žádné přechodné vazby. Zobrazuji to pomocí glDrawElements. Řídím se pořadím glNormalPointer/glTexCoordPointer/glVertexPointer. Na domácím Randeonu HD 2600 XT byl nárůst minimálně 2x, na jiném Radeonu (asi x1300, myslím) skoro 3x. Testy na notebooku s Radeon Xpress x1150 (není vestavěné) žádné zvýšení a dokonce pokles přibližně o 0,25-0,5 FPS. Zkoušel jsem používat VBO různými způsoby, měnil pořadí dat ve vyrovnávací paměti (pořadí střídání dat různých objektů, nebo i vrcholy všech objektů nejdříve, pak normály a souřadnice textury) – žádný výsledek. Vidyukha dál 256 MB, z nichž minimálně polovina je naše vlastní, zbytek pochází ze systémové paměti. Palivové dřevo je čerstvé, Catalyst 8.3, standardní nastavení, v programu jsem násilně zakázal VSync. Geometrické údaje pro výstup nejsou větší než 15 MB, seřazené podle materiálů, takže je zde minimum přepínání. Proč tedy mám z VBO opačný efekt?
#1
22:26, 3. dubna 2008
DragonMX
Vážení.. Můžete mi vysvětlit důležitost pořadí, ve kterém jsou volány funkce ***Pointer a pořadí, ve kterém jsou data ukládána do paměti?
#2
22:46, 3. dubna 2008
Mrtvé maso
>jak záleží na pořadí, ve kterém se ***funkce ukazatele nazývají?
http://www.gamedev.ru/articles/?id=20124 (самый конец)
>pořadí ukládání dat do paměti
Ze stejných důvodů (nikdy nevíte, co dalšího nevím o principech fungování) se navíc může v některých případech hrát lépe/hůře s cachováním.
#3
23:25, 3. dubna 2008
DragonMX
No, možná by stálo za to vyprofilovat, co a kde je úzké hrdlo?
Například v případě notebooku by se dalo předpokládat, že odesílání dat po sběrnici není úzkým hrdlem, ale celá záležitost závisí na výkonu vertex procesoru.
Na svých výkonnějších protějšcích je procesor efektivnější, a proto se při odesílání dat po sběrnici stává úzkým hrdlem.
Možná.
#4
0:42, 4. dubna 2008
Zkuste nahradit 32bitový Yndex kratším 16bitovým
#5
1:45, 4. dubna 2008
Provedli přesnější měření. Zde jsou výsledky na notebooku (v milisekundách):
Frame Výstupní funkce Model s materiály Mesh
S VBO 190 (100 %) 187 (98 %) 132 (69 %) 125 (66 %)
Bez VBO 188 (100 %) 177 (94 %) 124 (66 %) 120 (64 %)
Mezera mezi výstupem a modelem je taková, protože výstupní funkce také zobrazuje informace o ladění. Bez něj se FPS zvýší z 5 na 7.
Zmíněných 120-125 ms je vynaloženo na tento kus kódu:
if FUseVBO a OgleUseVBO then begin glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, FMeshSet.FVBOI);> glPushClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT); glEnableClientState(GL_NORMAL_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glEnableClientState(GL_VERTEX_ARRAY); glNormalPointer(GL_FLOAT, 0, Ukazatel(FNormalsInd)); glTexCoordPointer(2, GL_FLOAT, 0, Ukazatel(FTexCoordsInd)); glVertexPointer(3, GL_FLOAT, 0, Ukazatel(FVertexesInd)); glDrawElements(GL_TRIANGLES, FVertexCount, GL_UNSIGNED_INT, Ukazatel(FINdexesInd)); glPopClientAttrib; end else begin glPushClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT); glEnableClientState(GL_NORMAL_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glEnableClientState(GL_VERTEX_ARRAY); glNormalPointer(GL_FLOAT, 0, FNormals); glTexCoordPointer(2, GL_FLOAT, 0, FTexCoords); glVertexPointer(3, GL_FLOAT, 0, FVertexy); glDrawElements(GL_TRIANGLES, FVertexCount, GL_UNSIGNED_INT, FINdexy); glPopClientAttrib; konec;
Jak vidíte, VBO se neospravedlňuje. Možná jsem napsal něco špatně? Právě jsem letos kontaktoval glDrawElements 🙂
Pokud ano, Bind/UnBind se zde nevyrábí, ale je tam vše správně, a pokud bez VBO, tak tam Bind není, ale u VBO se volá pouze na začátku programu a na konci se odstraňuje.
bývalý Mesiáš
Říkáš, že jsem dosáhl stropu? No, pořád bych tomu věřil, kdyby se nic nezměnilo, ale můj výkon na VBO ve skutečnosti klesá!
*vmr
Existuje 120 tisíc polygonů, nevejdou se do jedné 16bitové vyrovnávací paměti a přepnutím několika ztratím ještě více.
#6
2:04, 4. dubna 2008
DragonMX
Je zde potřeba glPushClientAttrib?
Sám jsem se této operaci snažil vyhnout.
#7
6:51, 4. dubna 2008
bývalý Mesiáš
Heh, divný. Odkud mám tento nápad, věřilo se, že se tak šetří – jako uložení/obnova stavu je rychlejší než jeho editace v jednotlivých polích. Ale děkuji, zkusím to po 8:XNUMX 🙂
#8
8:08, 4. dubna 2008
Na mém vestavěném feedu (zdá se, že něco od Intelu) to spadlo na glPushClientAttrib
#9
8:15, 4. dubna 2008
Můj názor je tento: na přenosných počítačích grafické karty používají nejrůznější optimalizace, aby šetřily elektřinu (nebo něco jiného), a proto bez deaktivace takových „mega-funkcí“ fungují pomalu.
#10
9:27, 4. dubna 2008
DragonMX
Přečetl jsem to všechno. A v jednom ze svých vláken jsem se dlouho a vytrvale ptal na důvod. Nechápu přesný důvod. Co to dává?
#11
10:52, 4. dubna 2008
Je pravděpodobné, že neexistuje žádné hardwarové VBO, ale pouze jeho emulace. Tato emulace vyžaduje trochu (!) času navíc.
V každém případě je pokles výkonu tak nepatrný, že nemůže vyvrátit obecnou zásadu: „použití VBO ve většině případů vede ke zvýšení výkonu a v jiných to neovlivňuje výsledek.“
#12
12:13, 4. dubna 2008
Na integrovaných čipsetech od ATi (nyní AMD) není hardwarová jednotka pro vertex shadery (jako Intel) – pouze pixelová.
Pouze nvidia má vestavěný geometrický blok (na všech nforce/geforce).
#13
12:37, 4. dubna 2008
bývalý Mesiáš
>Je zde potřeba glPushClientAttrib?
>Sám jsem se této operaci snažil vyhnout.
Zkoušel jsem přepínání stavu s tímto stackem a knoflíky – FPS je stejné.
Anasbonna
Vidyukha není vestavěný.
Vynikající
Megafunkce, konkrétně Power-Play, je konfigurována pro 100% výkon při napájení ze sítě, tzn. bez omezení.
Mrtvé maso
>Co to dává?
Možná nejsou provedeny některé zbytečné akce.
andriano
>Je pravděpodobné, že neexistuje žádné hardwarové VBO, ale pouze jeho emulace.
To je velmi zajímavé. Jak mohu zkontrolovat?
PS: Omlouvám se za zmačkanou odpověď, spěchám.
#14
12:37, 4. dubna 2008
DragonMX
Jen je můj výstup organizován tak, že jen zřídka musím měnit jednotlivé stavy, takže tento příkaz vůbec nepoužívám. A někde vyklouzlo, že tenhle tým byl dost pomalý.















