[BB3D] Linie durch 3D Raum zeichnen

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

WürmchenImTürmchen

Betreff: [BB3D] Linie durch 3D Raum zeichnen

BeitragSo, Feb 14, 2010 14:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen Very Happy

Ich will für ein Spiel ( in BB3d ) einen Laserstrahl zeichen. Mir fehlt aber komplett der Ansatz, wie ich das angehen soll.
Der Strahl soll bei der Position der Kamera beginnen und zu einem besimmten Punkt (z.B.: P(10/0/10) ) gehen.

In der Forensuche hab ich nichts gefunden, wäre dankbar für jede hilfe Very Happy

MfG WIT

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, Feb 14, 2010 14:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt dazu viele Möglichkeiten:

1.) Man rendert zwei mal hintereinander. Einmal mit und einmal ohne Wireframe. Bei dem Renderm mit Wireframe wird ein Triangle vom Anfangs- bis Endpunkt gezeichnet. Nachteil: man muß zweimal rendern und die Linie sieht sehr verpisel aus. Wie in 2D auch. Ist also sehr dünn.

2.) Man erstellt sich ein Krezmesh, welches dann als Schuss benutzt wird. Nachteil: Je nach Position und Drehrichtung wird das ''Kreuz'' erkennbar.

3.) Man erstellt ein Quad das entsprechend der Kamera berechnet wird. Nachteil: Ist nicht ganz so einfach zu berechnen.

- - -

Ansonsten wenn du die Draw3D benutzen solltest, dann kann ich dir zumindest beim Punkt 3 mit einem Befehl (DrawLine4D(Handle, x1,y1,z1, x2,y2,z2, Size, Frame)) behilflich sein.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D
 

WürmchenImTürmchen

BeitragSo, Feb 14, 2010 14:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen DAnk für die schnelle Antwort Very Happy
Die 2 Lößung reicht für meine Ansprüche gut aus Very Happy
 

WürmchenImTürmchen

BeitragMi, Feb 17, 2010 18:22
Antworten mit Zitat
Benutzer-Profile anzeigen
So, jetzt hätte ich noch eine frage:

Ich erstelle vier Vertex vor der Kamera und vier am Zielort, so weit, so gut.
Aber wie soll ich jetzt die Koordinaten berechnen wenn die Kamera auf der Y-Achse (und vllt noch auf der X-Achse) gedreht ist? Mt meinenem Code sind mir die Drehwinkel der Kamera bekannt.
Was ist für den Computer schneller?

1.) Die Camera mit Moveentity an die Positionen (der Vier Vertex am Laserstrahl auf meiner Seite) zu verschieben, jeweils mit EntityX, Y und Z ihre Lage zu ermitteln und dann wieder an ihren ursprungsort zu plazieren.
oder
2.) Die Kamera lassen wo sie ist und mit Sinus und Cosinus die Position zu berechnen.

wäre vom aufwand her ungefähr gleich.

Mfg WIT

Mr.Keks

BeitragMi, Feb 17, 2010 22:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Für solche Probleme liefert Blitz3d TFormPoint und Konsorten mit, die dir einen Punkt zwischen verschiedenen Koordinatensystemen hin- und herrechnen Smile
MrKeks.net
 

WürmchenImTürmchen

BeitragDo, Feb 18, 2010 14:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Klasse, das erleichtert die Sache natürlich enorm!

Vielen Dank Smile
 

Omenaton_2

BeitragFr, Feb 19, 2010 12:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich mache die Darstellung meiner Strahlenwaffe so :
Ich habe ein Kreuz-Mesh, daß ich in einem 3D Programm erstellt und texturiert habe. Dies wird beim Start des Spieles ein Mal eingeladen und unsichtbar abgelegt.
Passende Textur auch.

Wenn ich dann schießen will, erstelle ich eine Kopie dieses Meshs und weise ihm die Textur zu. Zu dieser Zeit hat mein Schuß keine korrekte Ausrichtung oder Größe. Ich platziere es einfach an der Waffenmündungsposition.

Dann ermittele ich die Entfernung zwischen dem Spieler-Schiff und dem Zielraumschiff mit EntityDistance und lege die Variable kurz ab.
Dann bringe ich meinen Strahl-Mesh in die richtige Größe und Form durch den FitMesh Befehl. https://www.blitzforum.de/help/FitMesh
Dazu muß ich nur die Start-Koordinaten (Mündung) und die ermittle Länge und die Breite/Höhe des Strahls angeben.
Schließlich richte ich den Strahl mit PointEntity auf das Ziel aus.

Das muß dann o alle halbe Sekunde einMal wiederholt werden, weil das Ziel sich ja auch bewegen kann.

tix

BeitragSo, März 14, 2010 10:26
Antworten mit Zitat
Benutzer-Profile anzeigen
das ja dann ein ziel such laser ^^
soll das denn so sein?

anbei ein zylinder ist aus jedem bickwinkel rund
verbraucht aber mehr rechen power

aber ich glaube ich hab mal gesehen das man an beiden enden des kreuzes einfach einen kreis anfügen kann
und so wirkt das mesh immer wie ein zylinder

edit:
mir is grad ins bewusstsein gerückt dass das n durchgezogener laser sein soll wie der phaser bei startrek
und kein laser projektil wie bei starwars Laughing
indem sinne Rolling Eyes

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group