Wie arbeitet das B3D Terrain ? (Formeln)

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Kernle 32DLL

Betreff: Wie arbeitet das B3D Terrain ? (Formeln)

BeitragDi, Jul 15, 2008 23:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Da ich mich (schon wieder Rolling Eyes ) mit abgedrehten (oder einfach nur bescheuerten) Spielideen auseinander setze, habe ich mir die letzten Tage überlegt wie man eine frei deformierbares Meshobjekt erstellen könnte bzw. genauer: wie man die Deformation realisiert.

Meinen besten Ansatz habe ich im Terrain von B3D gefunden, konnte mir aber keine Formel darauf denken wie B3D das Terrain je nach Geländeveränderung "aufteilt". Soweit ich das überblicken kann "rastert" Blitz3D das Gelände immer weiter bis es den zu verändernden Punkt "gefunden" hat.

Schön zu sehen an folgendem Beispiel:

Code: [AUSKLAPPEN]
Graphics3D 800,600,32,2
SetBuffer BackBuffer()

WireFrame True

Terrain = CreateTerrain(8)

Camera = CreateCamera()
RotateEntity Camera,60,0,0
PositionEntity Camera,4,6,-0

ModifyTerrain Terrain,1,1,1

RenderWorld
Flip

WaitKey()
End


Abder was ich nicht verstehe ist was B3D bei folgendem Beispiel mit dem Terrain macht:
(Wie erkennt es das der Punkt 1,1 schon "gerastert" ist, und wie errechnet es die "neuen" koordinaten ?)

Code: [AUSKLAPPEN]
Graphics3D 800,600,32,2
SetBuffer BackBuffer()

WireFrame True

Terrain = CreateTerrain(8)

Camera = CreateCamera()
RotateEntity Camera,60,0,0
PositionEntity Camera,4,6,-0

ModifyTerrain Terrain,1,1,1
ModifyTerrain Terrain,2,1,1

RenderWorld
Flip

WaitKey()
End


Daher wollte ich mal fragen ob jemand die, oder eine vergleichbare, Formel für eine solche Deformation kennt. Es geht sich dabei üprigens um Echtzeitberechnungen, aber Formeln die auch nicht in Echtzeit ablaufen (aufgrund ihrer komplexität,etc ) sind auch OK. Ich brauche einfach nur etwas an dem ich mich orientieren und lernen kann.

So long,
Kernle
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog]
Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89
Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009
 

Dreamora

BeitragMi, Jul 16, 2008 11:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Blitz3D terrain ist ein ROAM basierendes Terrain das in Echtzeit aus Heightmap Daten Triangulationen errechnet.
Wann wie wo was unterteilt wird hängt von deinen Terrain Detail Einstellungen ab.
Mehr kannst du nicht einstellen, der ScreenError zb ist intern und kann nicht modifiziert werden. Der zb bestimmt wann etwas noch weiter unterteilt wird, wann irgendwo etwas weggelassen werden kann und so.

Zudem rastert es rein garnichts. Es erzeugt nur in Echtzeit ein Mesh, dass dann gerendert wird.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Darren

BeitragMi, Jul 16, 2008 21:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Dreamora hat Folgendes geschrieben:
Blitz3D terrain ist ein ROAM basierendes Terrain das in Echtzeit aus Heightmap Daten Triangulationen errechnet.
Wann wie wo was unterteilt wird hängt von deinen Terrain Detail Einstellungen ab.
Mehr kannst du nicht einstellen, der ScreenError zb ist intern und kann nicht modifiziert werden. Der zb bestimmt wann etwas noch weiter unterteilt wird, wann irgendwo etwas weggelassen werden kann und so.

Zudem rastert es rein garnichts. Es erzeugt nur in Echtzeit ein Mesh, dass dann gerendert wird.


Hast du seinen Post eigentlich gelesen? Er will verstehen, wie das Terrain arbeitet. Hast du ihm da jetzt geholfen? Eigentlich nur mit Fachbegriffen um dich geworfen, die nichtmal wirklich sinn machen. wie auch immer...

@Kernel:
Ich glaube bei den Samples ist eine datei dabei, die LOD.bb heißt. diese errechnet dir aus einem geladenen Mesh verschiedene Detailstufen. Vielleicht schaust du dir den Code mal an.
(für was für eine Spielidee braucht man denn sowas?)

Weiterhin würde ich sagen, dass deformation eigentlich etwas anderes ist. Vielleicht kennst du Cinema4D oder Blender(ich kenn nur die zwei) da gibt es beispielsweise Deformer, die Meshes zb um einen unsichtbaren Zylinder wickeln.

Dazu würde ich mir die Polygone eines Meshes gescheit auslesen und in eine sinnvolle struktur bringen, und diese dann zb je nach lage neu anordnen. Bei Wiki sollte es zb die parameterform für einen zylinder geben mit der es recht einfach sein sollte die koordinaten deiner polygone richtig anzupassen.
MFG Darren

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMi, Jul 16, 2008 22:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich finde das Dreamora es schon gut erklärt hat. Wenn man weiter daran interessiert ist, kann man ja immer noch nach den fachbegriffen suchen. Zum Beispiel liefert Google mit den Suchbegriff ''roam terrain'' bereits als zweites Ergebnis informative Inahalte. Ansonsten ist folgendes noch zu sagen: Mit ''Wann wie wo was unterteilt wird hängt von deinen Terrain Detail Einstellungen ab'' meint Dreamora sicherlich TerrainDetail, wobei der zweite Parameter eben angibt, wieviele Triangles maximal pro Terrain gerendert werden sollen. Wer's nicht glaubt, kann sie mit CountTriangles sich zählen lassen.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Kernle 32DLL

BeitragFr, Jul 18, 2008 14:25
Antworten mit Zitat
Benutzer-Profile anzeigen
OK, das hat mir sehr geholfen. Ich glaube ich habe jetzt die Infos nach denen ich gesucht habe Smile Danke Very Happy

So long,
Kernle
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog]
Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89
Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group