Used R11G11B10F instead of RGB10_A2 for framebuffer format in Filters and R11G11B10F instead of RGBA for the back buffer in the FilterPostProcessor.

experimental
Nehon 11 years ago
parent 0c469e605b
commit 200c875ba2
  1. 2
      jme3-core/src/main/java/com/jme3/post/Filter.java
  2. 6
      jme3-core/src/main/java/com/jme3/post/FilterPostProcessor.java

@ -207,7 +207,7 @@ public abstract class Filter implements Savable {
* @return * @return
*/ */
protected Format getDefaultPassTextureFormat() { protected Format getDefaultPassTextureFormat() {
return Format.RGB10_A2; return Format.RGB111110F;
} }
/** /**

@ -433,7 +433,7 @@ public class FilterPostProcessor implements SceneProcessor, Savable {
if (numSamples > 1 && caps.contains(Caps.FrameBufferMultisample)) { if (numSamples > 1 && caps.contains(Caps.FrameBufferMultisample)) {
renderFrameBufferMS = new FrameBuffer(width, height, numSamples); renderFrameBufferMS = new FrameBuffer(width, height, numSamples);
if (caps.contains(Caps.OpenGL31)) { if (caps.contains(Caps.OpenGL31)) {
Texture2D msColor = new Texture2D(width, height, numSamples, Format.RGBA8); Texture2D msColor = new Texture2D(width, height, numSamples, Format.RGB111110F);
Texture2D msDepth = new Texture2D(width, height, numSamples, Format.Depth); Texture2D msDepth = new Texture2D(width, height, numSamples, Format.Depth);
renderFrameBufferMS.setDepthTexture(msDepth); renderFrameBufferMS.setDepthTexture(msDepth);
renderFrameBufferMS.setColorTexture(msColor); renderFrameBufferMS.setColorTexture(msColor);
@ -441,14 +441,14 @@ public class FilterPostProcessor implements SceneProcessor, Savable {
depthTexture = msDepth; depthTexture = msDepth;
} else { } else {
renderFrameBufferMS.setDepthBuffer(Format.Depth); renderFrameBufferMS.setDepthBuffer(Format.Depth);
renderFrameBufferMS.setColorBuffer(Format.RGBA8); renderFrameBufferMS.setColorBuffer(Format.RGB111110F);
} }
} }
if (numSamples <= 1 || !caps.contains(Caps.OpenGL31)) { if (numSamples <= 1 || !caps.contains(Caps.OpenGL31)) {
renderFrameBuffer = new FrameBuffer(width, height, 1); renderFrameBuffer = new FrameBuffer(width, height, 1);
renderFrameBuffer.setDepthBuffer(Format.Depth); renderFrameBuffer.setDepthBuffer(Format.Depth);
filterTexture = new Texture2D(width, height, Format.RGBA8); filterTexture = new Texture2D(width, height, Format.RGB111110F);
renderFrameBuffer.setColorTexture(filterTexture); renderFrameBuffer.setColorTexture(filterTexture);
} }

Loading…
Cancel
Save