2016-08-06 19 views
-1

Ich benutze Opengl und Eclipse, um eine Android App zu erstellen, die ply Modelle lädt und rendert. Aber wenn ich versucht Rendering zwei Dateien zusammen eine transparent ist und das andere undurchsichtige dem Ergebnis, bekam ich ziemlich anormal ..OpenGL Mehrere Modellrendering überlappen einander anstatt normal anzuzeigen

front view

, wie Sie das Haar zu sehen ist owerlapping das Gesicht und nicht nur die Anzeige

pls help ..

+0

meine erste Schätzung wäre, dass der Tiefentest nicht aktiviert ist. Bitte geben Sie auf jeden Fall weitere Informationen an, z. Code-Snippets Ihres Renderings. – karyon

+0

Ich habe tiefentiefe Test auf den Körper Alpha Blending auf die Haare .. als es erforderlich ist – NikhilSN

+0

Ich denke, Sie müssen noch Tiefe Test auf dem Haar aktivieren, sonst gut, das Haar wird 100% vor dem Körper sein. – karyon

Antwort

0

für den Körper, werden Sie deaktivieren Mischung und Tiefenprüfung aktivieren möchten, wie Sie sagten.

für die Haare, müssen Sie Alpha-Blending natürlich aktivieren, aber noch Tiefenprüfung aktivieren müssen. Ansonsten sind alle Haare sichtbar, unabhängig davon, ob sie sich hinter dem Körper befinden oder nicht.

Wenn jedoch die vordere Haarsträhne zuerst gerendert wird, werden alle Haare dahinter nicht mehr gezeichnet, da der Tiefentest jetzt fehlschlägt.

Die Lösung besteht darin, dass der Tiefentest aktiviert ist, aber das Schreiben in den Tiefenpuffer mit glDepthMask deaktiviert ist. Dadurch wird alles, was vor dem Körper steht, unabhängig von der Reihenfolge wiedergegeben, aber nichts dahinter.