Sprite direkt mit Terrain verbinden

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Terror-State

Betreff: Sprite direkt mit Terrain verbinden

BeitragDo, Apr 26, 2007 8:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute!
Ich hab da ein Problem und weiss nicht so recht wie ich das lösen kann.
Ich will das ein Sprite sich den Höhen und Tiefen eines Terrains anpasst, also quasi mit ihm verschmelzt.

da n sprite aber nur 4 vertices hat ist das für mich ein widerspruch. ich dachte immer ich richte das sprite nach dem terrain aus: also nehme den anstieg zw. 2 Punkten in der umgebung des spielers.


Wer sich jetzt fragt wozu: als beispiel könne man auren nehmen die immer zu den fußen das spielers liegen und dort rotieren (was weiss ich z.B. WoW!)

Hat da jemand nen Ansatz für mich?

Dankebar für jede neue Idee!

cYa Terror-State

Edit: Hab mir gerade noch was überlegt, aber lasst erstma hören! Wink
Ob friedlich oder militant, wichtig ist der Widerstand

FreakForFreedom

BeitragDo, Apr 26, 2007 13:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm, das einzige was man da machen könnte, wär halt ein Sprite mit mehreren Vertices und die dann dem H-Wert des Terrain anpassen. (Wie du schon meintest)
Bei WoW glaube ich, lösen die das anhand von Vertex-Shadern, weil es sonst zu langsam wär. (Glaube ich!)

Aber ich glaube ich hab sowas nur bei WoW gesehen. In so ziemlich den meisten Spielen wird einfach ein Sprite unter dem Spieler gesetzt, egal wie das Terrain ist.

Edit: Mir ist gerade eine andere Möglichkeit eingefallen: Eine Textur (die wie eine Aura z.B. aussieht) direkt unter dem Spieler auf dem Terrain positionieren. Müsste doch machbar sein oder?
Mfg
F.F.F.
"Try and ERROR!"
 

Todeskop

BeitragDo, Apr 26, 2007 14:08
Antworten mit Zitat
Benutzer-Profile anzeigen
du könntest ja auch die ENTITYORDER funktion nehmen oder, warte eben beispielfunktion zaubern.....das nehmen:
Bsp:
Code: [AUSKLAPPEN]
Graphics3D 640,480,16,2
SetBuffer BackBuffer()
camera=CreateCamera()
light=CreateLight()
PositionEntity camera,0,0,-5
RotateEntity light,90,0,0

   m = CreateMesh()
EntityFX m,16+1
While Not KeyHit(1)
sino#=sino#+1
   s = CreateSurface(m)
   
   AddVertex(s,-1,Sin(sino#),-1,0.45,1)
   AddVertex(s,1,Cos(sino#),-1,0,1)
   AddVertex(s,-1,Sin(sino#),1,0.45,0.2)
   AddVertex(s,1,Cos(sino#),1,0,0.2)
   
   AddTriangle(s,0,2,1)
   AddTriangle(s,2,3,1)
   
   UpdateNormals m


   RenderWorld
   ClearSurface s
   Flip
Wend
End


sooo kurz ne inturdaktion du erstellst im mainloop 4 vertexpunkte inclusieve surface(kaum zu übersehen), nachdem renderworld durchlaufen wurde löscht du sie wieder(sonst macht er 10000000de),so und jetzt setzt du anstatt diesem sin und cos was ich da reingepanscht habe die gradige yposition des terrainy welches du mit terrainy und vertexkoordinaten
also z.B. so Code: [AUSKLAPPEN]
AddVertex(s,position!,terrainy(VERTEXX#(s,INDEX),VERTEXy#(s,INDEX),VERTEXz#(s,INDEX)),Position!)


MFG Todeskop

~edit~ hatte kein Bock die UVposition zu machen das kannste ja schön selber machen XD.
~edit2~ so die meisten rechtschreib-und grammatik-fehler gelöscht XD,
falls noch welche auffallen bitte melden.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group