Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - n0iz

#1
German corner / Re: Fragen zum FrameBuffer
May 26, 2013, 03:47:16 PM
Mkay,
ist zwar nicht das was ich hören wollte ;) aber gut.
Werd wohl auf die transparenten Texturen verzichten müssen und das ganze anständig in 3D zeichnen.
Mir gings eigentlich hauptsächlich darum, runde Ecken hin zu bekommen, deswegen die transparente Textur.
Hab nun einfach die Ecken der Fläche ein bisschen abgerundet, und tada, sieht fast gut aus  ;)
#2
German corner / Fragen zum FrameBuffer
May 21, 2013, 05:41:56 PM
Hi,
erst mal ein dickes Dankeschön für die coole GL Engine, mach Spass damit zu arbeiten ;)

Zurzeit bau ich eine 3D GUI für ein Android Augmented Reality App das jpct-ae verwendet.
Hab mich nach längerem suchen (hier im Forum) dazu entschlossen die GUi in eine zweite World zu zeichenn, damit ich nicht ständig die UI Elemente an der Kamera ausrichten muss.

Funktioniert soweit alles prima, nur bekomme ich bei Texturen mit Alpha Channel Probleme mit der Transparenz. Hab hier mal einen Screenshot Ausschnitt.


Ich versuch das jetzt mal zu erläutern  ::)
Also die blauen Cubes sind AR Dummy Objekte z.B. z.B. Gebäude in World 1 (AR), also die bewegen sich, wenn ich mich bzw das Android Gerät drehe.
Das mit 1 makrierte Rechteck ist eine Plane in World 2 (GUI),
Das mit 2 markierte Rechteck ist eine genau wie 1 nur mittels Render to Texture auf den FrameBuffer geblitet mit TRANSPARENT_BLITTING.


Das Problem ist nun, wie man auf dem Screenshot sieht, das die Plane von Rechteck 1. komplett in den FrameBuffer gezeichent wird und Objekte aus World 1 überdeckt. Ich vermute mal das liegt daran, dass die transparenten Pixel auch in den Framebuffer geschrieben werden?
Wenn dem so ist, gibt es die Möglichkeit die Transparenten Pixel nicht mit zu zeichnen?
Oder liegt das daran, das ich png Texturen mit eigenen Alpha channel verwende?

Hab ich versucht mittels RenderToTexture das ganze zu umgehen, Rechteck 2.
Wenn ich hier mit OPAQUE_BLITTING komme, tritt das gleiche Problem auf wie bei Rechteck 1, dass die gerenderte Textur alles was unter ihr liegt transparent überdeckt.
Mit TRANSPARENT_BLITTING funktioeniert es, aber überdeckte AR Objekte aus World 1 werden leicht transparent?!? :o

Meine Code sieht ungefähr so aus

onSurfaceChanged(){
            FrameBuffer fb = FrameBuffer(w,h);
            World arWorld=new World();
            World uiWorld=new World();
            ...
}

onDrawFrame(){
            ...
            fb.clear();
            arWorld.renderScene(fb);
            arWorld.draw(fb);

            fb.clearZBufferOnly();
            uiWorld.renderScene(frameBuffer);
            uiWorld.draw(frameBuffer);

            ...

            frameBuffer.blit(renderedTexture, ... , FrameBuffer.TRANSPARENT_BLITTING);

            fb.display();
}


Hoffe jemand kann mit da helfen, bin schon kurz davor meine GUI Welt als Textur zu rendern und darüber zu legen.. oder andersherum die AR Welt als Textur rendern und die GUi Welt darüber...

Hoffe das war einigermaßen verständlich ;)

Grüße n0iz