Flashterrain render

Flashterrain render

Träd och vegetation

Den här delen var anledningen till att jag började med allt det här. Det är tack vare Den Ivanovs arbete och hans experiment. Att skapa 3d-objekt manuellt i papervision3D är lite för avancerat för mig. Jag lade till några funktioner och gjorde det möjligt att anpassa det.

Här är några exempel:

Jag använde 3d studio max för att skapa de olika bladen. Du kan justera bladet med olika inställningar som bredd, höjd och böjmodifierare (krediter till Bartek Drozdz, AS3mod är bra!). Det skulle vara coolt att skapa blad manuellt genom att rita en kontur, lägga till hörn, triangulera och ladda upp texturer under körning. Men jag måste experimentera med triangulering och uv-kartläggning först.

Reglerna för att generera till exempel träd lagras i en 2d-array så här:

_branchMap = [
[0, 0, 2, 2, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] ]

Denna trunk använder 2 nivåer av rekursiva djup. En stam och två nivåer av grenar. Varje array bestämmer i vilken led en ny gren växer medan vi itererar genom segmenten. Det lagrade värdet är hur många nya grenar det kommer att finnas på den leden. Längden på varje array återspeglar hur många segment det kommer att finnas på den nivån. Hoppsan, jag rycktes med av tråkiga detaljer… Jag är inte ens nöjd med den här lösningen. Jag tror att jag måste använda ett helt annat tillvägagångssätt. Ett L-system kanske? Men det är många saker som jag vill först, så jag lägger det på is för nu. Ändå kan du få till många olika träd genom att justera de få tillgängliga inställningarna.

Men det finns ganska mycket forskning kring detta.

Flashterrain render JS

Träddesigner

Jag satte snabbt ihop ett helt fristående verktyg så att man kan försöka ändra de tillgängliga inställningarna. Vissa parametrar i byggprocessen har slumpmässiga värden (som grenrotation), så när du ändrar gren- och staminställningarna kommer trädet att bli olika varje gång.

Framtida förbättringar:

  • Bladeditor.
  • – Ny trädgenereringsalgoritm.
  • Olika trädegenskaper beroende på normalkartans värde vid distribution på nätet.
  • Fler typer av vegetation som gräs, buskar m.m.

Lämna ett svar

Din e-postadress kommer inte publiceras.