Pick-Ersatz

Übersicht BlitzBasic Blitz3D

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.

aMul

Sieger des Minimalist Compo 01/13

Betreff: Pick-Ersatz

BeitragSa, Jul 28, 2007 17:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Guten Abend.

Wie manch einer vielleicht weiß, programmiere ich zurzeit einen kleinen Terrain-Editor.

Ich benutze die Pick-Befehle um die Stelle zu finden, auf die die Maus zeigt um dort die Höhe des Terrains zu bearbeiten. Dabei wird das Terrain mithilfe der Vertex-Befehle in Echtzeit verändert. Das Problem hierbei ist, dass das nächste "Picken" nach einer Änderung des Meshes mit VertexCoords() bis zu einer halben Sekunde dauert. Das sorgt dafür, dass ich das Terrain nur mit extremen Ruckeln bearbeiten kann.

Und deshalb suche ich nach einer Methode Camera/LinePick() zu zu ersetzen(am besten CameraPick()).
Ich habe schon ein wenig rumprobiert, aber ich bin zu keiner Lösung gekommen.

Es ist vielleicht ganz nützlich zu wissen, dass ich die Höhendaten in einer Bank gespeichert habe. Das auslesen von bestimmten Punkten ist also kein Problem.


Ich hoffe, dass mir jemand helfen kann. Meinetwegen muss es nicht unbedingt ein ganzer Code sein. Ein paar Tipps/Vorschläge sind auch willkommen Smile
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver

Mr.Keks

BeitragSa, Jul 28, 2007 18:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Im blitzbasic.com-Codearchiv finden sich Routinen zum Pickersatz. Allerdings bin ich überzeugt, dass dein Hauptproblem hier nicht das Pick ist, sondern der Flaschenhals vielmehr bei deiner Routine zum Terrainupdaten liegt. Aktualisierst du möglicherweise das _ganze_ Meshterrain?
MrKeks.net

aMul

Sieger des Minimalist Compo 01/13

BeitragSa, Jul 28, 2007 18:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, daran liegts nicht. Wenn ich jeden Frame alle 16000 Vertexe zufällig verschiebe läuft es trotzdem flüssig.

Auf bb.com hätte ich echt selbst kommen sollen... Rolling Eyes
Danke für den Hinweis!
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver

Mr.Keks

BeitragSa, Jul 28, 2007 18:21
Antworten mit Zitat
Benutzer-Profile anzeigen
haste eigentlich updatenormals drin?
MrKeks.net

aMul

Sieger des Minimalist Compo 01/13

BeitragSa, Jul 28, 2007 18:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, wenn ich mit reinnehme wird es aber weder merkbar langsamer noch schneller.

Mir ist allerdings gerade aufgefallen, dass das Ruckeln nahezu verschwindet, wenn ich die einzelnen Meshes kleiner mache(=weniger Vertexe)... Dann gibts aber wieder mehr Surfaces, was auch nicht unbedingt sein muss.

Naja, ich schau jetzt erstmal auf bb.com.


EDIT:
Soooo. Ich habe gerade diesen Code(etwas weiter unten) gefunden, welcher einen Strahl auf Kollision mit einem Triangle prüft.
Damit klappts super und schnell. Bei Terrains mit mehr als 50000 Triangles dauert es unter Umständen etwas länger, aber das lässt sich noch optimieren, außerdem ist es auch so immer noch schneller als Camera/LinePick().

Nochmal danke, Mr.Keks, für den Hinweis auf bb.com.

Achja, wenn jemand noch einen besseren/anderen Vorschlag hat, darf er sich gerne melden(man weiß ja nie) Wink
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver
  • Zuletzt bearbeitet von aMul am Sa, Jul 28, 2007 22:26, insgesamt einmal bearbeitet

aMul

Sieger des Minimalist Compo 01/13

BeitragSa, Jul 28, 2007 22:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Aufgrund eines neuen Problems, welches imho keinen eigenen Thread verdient, maße ich mir an einen Doppelpost zu erstellen.

Ich habe, wie bereits erwähnt eine Funktion gefunden, die Linepick ersetzt.
Allerdings soll man in meinem Editor auch am Bildschirmrand - nicht nur in der Mitte - das Terrain verändern können. Dafür muss ich die Mauskoordinaten in Winkel umrechnen.
Für den Pitch-Winkel kann man einen einfachen Arcustangens benutzen:
Code: [AUSKLAPPEN]
Pitch = ATan(Float(MouseY() - 300) / 400) ; für eine Auflösung von 800x600

Beim Yaw-Winkel bin ich allerdings ratlos. Ich vermute, dass er nicht nur von MouseX() sondern auch vom Yaw-Winkel(der Camera) abhängt... aber ich habe reichlich Probleme mir das räumlich vorzustellen...

Ich würde mich freuen, wenn mir hierbei jemand helfen könnte, der sich mit Trigonometrie etwas besser auskennt als ich. Komplett andere Lösungsansätze sind natürlich auch erwünscht, solange sie funktionieren.
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver

aMul

Sieger des Minimalist Compo 01/13

BeitragDi, Jul 31, 2007 21:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich will mich weder beschweren noch betteln, aber ist hier wirklich niemand der mir helfen kann? Niemand, der schon mal ein ähnliches/das gleiche Problem hatte? Keine Idee? Niemand?

Ich bin nämlich immer noch nicht weiter...
Smile
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver

D2006

Administrator

BeitragDi, Jul 31, 2007 23:20
Antworten mit Zitat
Benutzer-Profile anzeigen
~GESCHLOSSEN~


Doppelposts sind schon unerwünscht. Triple Posts erst recht. Das hast du nun davon.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group