2016-08-09 58 views
0

Wie kann ich berühren Sie ein 3D-Objekt in der Szene, die mit OpenGL ES 2.0 auf Android 6.0 gezeichnet wird. Ich verwende Min3D zum Analysieren der .3DS-Datei und Laden in Android View mit OpenGL ES 2.0 und GLSurfaceView-Klasse. Ich kann das 3D-Modell laden; aber ich habe keine Ahnung, wie man jeden Teil des 3D-Objekts per Mausklick/Berührung auswählt.So berühren Sie ein 3D-Objekt mit OpenGL ES 2.0 auf Android

Für ex: Ich habe ein 3D-Modell des Autos, und ich muss berühren jeden Teil des Autos, sagen Türen; und ändere seine Farben/Texturen.

Schlagen Sie vor, wenn es viel einfacher ist, die gleiche Funktionalität zu tun.

Antwort

0

Es gibt 2 Möglichkeiten, dies zu tun.

Methode 1: Zeichnen Sie alle Objekte mit verschiedenen Farben. In unserem Fall haben wir die Objekt-ID in den RGB-Werten verwendet und das Bild in eine Textur gerendert. Dann können Sie die Pixelfarbe lesen, die der Benutzer berührt. Die Farbe des Pixels gibt Ihnen die Objekt-ID.

Methode 2: Ray Hit-Test für alle Begrenzungsrahmen von Objekten verwenden.

Methode 1 ist zuverlässiger, wenn Sie nach Genauigkeit suchen. Methode 2 ist schneller, funktioniert aber nicht in allen Fällen. Vor allem bei Objekten mit überlappenden Begrenzungsrahmen.