Couple questions about FrameBuffers

  1. Proper Image Format for a color buffer?

  2. Is Depth complete out of the question? Or am I missing something here.

Thanks in advance!

Hmmm… just a note or two to add to this:

Using a frame buffer, viewport.setClearFlags(color,depth,stencil); is very particular it would seem.

Soooo… it looks like (according to the ES spec) RGBA8 is supported… this worked fine once I set the clear flags properly (specifically not clearing depth or things get weird).

Now… the big problem I am having is getting ANY depth format to not throw a ‘Format unsupport by your graphics hardware’ exception. Is this something that has been resolved on the JME side recently maybe? According to the spec for my tablet (specifically the GPU) Depth16 is supported, which means using Format.Depth should work. However, this throws the above exception. (As does Depth16)

I’ve seen support posts from different gaming companies saying that they bump the depth format down for this table… tried one of the games and indeed it works.

Not sure how to proceed with this.

What tablet are you using? NVIDIA Tegra GPUs do not support depth textures unfortunately … The depth must be rendered into an RGBA texture instead. This is a known issue.

@Momoko_Fan said: What tablet are you using? NVIDIA Tegra GPUs do not support depth textures unfortunately ... The depth must be rendered into an RGBA texture instead. This is a known issue.

Asus ieee Transformer… so yep. Wow… you would think that the manufacturer would be a bit more specific about this.

Is there a workaround that I could use? (i.e. setting the depth buffer to a color format… ) /crosses fingers

@t0neg0d said: Asus ieee Transformer... so yep. Wow... you would think that the manufacturer would be a bit more specific about this.

Is there a workaround that I could use? (i.e. setting the depth buffer to a color format… ) /crosses fingers


I described the only workaround in my post … There’s no other way AFAIK.

1 Like
@Momoko_Fan said: I described the only workaround in my post ... There's no other way AFAIK.

Is there a proper way in JME to test if hardware supports a particular format (heh… prior to the renderer letting me know the hard way)?

look into the renderer.getCaps, maybe you’ll have the information (i don’t remember, if it’s there though).

Also, I don’t want to discourage you, but it looks like you’re trying to use filters on android. So don’t spend too much time on this, because there is a good chance that no matter what you do the perf suck big time. Especially with the eee transformer and especially if you intend to fetch values from a depth texture once or more per pixel. The fill rate is slower than the crappiest computer you could think of.

@nehon said: look into the renderer.getCaps, maybe you'll have the information (i don't remember, if it's there though).

Also, I don’t want to discourage you, but it looks like you’re trying to use filters on android. So don’t spend too much time on this, because there is a good chance that no matter what you do the perf suck big time. Especially with the eee transformer and especially if you intend to fetch values from a depth texture once or more per pixel. The fill rate is slower than the crappiest computer you could think of.

This is just for an offscreen renderer. There is no actual need for returning a depth buffer for the tablet, I just wanted to make it available if it was possible.