Wie kann ich Skidmark Trails machen? (wie in Tron sample)

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

smr597

Betreff: Wie kann ich Skidmark Trails machen? (wie in Tron sample)

BeitragDo, Jul 31, 2008 21:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich möchte skidmarks machen in fliegen, wie Rauch Teilchen, zum Beispiel, wenn ich drücke space, erhalte ich eine skidmark. Smile

Tankbuster

BeitragDo, Jul 31, 2008 22:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Was ist ein Skidmark ? Surprised
Twitter
Download Jewel Snake!
Windows|Android
 

smr597

BeitragDo, Jul 31, 2008 22:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin nicht gut in Deutsch Sad
"Reifen-Marke" Ich denke?
 

BlackError

BeitragFr, Aug 01, 2008 11:18
Antworten mit Zitat
Benutzer-Profile anzeigen
meinst du eine Bremsspur, die entsteht, wenn ein Auto schnell und hart bremst ? Smile
Allerdings weiss ich nicht, was das mit fliegen zu tun hat ^^

Oder meinst du ne Rauchwolke (Partikel) ?

Ist eben viel Raum für Spekulationen
 

smr597

BeitragFr, Aug 01, 2008 11:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Bremsspur ja
...aber, fliegen... schnell, mit eine funktione machen, wie Rauch Partikel ..ja Laughing

oh man, mein Deutsch ist "fail" Embarassed


So, wie kann ich Bremsspur "function" machen Razz
 

Code der Verwirrung

BeitragFr, Aug 01, 2008 12:43
Antworten mit Zitat
Benutzer-Profile anzeigen
can you explain in english? perhaps we will understand ist better Wink
(my english is bad Wink )
 

Dreamora

BeitragFr, Aug 01, 2008 12:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist ein deutsches Board
englische Postings nach www.blitzbasic.com, hier werden sie entsorgt wenn sie in den Programmierboards sind.

Decals kannst du erzeugen indem du dein Partikelsystem so erweiterst, dass es einen "Projektionsmodus" hat. In dem Modus würden die partikel zur kamera orientiert solange er fliegt, sobald er am boden ist aber nicht zur kamera orientiert entsprechend der PickedNY ausgerichtet damit es auf dem "boden" liegt.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

BlackError

BeitragFr, Aug 01, 2008 13:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich glaub noch komplizierter hättest du es für ihn nichtmehr erklären können Smile
 

Dreamora

BeitragFr, Aug 01, 2008 13:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Gut hier die einfache Liste

Benötigt:
- Ein funktionierendes Single Surface Partikelsystem welches Orientierungsmodi besitzt

Vorgehen:
- Einfügen eines neuen Modus: "Projector"
- Dieser Modus wird Partikel nicht "frei bewegen" sondern direkt auf den Boden legen (LinePick) und dann nicht mehr bewegen. Höchstens via Farbveränderungen ausblenden
- Die Orientierung des Partikels (Decal dann in der Anwendung) erfolgt via PickedNY


Das ist dann simpel, ist ja nicht das Beginner Board hier, also sind die 3D Grundlagen verstanden
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

smr597

BeitragFr, Aug 01, 2008 14:19
Antworten mit Zitat
Benutzer-Profile anzeigen
aus Englisch es namens ist Vertex-Trail

und meine muttersprache ist estnisch, mein englisch ist nicht besser vie deutsch

"decals" ist nicht was ich möchte machen, ich habe eine code hier:

media:
http://www.speedyshare.com/682309614.html

code:
Code: [AUSKLAPPEN]

smooth=True

Global info1$="Tron demo"
Global info2$="Features dynamic mesh creation"
Global info3$="Use arrow keys to steer, A/Z to zoom"

Graphics3D 1024,768,32,2
SetBuffer BackBuffer()

grid_tex=CreateTexture( 32,32,8 )
;ScaleTexture grid_tex,10,10
SetBuffer TextureBuffer( grid_tex )
Color 0,0,64:Rect 0,0,32,32
Color 0,0,255:Rect 10,10,22,22
SetBuffer BackBuffer()

grid_plane=CreatePlane()
EntityTexture grid_plane,grid_tex
EntityBlend grid_plane,1
EntityAlpha grid_plane,.6
EntityFX grid_plane,1

;mirror=CreateMirror()
skid_tex=LoadTexture("skid.tga",2)

pivot=CreatePivot()

trail_mesh=CreateMesh()
trail_brush=CreateBrush()
BrushColor trail_brush,255,255,255
BrushBlend trail_brush,5
BrushFX trail_brush,1
BrushTexture trail_brush,skid_tex
trail_surf=CreateSurface( trail_mesh,trail_brush )
AddVertex trail_surf,0,2,0,0,0
AddVertex trail_surf,0,0,0,0,1
AddVertex trail_surf,0,2,0,0,0
AddVertex trail_surf,0,0,0,0,1
AddTriangle trail_surf,0,2,3
AddTriangle trail_surf,0,3,1
AddTriangle trail_surf,0,3,2
AddTriangle trail_surf,0,1,3
trail_vert=2


bike=CreateSphere()
ScaleMesh bike,.75,1,2
PositionEntity bike,0,1,0
EntityShininess bike,1
EntityColor bike,192,0,255

camera=CreateCamera()
TurnEntity camera,45,0,0
cam_d#=30

light=CreateLight()
TurnEntity light,45,45,0

add_flag=False

Global hto=0
tex# = 0

While Not KeyHit(1)

   If KeyHit(17)
      wire=Not wire
      WireFrame wire
   EndIf
   
   turn=0
   If smooth
      If KeyDown(203) turn=5:If hto<10 Then hto=hto+1
      If KeyDown(205) turn=-5 :If hto>10 Then hto=hto-1
      If turn
         add_cnt=add_cnt+1
         If add_cnt=3
            add_cnt=0
            add_flag=True
         Else
            add_flag=False
         EndIf
      Else If add_cnt
         add_cnt=0
         add_flag=True
      Else
         add_flag=False
      EndIf
   Else
      If KeyHit(203) turn=90
      If KeyHit(205) turn=-90
      If turn Then add_flag=True Else add_flag=False
   EndIf
   
   If turn
      TurnEntity bike,0,turn/10.0,0
   EndIf
   
   If KeyDown(200)
   MoveEntity bike,0,0,.9


   add_flag=True
   End If
   
   If KeyDown (57)
   If add_flag
;      AddVertex trail_surf,EntityX(bike),2,EntityZ(bike),0,0
;      AddVertex trail_surf,EntityX(bike),0,EntityZ(bike),0,1

      
   TFormVector(4,0,0,bike,0)
      v1 =  AddVertex(trail_surf,EntityX(bike,1),1,EntityZ(bike,1))
      v2 =  AddVertex(trail_surf,EntityX(bike,1)+TFormedX(),1+TFormedY(),EntityZ(bike,1)+TFormedZ())
      VertexNormal(trail_surf,v1,0,1,0)
      VertexNormal(trail_surf,v2,0,1,0)
      VertexTexCoords(trail_surf,v1,0,tex)
      VertexTexCoords(trail_surf,v2,1,tex)
      tex = tex + .25

      AddTriangle trail_surf,trail_vert,trail_vert+2,trail_vert+3
      AddTriangle trail_surf,trail_vert,trail_vert+3,trail_vert+1
      AddTriangle trail_surf,trail_vert,trail_vert+3,trail_vert+2
      AddTriangle trail_surf,trail_vert,trail_vert+1,trail_vert+3
      trail_vert=trail_vert+2

   Else
      VertexCoords    trail_surf,trail_vert,EntityX(bike,1),1,EntityZ(bike,1)
      VertexCoords    trail_surf,trail_vert+1,EntityX(bike,1)+TFormedX(),1+TFormedY(),EntityZ(bike,1)+TFormedZ()
      VertexTexCoords(trail_surf,trail_vert,0,tex)
      VertexTexCoords(trail_surf,trail_vert+1,1,tex)
      tex = tex + .05
   EndIf
   End If
   
   UpdateWorld
   
   PositionEntity camera,EntityX(bike)-5,0,EntityZ(bike)
   MoveEntity camera,0,0,-cam_d

;   PositionEntity camera,0,20,0
;   PointEntity camera,bike
   
   RenderWorld
   Flip

Wend
End


can sie hilffen mich? mein Problem ist, das wenn ich drücke "space" wieder .. es setzt die vorherige mesh
Crying or Very sad
 

Dreamora

BeitragFr, Aug 01, 2008 14:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Was du willst ist ein Trail.

Das ist relativ simpel zu machen.

Was dazu notwendig ist:

1. Die Möglichkeit Positionen zu speichern mit einer gewissen Lebensdauer (notwendig damit der Schweif nicht unendlich lange wird). Die Sortierung nach Lebensdauer ist dabei einfach da neue Positionen automatisch am Schluss der Liste sind.

2. Alle x Millisekunden speicherst du die aktuelle Position deines Objektes

3. In der Update Funktion clearst du die TrailSurface (triangle wie auch vertices) und erzeugst es neu. Jede gespeicherte Position erzeugt dabei einen "Pfosten" mit 2 Vertices (ein Pfosten ist eine Seite eines Quads) und erzeugst neue Triangles zwischen diesen Pfosten.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

smr597

BeitragFr, Aug 01, 2008 16:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist richtig Smile
Ich habe meine Trail (im Code)
Aber wie würde das update aussehen?
 

Dreamora

BeitragFr, Aug 01, 2008 16:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Prinzipiell aus

Zitat:

ClearSurface(TrailSurface)
pos.TPosition = First TPosition
oldPos.TPosition = After pos

while(oldPos <> Last TPosition)
; erzeuge ein vertex v0 an position von pos, speicher ihn nach v0 im type für die nächste Position
; erzeuge einen vertex v1 an position von pos + yverschiebung, speicher ihn nach v1 im type für die nächste Position
; erzeuge die 2 triangles zwischen pos\v0, pos\v1, oldPos\v0, oldPos\v1
oldPos = pos
pos = after pos
wend


wobei TPosition einfach der folgende Type ist

Code: [AUSKLAPPEN]
Type TPosition
  field aliveUntil%
  field x#
  field y#
  field z#
  field v0
  field v1
End Type
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group