Fügen Sie dynamisch neue Formen hinzu

8

Ich folge diesem Tutorial, um Openl zu meiner Android-App hinzuzufügen. Ссылка . In allen Beispielen werden die Formen im MyGLRenderer-Konstruktor erstellt, aber ich möchte wissen, wie ich nach der Erstellung des Renderers dynamisch neue Formen hinzufügen kann. Wie kann das gemacht werden?

    
amanda45 30.04.2017, 20:14
quelle

2 Antworten

3

Sie erstellen eine Schnittstelle oder Klasse namens shape. Dies enthält die Daten, die zum Rendern einer 3D-Form benötigt werden (Scheitelpunkte, Indizes, Farbdaten usw.). Alternativ die VAO / VBO / Textur-IDs / andere IDs zum Rendern.

Der Vorteil der Verwendung einer Klasse besteht darin, dass Sie die Methoden initialisieren und alles in einer einzigen Klasse behalten können, während Sie sie erweitern und weitere Klassen (Cube, Pyramid usw.) erstellen können, um Ihre Objekte anzupassen.

>

Nachdem Sie die Klasse (n) erstellt haben, erstellen Sie eine neue Liste oder Karte:

%Vor%

In dieser Klasse, die Sie erstellen, können Sie auch eine Rendermethode implementieren. Dort zeichnen Sie die Objekte. Ein Vorteil bei der Verwendung einer Klasse besteht darin, dass Sie die Zeichnung in diese Klasse einfügen können. Wenn Sie in der Klasse keine bestimmte Zeichenmethode definieren, müssen Sie jedes Objekt in der Hauptrenderingmethode manuell zeichnen.

    
Zoe 14.05.2017 15:01
quelle
1

Leiten Sie Dreieck, Viereck, Kreis usw. ab. Von einer 'Form' Schnittstelle, die die draw() Methode definiert. Ссылка

Erstellen Sie dann eine Liste und schieben Sie die Formen nach Bedarf hinein und heraus. Ссылка

Schlingen Sie in Ihrer onDrawFrame(GL10 gl) -Methode über die Formliste.

%Vor%

Auch sollte wahrscheinlich die Shape-Position zur Form für die glTranslate -Aufrufe

hinzugefügt werden     
James Poag 12.05.2017 01:07
quelle