Jump to content
php.lv forumi

Attēlu ģenerēšana


Lynx

Recommended Posts

bubu, neredzu problēmu, ja ģenerējot karti no klučiem, kuriem ir definēti krasta līnijas punkti (kurus var aptuveni noteikt pēc krāsas pārejas)

23026[/snapback]

ja katram jau buus nodefineeti parejas punkti tad kartes buus vienaadas ....

neredzu probleemu kaadeel nevar zimeet karti shopaa un tur arii vinju sagriest

vienmeer buus vienaada izmeera taili, liinijas stikosies kopaa, servera resursi tiks ietaupiiti, paliek tikai variants lai uzlaistu virsu generatoru kas uzgeneree kordinaates (kur uudens utt)

viegli erti izdevigi...

-------

Link to comment
Share on other sites

ja katram jau buus nodefineeti parejas punkti tad kartes buus vienaadas ....

 

tu pasaki man, kā var būt kartes vienādas, ja ģenerē tās bildes ar random krasta līniju? :)

 

- tik cik vajag tailus

- tik cik gribās līkumaināku krasta līniju (ģenerējot definējam punktus, un pēc tiem zīmējam)

Link to comment
Share on other sites

katrā gadījumā, var izmantot Terragen pieejas metodi

 

1.) definējam karkasu (vai ģenerējam)

2.) renderējam

 

 

Var sazīmēt i upes, i kalnus, i mežus, i ezerus, i ciematus...

ģenerējot bez karkasa, var gandrīz vienmēr dabūt `putru`.

Link to comment
Share on other sites

Vispār jautājums intereses pēc:

Nu ok teiksim tu panāc ka no mazajām bildītēm tiek dinamiski ģenerēta pasaule, tas nozīmē ka ja spēle kaut kādā mērā ir multiplayer tad šī pasaule ir jasaglabā ne?

Vai tā kaut kāda veidā ir iepriekš definēta jebšu ja spēlētājs kustās teiksim vislaik uz vienu debespusi tad tiek vislaik pieģenerēts (random principā) klāt?

Ja randoms tad vai nu jāsaglabā ir konkrētajām koordinātēm reālais attēls (mazā bildīte) vai arī kaut kādi dati par to kas uz kartes ir bijis uzģenerēts.

 

No vienas puses interesanti jo nav zināms kas galugalā sanāks no otras puses čakarīgi jo vai nevar gadīties ka vislaik ir jūra? :)

 

Mēs tagad taisam šādus tādus karšu risinājumus (kam gan nav sakara ar spēlēm) un secinājums ir tāds ka līmēt kaut ko no 100 - 1000 - 10000 - xxxxxx failiem kopā ir problemātiski.

Tai vietā ņemam palielu (pašreiz testi ar 500-800Mb lieliem failiem) jau iepriekš sazīmētu bmp un griežam laukā tikai tās koordinātes kuras mums vajag.

Kapēc bmp? Tapēc ka nekompresēts un tajā var "seekot" pa failu - proti ļoti vienkārši atrast teiksim labo apakšējo stūri.

Pagaidām gan tas tiek darīt ne caur php (bet gan mazs ieks C rakstīts pljurzulis caur CGI (iespējams uzrakstīsim php ekstensiju)), jo php nemāk īsti pareizi darboties un grib buferī ielasīt pilnīgi visu attēlu lai izgrieztu kaut kādas koordinātes.

Uz webserveris uz P300 realtaimā grieza mierīgi uz kādām 0.00x - 0.0x sec ..

 

Tākā varbūt vērts padomāt. Jo šādā gadijumā karte būs definēta (būs zināms ka tāda un tāda osta atrodas tur un tur), būs krietni smukāka - proti mākslinieks varēs sazīmēt gan jūrā gan uz sauszemes dažādus elemntus (lai gan to protams ari dinamiski var samergot).

Link to comment
Share on other sites

Par kartes ģenerēšanu nebija doma ģenerēt realtaimā, kamē spēlētāji spēlē. Viņiem vispār nebūtu pieeja pie šādas iespējas.

 

Vienkārši spēlēs īpašnieks palaistu install.php un tiktu viss izveidots, ieliktas tabulas iekš db, pēc noteiktiem parametriem, piemēram daudzums uz x-ass, y-ass saģenerēti kartes lauki un saglabāti, salikti kodētie nosaukumi katram laukam iekš db, lai nevarētu izveidot maphackus zinot kordinātes.

 

Nu jā sagriezt to visu arī varētu, bet problēma ir tāda, ka nav mākslinieka. Ar iepriekšējo kautkā pazuda kontakts pēc tam kad tikka iedots kartes zīmēšanas uzdevums :) Tapēc radās ideja radīt to visu dinamiski, lai nebūtu uz katru resetu, kas ik pa laikam tiek veidots šāda tipa spēlēs, jo tiek noskaidrots uzvarētājs, meklēt mākslinieku, kas izveido jaunu karti. Jo spēlēt ar to pašu veco nebūs interesanti.

 

Paspēlējos ar perlin noise un izskatās, ka kaut ko būtisku esmu palaidis garām, kautkādu rondomu. Funkcijas utt viss ir pārakstīts 1 pret 1 no šī koda: http://www.animeimaging.com/asp/PerlinNoise.aspx

 

Arī insertošana pa 1nam pikselim attēlā, kā redzams koda parauga apakšā. Bet ģenerējot vērtības sākumā viņas vēl ir 0.blabla 8 ziimes aiz komata. Talak pie 1.8apstajas un augstaak negenereejas.

 

Šeit kods http://paste.php.lv/2574 pieļauju, ka nav pareiza vērtību padošana funkcijai getvalue() 58-62 rinda, lai arī viss ir pēc koda parauga. Meiģināji dažādi ar rondomiem iebarot vērtības, lai viņas ģenerētos kā redzams piemēra attēlos, nekas līdzīgs nesanāca.

Link to comment
Share on other sites

Par kartes ģenerēšanu nebija doma ģenerēt realtaimā,

 

SKPOTS

 

Nu jā sagriezt to visu arī varētu, bet problēma ir tāda, ka nav mākslinieka. Ar iepriekšējo kautkā pazuda kontakts pēc tam kad tikka iedots kartes zīmēšanas uzdevums :) Tapēc radās ideja radīt to visu dinamiski,

 

ATKAL VISU NOGRAUZA SKIPS...

 

23048[/snapback]

 

Paskaties manus postus augstaak :)

Ja dari shada tipa uzdevumu tad nenaaks par ljaunu iepaziit arii grafikas vedoshanas probleemas :)

- atkartoshos ta generee to karti uz atseviskja datora - sagriez un apstraadaa bez servera un PHP - tachu nevajag lai to dara makslinieks, vienkarshi uzraksti progu kas to veic - peec tam to lielo bildi sagriez un noglabaa webaa zem atieciigaa nosaukuma dir.

Kaa jau mineeju pie pareizas organizaacijas paris kartes dienaa mieriigi :)

SQL ieraksti tikai karshu nosaukumus :)

P.S. paskaties Roze postu - nu nav labi taisiit katru tailu/fragmentu atseviskji

vel jo mazaak tos katru atseviskji genereet :(

Problemas probleemas un tikai probleemas - ieguvums praktiski NULL

Link to comment
Share on other sites

Grey_wolf jā tavs variants arī der, bet nu taisīšu tā tikai tad, ja patiešam nesanāks dabūt gatavu pilnīgi automatizētu variantu. Pēc idejas es jau varu uzģenerēt 6000 * 3000px attelu ar Perlin Noise, pēc noteiktas krāsu gammas izveidot visas krasta līnijas, etc. Un tad sagraizīt un nebūs problēmu ar to ka grūti savienot tos lauciņjus. Izpildes laiks nav no svara jo tiks ģenerēts tikai vienreiz un 6000x3000px man php uztaisa dažās sekundēs. Meiģinu vel aivien palaist Perlinu, lai darbotos kā nākas un tad jau varētu domāt par tālākiem risinājumiem.

 

 

Njā tavs pārvietošanās risinājums, Delfin, ir ļoti advancēts. Heh nestāv ne tuvu manam ifreimam kurš tiek pārlādēts pilnīgi viss kā mēs pakustamies. Ja tagad tik ļoti nespiestu termiņi es pieļauju, ka pat pārtaisītu uz tevis piedāvāto variantu, jaskatās kā būs ar laikiem un vai es ietilpšu plānos, jo ir jūtami ātrāka pārvietošanās.

Link to comment
Share on other sites

×
×
  • Create New...