View previous topic :: View next topic |
Author |
Message |
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sun Aug 19, 2007 11:09 am Post subject: terrain'a probleemas... |
|
man bija doma uztaisiit super kruto terrainu sisteemu, viss jau ir izplaanots, tikai iejaucaas viena dumja kluuda...
terrainu klasee nodefineeju iipashu vertexu:
struct TerVtx
{
float x,y,z;
float u,v;
};
tad es izveidoju masiivu, kuraa visus vertexus glabaat:
TerVtx TerainVD[1024*1024];
un tad man ir shaada funkcija, kura paarveersh dazhus (daudzus) ciparus terraina modelii:
HRESULT CreateTerrainModelData(float hScale, float cellWdth)
{
TPAR.cellSpacing = cellWdth;
TPAR.heightScale = hScale;
int t_size = pow(2.0f,6+TerrainSizeInt);
float ZZ;
for (int XX = 0; XX < t_size; XX++)
{
for (int YY = 0; YY < t_size; YY++)
{
ZZ = terrainHeightVal[XX*t_size+YY];
TerrainVD[XX*t_size+YY] = {XX*cellWdth,YY*cellWdth,ZZ*hScale,XX/t_size,YY/t_size};
}
}
READY[1] = true;
return 0;
}
viss straadaa iznemot - kautkaa shis nepaziist to TerrainVD - raada:
'TerrainVD' : undeclared identifier
//PLZZ par koodu nepiekasiities
ko ar shito dariit? _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sun Aug 19, 2007 12:16 pm Post subject: |
|
1) lieto [code ] bbtagus, būs vieglāk kodu izlasīt.
2) Nelieto HRESULT vietā, kur vajag lietot bool tipu. HRESULT ir WinAPI tips.
3) tā kļūda, ko tu saki nozīmē to, ka tajā vietā, kur tu izmanto to TerrainVD mainīgo, tur nevar redzēt TerrainVD deklarāciju vai definīciju.
4) Un vai vispār šāda sintakse C++'ā ir atļauta? struktūras_mainīgais = {1,2,3}; ? Es tikai zinu, ka tāda sintakse ir atļauta inicializējot struktūras mainīgo. Bet nevis piešķirot tam vērtību. Reku:
Code: | struct X { int a, b; };
...
X x = { 1, 2}; // inicializācija, viss ok
X y;
y = { 3, 4}; // piesķiršana, nav ok! |
5) Šī int t_size = pow(2.0f,6+TerrainSizeInt); ir diezgan nelaba rindiņa. Ja tev vajag divnieka pakāpi no vesela skaitļa, tad to vajag darīt ar << operatoru:
Code: | int t_size = 1 << (6+TerrainSizeInt); |
|
|
Back to top |
|
|
Kamazs Guru
Joined: 17 Jan 2003 Posts: 829 Location: The glorious ancient city of Loja
|
Posted: Sun Aug 19, 2007 2:00 pm Post subject: |
|
Quote: | 'TerrainVD' : undeclared identifier |
un
Quote: | TerVtx TerainVD[1024*1024]; |
Tu pārrakstījies forumā? Ja nē, tad tā ir sintakses kļūda, jo TerrainVD != TerainVD.[/quote] _________________ ...un es uzskatu, ka Fallout ir etalons |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sun Aug 19, 2007 5:02 pm Post subject: |
|
liels paldies jums abiem, tagad kljuudu vairs nav... iznjemot vienu kljuudu kautkaadaa draiverii, kurshh juudz nost man kompi, traucee pabeigt speeli un domaat cerams, ka kompis liidz indago beigaam izvilks labi.... _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Mon Aug 20, 2007 12:36 pm Post subject: |
|
nu man atkal probleemas...
std::ifstream man dod stack overflow, un par cik terrainus var veidot arii nolasot kraasu no kaada pikselja uz tekstuuras, tad man jautaajums:
kaa var dabuut pikselja kraasu no tekstuuras?
directdraw'u arii esmu piesaistiijis kautvai tikai, lai jebkad un jebkur nomainiitu izshkirtspeeju + paarsleegtu fullscreen/windowed _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Mon Aug 20, 2007 2:32 pm Post subject: |
|
ifstream steka overflow dos tad un tikai tad, ja tu nepareizi ar to rīkosies (piemēram, ar read lasīsi vairāk baitus, nekā buferī izdalīta vieta).
tekstūra visdrīzāk tev ir 2D masīvs, kura katra masīva elements ir pikselis. Un kā elementus dabūt no 2D masīva, ceru, ka man nav tev jāstāsta - masīvs[y*elementi_rindā + x]. |
|
Back to top |
|
|
elvman Indago Uzvarētājs
Joined: 09 Apr 2003 Posts: 1278 Location: Kuldiga
|
Posted: Mon Aug 20, 2007 4:32 pm Post subject: |
|
Quote: | Un kā elementus dabūt no 2D masīva, ceru, ka man nav tev jāstāsta |
Bet vienalga pastāstiji _________________ long time; /* know C */ |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Mon Aug 20, 2007 7:49 pm Post subject: |
|
zinu, kaa no taada masiiva dabuut aaraa, bet taads masiivs, ko tu noraadiiji, ir 1D... nuu skatiishos kaa ar to bufferi ir... meeginaashu palielinaat...
BET kad atstaaju vienu pashu
std::ifstream hMapFile("track_01.raw",std::ios_base::binary);
man jau uznaaca virsuu tas stack overflow...
ahaa un man probleemas ar
d3ddev->Reset(&d3dpp);
dabuuju D3DERR_INVALIDCALL - nezinu pat kaa tas izdevaas, jo agraak viss gaaja lieliski ++
taatad "invalid call" noziimee to, ka kaads arguments (vai tas, kas aiz vinja staav) taads "nedaudz" nepareizs..
tad es uztaisiiju funkciju, kura visu d3dpp aizpilda tieshi pirms "Reset", bet tik un taa nekaa... ko lai iesaak? _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Mon Aug 20, 2007 8:23 pm Post subject: |
|
Nekā nesapratu par tavu 1D masīvu.
Par ifstream - tad tas nozīmē, ka ifstream nav pie vainas, bet pie vainas ir kautkas cits tavā stekā.
Ko lai iesāk? - debugot, debugot un vēlreiz debugot! |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Mon Aug 20, 2007 8:26 pm Post subject: |
|
es jau iesleedzu visas debuga iespeejas, kaadas projekta settingos atradu...
un, kaads "F:\SP\vctools\crt_bld\SELF_X86\crt\src\intel\chkstk.asm" - shim sakars ar manu progu? kljuudu raada tur!
un tagad ar fopen tas pats!
funkcija
[code]
int LoadHeightMap(char FileName[512], int terSize)
{
FILE* hMap = fopen(FileName,"r");
if (hMap == 0){return -1;}
TerrainSizeInt = terSize;
READY[0] = true;
return 0;
}
pat tikai tas nestraadaa kaa vajadzeetu... _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Mon Aug 20, 2007 8:41 pm Post subject: |
|
a mozh taa pirmaa servispaka vainiiga? peec taas daudzkas nestraadaa kaa vajadzeetu... _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Mon Aug 20, 2007 9:18 pm Post subject: |
|
Nevajag jau skatīties uz runtime bibliotēkas funkcijām. Vajag paskatīties dažus līmeņus funkciju izsaukumos stekā uz augšu.
Saproti, ka vaina ne vienmēr ir pašā zemākajā līmenī. Ja tu, piemēram, sabojāsi atmiņu (ar new/delete, malloc/free izsaukumiem nepareizā veidā), tad ne vienmēr kļūda uzrādās uz vainīgās rindiņas. Diezgan bieži kļūda parādās tikai vēlāk, kad kāds cits kods (piemēram tas fopen/ifstream) mēģina izdalīt/atbrīvot atmiņu un tad kautkas nesanāk, jo iepriekš viss ir sabojāts. Un vaina jau nebūs tajā citā kodā (fopen/istream), vaina ir iepriekš - tur kur atmiņa sabojājās. Un atmiņu sabojāt var ļoti daudzos veidos, ne tikai ar atmiņas menedžēšanas funkcijām.
Ar servispaku man personīgi nav bijušas itin nekādas problēmas. Darbā arī visiem (ap 7 datori) ir uzlikta servispaka - nav nekādas problēmas novērotas. |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Mon Aug 20, 2007 10:09 pm Post subject: |
|
bet nez kas vareetu but vainiigs?
nedaudz augstaak ir memcpy novietojies...
riit varbuut vareeshu padomaat nedaudz skaidraak... _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
Vecais_Dumais_Laacis Guru
Joined: 29 Jan 2004 Posts: 800
|
Posted: Tue Aug 21, 2007 8:01 am Post subject: |
|
vietaa labaak lieto
tas potenciaali tev vareeja radiit stack overflowu - jo parami funkcijaam caur stacku padodaas. var jau protams projekta propertijos stack size palielinaat un nohackot sho fignju bet labaak jau buutu lietot * _________________ ...un ja bites buutu laachi... |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Tue Aug 21, 2007 8:09 am Post subject: |
|
taa kaa shis panjeemiens (ar *) nestraadaaja, tad labaak tomeer pasaki, kaa tur nomainiit stack'a lielumu... pa to laiku projekta settingos paskatiishos arii pats.. _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
|