|
dev.gamez.lv Latvian Game Developers Community
|
View previous topic :: View next topic |
Author |
Message |
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Mon Oct 08, 2007 8:09 pm Post subject: |
|
Tas neizklausās pēc tā, ka saproti. |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Mon Oct 08, 2007 8:35 pm Post subject: |
|
vai tad tas nav tākā paraugs? pēc kā tad tas izklausās?
hmm, nu labāk es izskaidrot laikam nemācēšu... _________________ "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 Oct 08, 2007 9:08 pm Post subject: |
|
ai tas man vienalga, tagad viena problēma, bet man vnk jau galva kūp, šodien nav TĀS gribēšanas strādāt
problēma te:
kāpēc šī funkcija:
Code: |
Xp double D3D2D_Draw2DPlane(double x1, double x2, double y1, double y2)
{
VTX2D Plane[4] =
{
{x1,y1,0,0,0},
{x2,y1,0,1,0},
{x2,y2,0,1,1},
{x1,y2,0,0,1},
};
d3ddev->DrawPrimitiveUP(D3DPT_TRIANGLEFAN,2,Plane,sizeof(VTX2D));
return 0;
}
|
..strādā ok (parāda to 4stūri), bet šī funkcija:
Code: |
Xp double D3D2D_DrawHealthBar(double x1, double x2, double y1, double y2, double value)
{
DWORD CL = C1;
DWORD CF = C2;
float yy = y1+1+(((y2-1)-(y1+1))*(value/100));
_DefVertex myHB[12] =
{
{x1,y1,0,0,0},
{x2,y1,0,0,0},
{x2,y2,0,0,0},
{x2,y2,0,0,0},
{x1,y2,0,0,0},
{x1,y1,0,0,0},
//--------//
{x1+1,y1+1,0,0,0},
{x2-1,y1+1,0,0,0},
{x2-1,yy,0,0,0},
{x2-1,yy,0,0,0},
{x1+1,yy,0,0,0},
{x1+1,y1+1,0,0,0},
};
d3ddev->DrawPrimitiveUP(D3DPT_TRIANGLELIST,4,myHB,sizeof(_DefVertex));
return 0;
}
|
..tos 2 4stūrus neparāda? btw, _DefVertex ir tas pats, kas VTX2D, bet tas pašlaik nav svarīgi, kāpēc tā.. _________________ "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: Thu Oct 11, 2007 10:13 pm Post subject: |
|
nē nē ok viss "solved" - vnk es zīmēju ārpus xy robežām - no p.100,500 līdz p. 200,520 ; kas acīmredzot bija aiz 640x480 ortho projekcijas robežām... _________________ "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: Sat Oct 13, 2007 5:53 pm Post subject: |
|
hmm nu man viena vnk dīvaina problēma...
es beidzot pārvilku skinnedmesha piemēru uz savu dll, bet dabūju rotācijas problēmu - griežoties no 0* līdz 360* mans paša pagatavotais skinnedmesh apgriežas 2 apļus! kkkkkā?
domāju, ka kods nebūs vajadzīgs, bet te būs apmēram tas pats..
D3DXMATRIX matRR;
direction += 1;
if (direction > 360){direction = 0;}
D3DXMatrixRotationZ(&matRR,D3DXToRadian(direction));
d3ddev->SetTransform(D3DTS_WORLD,&matRR);
model->render(d3ddev);
nu kā redzams tur nekā tāda nav!
agrāk biju mēģinājis ar tiny.x darboties, bet tam bija galīgi nepareizas rotācijas asis, tāpēc izveidoju savu!
ehh, nevermind, pārtaisīju funkcijas tā, lai pie rendera tas matrix piekombinētos un viss tagad ok! varu kārtīgi atpūsties! _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
elvman Indago Uzvarētājs
Joined: 09 Apr 2003 Posts: 1278 Location: Kuldiga
|
Posted: Sun Oct 14, 2007 12:22 pm Post subject: |
|
Code: | direction += 1;
if (direction > 360){direction = 0;} |
Šis kods nav pareizs. Ko īsti nozīmē 360? Tas nozīmē ka objekts ir pilnīgi apgriezies, tātad to pašu, ko 0 grādi, vai ne? Ja tavs objekts jau būs pagriezts par 360 grādiem, tad tas gaidīs vēl vienu soli un, kad būs sasniedzis 361 grādu, tikai tad tas aizleks uz 0.
Pareizs kods:
Code: | direction += 1;
if (direction >= 360){direction = 0;} |
Un vēl pareizāks būtu:
Code: | direction += 1;
direction %= 360; |
jo ja sanāk objektu pagriezt par vairāk kā 1 grādu, tad direction (kāpēc atkal leņķim tu izvēlējies nosaukumu direction???) var sasniegt piemēram 367.
Quote: | dabūju rotācijas problēmu - griežoties no 0* līdz 360* mans paša pagatavotais skinnedmesh apgriežas 2 apļus! kkkkkā? |
Kods ko tu ieliki apgriezīs objektu ne tikai 2 reizes, bet tas griezīsies mūžigi. _________________ long time; /* know C */ |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Sun Oct 14, 2007 12:42 pm Post subject: |
|
Kā tas ir - mūžīgi?
Ah un man liekas, ka %= operācija snakem neies cauri. Viņš visu tur dara ar double tipa mainīgajiem, kuram nav mod operatora. Ir gan analoģiska fmod funkcija. |
|
Back to top |
|
|
elvman Indago Uzvarētājs
Joined: 09 Apr 2003 Posts: 1278 Location: Kuldiga
|
Posted: Sun Oct 14, 2007 1:33 pm Post subject: |
|
Es saprotu, ka sneikam tas direction +=1 ir ciklā. Un ar mūžīgi es domāju programmas mūžu. _________________ long time; /* know C */ |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sun Oct 14, 2007 2:22 pm Post subject: |
|
nu direction man piesējies kopš GM laikiem..
to es tikai kā piemēru teicu, jo vienkārši tajā (ne manā) kodā bija kautkāda muļķība iestrādāta, ka papildu matrica dubultojās (anim_matrix * addmatrix * addmatrix) bet es vnk paņēmu un pieliku matricu rendera funkcijā, nevis freimu apstrādes funkcijā.. _________________ "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: Sat Oct 20, 2007 2:37 pm Post subject: |
|
nu tad vēl problēma: skinning's notiek krietni lēnāk kā citās spēlēs, pat ja visās lietots software skinnings..
ap 15000 mikrosekundēm paņem framemove un render funkcijas! bet kāpēc? _________________ "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: Sat Oct 20, 2007 2:59 pm Post subject: |
|
Tāpēc, ka lēns kods. |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sat Oct 20, 2007 3:09 pm Post subject: |
|
nu bet piemēram ja es te ieliktu kodu, kāds tā paskatoties varētu pateikt, kur vaina kodā, jeb man jābīda manas PerfStart un PerfStop funkcijas attiecīgi pirms un pēc katras aizdomīgās funkcijas?
nnu man liekas, ka atradu vainu - lēnais vertexbufferis - tajā laikam ātri iekšā nerakstās..
hmm, ar dinamiskajiem vertexbufferiem ātrums tāds pats... vēl ideja - neoptimizēts xmesh's, bet ja tas nebūs vainīgs, tad es vnk nezinu..
nē, nav...
labi, uzmetu HW skinningu, viss ok!
ja kāds grib redzēt to kodu, kurš sanāca pēc skinnedmesh dxsdk samples pārveidošanas, dodiet ziņu! tur vnk acis kvadrātā būs.. bet ko padarīt, ja jau strādā _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
|
|
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
|