dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

terrain'a probleemas...
Goto page 1, 2  Next
 
dev.gamez.lv Forum Index -> Programmēšana
View previous topic :: View next topic  
Author Message
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: 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
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: 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
View user's profile Send e-mail
Kamazs
Guru
Guru


Joined: 17 Jan 2003
Posts: 829
Location: The glorious ancient city of Loja

PostPosted: 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
View user's profile Send e-mail Visit poster's website
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: 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 Evil or Very Mad cerams, ka kompis liidz indago beigaam izvilks labi....
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: 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
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: 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
View user's profile Send e-mail
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: 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 Smile
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Mon Aug 20, 2007 7:49 pm    Post subject:

zinu, kaa no taada masiiva dabuut aaraa, bet taads masiivs, ko tu noraadiiji, ir 1D... Smile 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
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: 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
View user's profile Send e-mail
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: 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
View user's profile Visit poster's website
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: 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
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: 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
View user's profile Send e-mail
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: 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
View user's profile Visit poster's website
Vecais_Dumais_Laacis
Guru
Guru


Joined: 29 Jan 2004
Posts: 800

PostPosted: Tue Aug 21, 2007 8:01 am    Post subject:

Code:
char FileName[512]
vietaa labaak lieto
Code:
char *FileName


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
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: 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
View user's profile Visit poster's website
Display posts from previous:   
dev.gamez.lv Forum Index -> Programmēšana All times are GMT + 2 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group