Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
dez1nd
Založen: 12. 03. 2012 Příspěvky: 20
|
Zaslal: 12. březen 2012, 19:15:53 Předmět: XNA 4.0 problemek |
|
|
Zdravim, pred necelim rokem jsem zacal programovat v C# a ucim se programovat v XNA 4.0 mam pripraveny maly projekt do ktereho bych chtel nahrat uroven pomoci vyskove mapy.
jelikoz nemam vykonny NTB tak jsem prepnuty v XNA do REACH profilu ale ten bohuzel nepodporuje 32bit IndexBuffer (jestli to chapu dobre)
a vyhazuje mi to tuto hlasku "XNA Framework Reach profile does not support 32 bit indices. Use IndexElementSize.SixteenBits or a type that has a size of two bytes."
snazil jsem se googlit ale beznadejne, tak prosim o radu Vas...
mohu zaslat zdrojovy kod nebo samotnou tridu..
diky moc Dez1nd
ps: omlouvam se za diakritiku mam EN klavesnici.. |
|
Návrat nahoru |
|
 |
satik
Založen: 06. 05. 2010 Příspěvky: 161 Bydliště: Krkonose
|
Zaslal: 12. březen 2012, 19:50:52 Předmět: Re: XNA 4.0 problemek |
|
|
dez1nd napsal: |
jelikoz nemam vykonny NTB tak jsem prepnuty v XNA do REACH profilu ale ten bohuzel nepodporuje 32bit IndexBuffer (jestli to chapu dobre) |
ano, chapes to dobre, viz http://msdn.microsoft.com/en-us/library/ff604995.aspx
dez1nd napsal: |
a vyhazuje mi to tuto hlasku "XNA Framework Reach profile does not support 32 bit indices. Use IndexElementSize.SixteenBits or a type that has a size of two bytes."
snazil jsem se googlit ale beznadejne, tak prosim o radu Vas... |
musis index buffer vytvaret jako 16bitovy, napr.:
citace: |
myIndexBuffer = new IndexBuffer(device, IndexElementSize.SixteenBits, indices.Length, BufferUsage.WriteOnly); |
|
|
Návrat nahoru |
|
 |
dez1nd
Založen: 12. 03. 2012 Příspěvky: 20
|
Zaslal: 12. březen 2012, 20:06:52 Předmět: Re: XNA 4.0 problemek |
|
|
musis index buffer vytvaret jako 16bitovy, napr.:
citace: |
myIndexBuffer = new IndexBuffer(device, IndexElementSize.SixteenBits, indices.Length, BufferUsage.WriteOnly); |
tak po uspesnem opraveni je tam dalsi chyba
terrainIndexBuffer = new IndexBuffer(device, IndexElementSize.SixteenBits, indices.Length, BufferUsage.WriteOnly);
a to presne tady:
terrainIndexBuffer.SetData(indices);
The array is not the correct size for the amount of data requested
 |
|
Návrat nahoru |
|
 |
satik
Založen: 06. 05. 2010 Příspěvky: 161 Bydliště: Krkonose
|
Zaslal: 12. březen 2012, 20:17:23 Předmět: Re: XNA 4.0 problemek |
|
|
dez1nd napsal: |
tak po uspesnem opraveni je tam dalsi chyba
terrainIndexBuffer = new IndexBuffer(device, IndexElementSize.SixteenBits, indices.Length, BufferUsage.WriteOnly);
a to presne tady:
terrainIndexBuffer.SetData(indices);
The array is not the correct size for the amount of data requested
 |
no, podle hlasky ti nejspis nesedi velikost indices s tim, co ocekava terrainindexbuffer v setdata, tak se koukni na to
pripadne sem hod kousky kodu... |
|
Návrat nahoru |
|
 |
Manox

Založen: 30. 07. 2007 Příspěvky: 140 Bydliště: Brno
|
Zaslal: 12. březen 2012, 20:40:53 Předmět: |
|
|
Jakého typu máš Indices ? Musí to být Int16[] |
|
Návrat nahoru |
|
 |
dez1nd
Založen: 12. 03. 2012 Příspěvky: 20
|
Zaslal: 12. březen 2012, 21:45:47 Předmět: |
|
|
Manox napsal: |
Jakého typu máš Indices ? Musí to být Int16[] |
mam to takhle=
int[] indices;
pokud to zmenim na
Int16[] indices;
vyplivne to na me
"Cannot implicity convert int to short.."
ale mam tam mnoho cyklu u kterych je stale Int32..
tak je to asi tim.. jeste to zkusim vyladit.. |
|
Návrat nahoru |
|
 |
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 12. březen 2012, 23:01:36 Předmět: |
|
|
musis zacit korektne pouzivat Int16 pokud zvladas jen 16 bitovy buffery - stejne pri pouziti Int32 dojdes na zaokrouhlovaci problemy potom |
|
Návrat nahoru |
|
 |
dez1nd
Založen: 12. 03. 2012 Příspěvky: 20
|
Zaslal: 14. březen 2012, 17:44:19 Předmět: |
|
|
rezna napsal: |
musis zacit korektne pouzivat Int16 pokud zvladas jen 16 bitovy buffery |
uz se stalo, zacal jsem je pouzivat a zatim jede vse ok, uz se mi nacitaji mapy.. |
|
Návrat nahoru |
|
 |
|