Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Jul 19, 2025 15:03

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: So Mär 16, 2003 11:59 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mär 14, 2003 23:00
Beiträge: 24
hat jemand eventuell ein gutes tutorial (ausser das von lighthouse, da das unvollständig ist...) für color picking bzw coding?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 16, 2003 12:02 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Zum Thema "Color Picking" kenn ich zwar kein Tutorial, aber was spricht dagegen den Selectionmodus von OpenGL zum Ausfindigmachen des geklickten Objektes zu nutzen?Damit erreichst du im Prinzip genau das selbe.
Ein Tut zu diesem Thema gibts übrigens auf meiner Homepage.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 16, 2003 12:15 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mär 14, 2003 23:00
Beiträge: 24
weil ich auf delphi3d gelesen hab, dass color picking die schnellste methode sei
und namestack hat nur platz für 64 objekte bzw 128 ab gf2 glaub ich


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 16, 2003 12:19 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
chuckylein hat geschrieben:
weil ich auf delphi3d gelesen hab, dass color picking die schnellste methode sei
und namestack hat nur platz für 64 objekte bzw 128 ab gf2 glaub ich

Colorpicking ist eher langsamer, da das Zurücklesen von Pixeln aus dem Framebuffer schon immer langsam war und auch auf modernen Grafikkarten recht zeitaufwendig ist.Da ist der Selectionmodus weitaus schneller.

Und die Begrenzung des Namestacks bezieht sich nicht auf die Anzahl der Objekte die man auf den Stack legen kann, sondern auf die Zahl der getroffenen Objekte, die von OpenGL zurückgeliefert werden.

D.h. also, das du unendlich viele Objekte auf den Namestack legen kannst, aber wenn z.B. 136 Objekte unter der Maus liegen, und deine Graka nur 128 unterstützt, OpenGL dir "nur" 128 getroffene Objekte zurückliefert...Probleme wirst du damit (solange du keine superaufwendige 3D-Visualisierungssoftware schreibts) nie bekommen.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 16, 2003 12:21 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mär 14, 2003 23:00
Beiträge: 24
aha, ok das wusste ich nicht :)
danke :)
wie is denn die url von deinem tut ?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 16, 2003 12:22 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Klick einfach auf das linke Bild in meiner Sig (delphiGL), damit gelangst du auf meine Seite.Dort findest du das Tut unter "OpenGL":

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 16, 2003 12:52 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mär 14, 2003 23:00
Beiträge: 24
thx, bin das tutorial mal grad durchgegangen...
ich bekomme keinen fehler, aber es tut sich nichts wenn ich getselectbufferhit(mousex,mousey: integer) aufrufe..
ich bekomme immer den Wert -1 geliefert

woran könnt das liegen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mär 26, 2003 17:10 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Zitat:
Und die Begrenzung des Namestacks bezieht sich nicht auf die Anzahl der Objekte die man auf den Stack legen kann, sondern auf die Zahl der getroffenen Objekte, die von OpenGL zurückgeliefert werden.


So ganz stimmt das auch nicht - wie viele Objekte zurückgeliefert werden können, hängt nur von der Größe des Buffers ab, den du OpenGL übergibst.
Vielmehr stellt die Größe des Namestacks die Maximale Verschachtelungstiefe dar, die du mittels glPushName auf dem Stack ablegst.
Meist kommst du mit einem einzigen glPushName aus und führst die Selektion mittels glLoadName Kommandos aus. Mehrere glPushNames sind nur dann notwendig wenn du z.B. in folgender Objektstruktur

Auto2
>>Rad
>>>>Nabe

nur die Nabe selektierst, und dann gleichzeitig Auto2 und Rad unter den zurückgelieferten Namen haben willst (weil die Nabe ja zum Rad und das Rad zum Auto2 gehört).

Möchtest du hingegen wissen, welches von drei Autos selektiert worden ist, machst du das mit

glPushName(0)

glLoadName(Auto1)
Auto1 zeichnen
glLoadName(Auto2)
Auto2 zeichnen
glLoadName(Auto3)
Auto3 zeichnen

Wenn jetzt die drei Autos übereinanderliegen bekommst du bei einer Selektion auch alle drei Autos zurückgeliefert - das hat aber überhaupt nichts mit der Größe des Namestacks zu tun - es könnten auch zehntausend Autos sein, und sie würden dennoch nur eine Stacktiefe von eins beanspruchen!

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.010s | 15 Queries | GZIP : On ]