|
dev.gamez.lv Latvian Game Developers Community
|
View previous topic :: View next topic |
Author |
Message |
purkskis
Joined: 16 Sep 2010 Posts: 4
|
Posted: Fri Oct 15, 2010 11:09 pm Post subject: terrain un collisions |
|
Nesen sāku iepazīties ar 3D plašumiem..
Pārlasīju GiGas tutoriāļus, paspēlējos ar piemēriem..
Domāju kā sataisīt, lai varētu pastaigāties pa terrainu ko ielādē no bitmapa, uztaisīju kad pēc kameras pozīcijām tiek meklēts tuvākais vertekss un tad uzsetota kameras y kordināte. Sanāk tāda y lekāšana un drebināšanās (d)efekts, protams varēto to izlabot, bet laikam jau tas nav labākais variants
elvman ieteica (ja pareiz atceros-) meklēt trijstūra un uz leju vērsta nogriežņa(vektora?) sadursmju pārbaudi.
..meklēju.. neko sev saprotošu neatradu..
Varbūt kāds varētu apgaismot mani šai lietā, kā tad notiek tā sadursmju pārbaude ar terrainu un kādas formulas jāpielieto |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Sat Oct 16, 2010 6:35 am Post subject: |
|
Bilineārā interpolācija augstuma noteikšanai ir pietiekama:
Code: |
inline float lerpf( float a, float b, float s )
{
return a + ( b - a ) * s;
}
float GetHeight( float x, float y )
{
// šeit atrodam 4 augstumus (z00,z01,z10,z11), ar kuriem strādāsim - visi ir no tā četrstūra, uz kura punkts atrodas, tāpat atrodam attālumus katrā asī starp datu punktiem (fx,fy)
// un tad interpolējam...
return lerpf( lerpf( z00, z10, fx ), lerpf( z01, z11, fx ), fy );
}
|
Ja tev Z nav augstuma koordināta, maini vietām Y un Z. Pats netaisos rakstīt tādu kodu, jo tas ir manuprāt neloģiski nestrādāt ar koordinātu sistēmu tā, kā to var loģiski darīt - heightmapam (vai citos 3d līmeņu veidos - kartei) ir x/y asis un terrain'a pamatam (kopā ar visu pārējo objektu zīmēšanu) neviens netraucē tādas pašas atstāt. _________________ "There are two choices here: "looks good" and "realism"." -- Paul Nettle |
|
Back to top |
|
|
purkskis
Joined: 16 Sep 2010 Posts: 4
|
Posted: Wed Oct 20, 2010 8:22 am Post subject: |
|
nesaprotu iisti shito:
Quote: | tāpat atrodam attālumus katrā asī starp datu punktiem (fx,fy) |
Un kaa pectam pareizaak iistenot paleekshanos un to kad nevar uziet ljoti staavaa kalnaa? |
|
Back to top |
|
|
snake5 Indago dalībnieks
Joined: 27 Jun 2007 Posts: 2590
|
Posted: Wed Oct 20, 2010 8:31 am Post subject: |
|
Quote: | nesaprotu iisti shito |
fx ir tas cipars (starp 0 un 1), kuru lietojot kā interpolācijas koeficientu interpolējot starp kreisās un labās puses punktu x, iegūs argumenta x.
Formula aprēķiniem ir šāda: fx = (x-cell_left_x)/cell_width;
Ar fy ir apmēram tas pats, tikai visur jāaizstāj x ar y.
Quote: | Un kaa pectam pareizaak iistenot paleekshanos un to kad nevar uziet ljoti staavaa kalnaa? |
Visādi var. Ar fizikas dzinēju, skatīties virsmas normālvektoru konkrētos punktos... _________________ "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
|