com.jme3.texture.FrameBuffer.setColorTexture()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(10.5k)|赞(0)|评价(0)|浏览(97)

本文整理了Java中com.jme3.texture.FrameBuffer.setColorTexture()方法的一些代码示例,展示了FrameBuffer.setColorTexture()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。FrameBuffer.setColorTexture()方法的具体详情如下:
包路径:com.jme3.texture.FrameBuffer
类名称:FrameBuffer
方法名:setColorTexture

FrameBuffer.setColorTexture介绍

[英]Set the color texture to use for this framebuffer. This automatically clears all existing textures added previously with FrameBuffer#addColorTexture and adds this texture as the only target.
[中]设置用于此帧缓冲区的颜色纹理。这会自动清除以前使用FrameBuffer#addColorTexture添加的所有现有纹理,并将此纹理添加为唯一目标。

代码示例

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

@Override
protected void initialize(Application app) {
  this.backGroundColor = app.getViewPort().getBackgroundColor();
  final Camera[] cameras = new Camera[6];
  final Texture2D[] textures = new Texture2D[6];
  viewports = new ViewPort[6];
  framebuffers = new FrameBuffer[6];
  buffers = new ByteBuffer[6];
  images = new Image[6];
  for (int i = 0; i < 6; i++) {
    cameras[i] = createOffCamera(size, position, axisX[i], axisY[i], axisZ[i]);
    viewports[i] = createOffViewPort("EnvView" + i, cameras[i]);
    framebuffers[i] = createOffScreenFrameBuffer(size, viewports[i]);
    textures[i] = new Texture2D(size, size, imageFormat);
    framebuffers[i].setColorTexture(textures[i]);
  }
}

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

Texture2D msDepth = new Texture2D(width, height, numSamples, depthFormat);
  renderFrameBufferMS.setDepthTexture(msDepth);
  renderFrameBufferMS.setColorTexture(msColor);
  filterTexture = msColor;
  depthTexture = msDepth;
renderFrameBuffer.setDepthBuffer(depthFormat);
filterTexture = new Texture2D(width, height, fbFormat);
renderFrameBuffer.setColorTexture(filterTexture);

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

/**
 * Create a framebuffer for an eye.
 */
public void setupFramebuffers(int eye) {
  // Find the chain length
  IntBuffer length = BufferUtils.createIntBuffer(1);
  ovr_GetTextureSwapChainLength(session, chains[eye], length);
  int chainLength = length.get();
  LOGGER.fine("HMD Eye #" + eye + " texture chain length: " + chainLength);
  // Create the frame buffers
  framebuffers[eye] = new FrameBuffer[chainLength];
  for (int i = 0; i < chainLength; i++) {
    // find the GL texture ID for this texture
    IntBuffer textureIdB = BufferUtils.createIntBuffer(1);
    OVRGL.ovr_GetTextureSwapChainBufferGL(session, chains[eye], i, textureIdB);
    int textureId = textureIdB.get();
    // TODO less hacky way of getting our texture into JMonkeyEngine
    Image img = new Image();
    img.setId(textureId);
    img.setFormat(Image.Format.RGBA8);
    img.setWidth(textureW);
    img.setHeight(textureH);
    Texture2D tex = new Texture2D(img);
    FrameBuffer buffer = new FrameBuffer(textureW, textureH, 1);
    buffer.setDepthBuffer(Image.Format.Depth);
    buffer.setColorTexture(tex);
    framebuffers[eye][i] = buffer;
  }
}

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

scene64FB = new FrameBuffer(64, 64, 1);
scene64 = new Texture2D(64, 64, lumFmt);
scene64FB.setColorTexture(scene64);
scene64.setMagFilter(fbMagFilter);
scene64.setMinFilter(fbMinFilter);
scene8FB.setColorTexture(scene8);
scene8.setMagFilter(fbMagFilter);
scene8.setMinFilter(fbMinFilter);
scene1FB[0].setColorTexture(scene1[0]);
scene1FB[1].setColorTexture(scene1[1]);

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

/**
 * init the pass called internally
 * @param renderer
 * @param width
 * @param height
 * @param textureFormat
 * @param depthBufferFormat
 * @param numSamples
 */
public void init(Renderer renderer, int width, int height, Format textureFormat, Format depthBufferFormat, int numSamples, boolean renderDepth) {
  Collection<Caps> caps = renderer.getCaps();
  if (numSamples > 1 && caps.contains(Caps.FrameBufferMultisample) && caps.contains(Caps.OpenGL31)) {
    renderFrameBuffer = new FrameBuffer(width, height, numSamples);                
    renderedTexture = new Texture2D(width, height, numSamples, textureFormat);
    renderFrameBuffer.setDepthBuffer(depthBufferFormat);
    if (renderDepth) {
      depthTexture = new Texture2D(width, height, numSamples, depthBufferFormat);
      renderFrameBuffer.setDepthTexture(depthTexture);
    }
  } else {
    renderFrameBuffer = new FrameBuffer(width, height, 1);
    renderedTexture = new Texture2D(width, height, textureFormat);
    renderFrameBuffer.setDepthBuffer(depthBufferFormat);
    if (renderDepth) {
      depthTexture = new Texture2D(width, height, depthBufferFormat);
      renderFrameBuffer.setDepthTexture(depthTexture);
    }
  }
  renderFrameBuffer.setColorTexture(renderedTexture);
}

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

out.setColorTexture(dualEyeTex);

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

out.setColorTexture(dualEyeTex);

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

private void setupFinalFullTexture(Camera cam) {
  if (environment != null) {
    if (environment.getApplication() != null) {
      // create offscreen framebuffer
      FrameBuffer out = new FrameBuffer(cam.getWidth(), cam.getHeight(), 1);
      //offBuffer.setSrgb(true);
      //setup framebuffer's texture
      dualEyeTex = new Texture2D(cam.getWidth(), cam.getHeight(), Image.Format.RGBA8);
      dualEyeTex.setMinFilter(Texture2D.MinFilter.BilinearNoMipMaps);
      dualEyeTex.setMagFilter(Texture2D.MagFilter.Bilinear);
      logger.config("Dual eye texture " + dualEyeTex.getName() + " (" + dualEyeTex.getImage().getId() + ")");
      logger.config("               Type: " + dualEyeTex.getType());
      logger.config("               Size: " + dualEyeTex.getImage().getWidth() + "x" + dualEyeTex.getImage().getHeight());
      logger.config("        Image depth: " + dualEyeTex.getImage().getDepth());
      logger.config("       Image format: " + dualEyeTex.getImage().getFormat());
      logger.config("  Image color space: " + dualEyeTex.getImage().getColorSpace());
      //setup framebuffer to use texture
      out.setDepthBuffer(Image.Format.Depth);
      out.setColorTexture(dualEyeTex);
      ViewPort viewPort = environment.getApplication().getViewPort();
      viewPort.setClearFlags(true, true, true);
      viewPort.setBackgroundColor(ColorRGBA.Black);
      viewPort.setOutputFrameBuffer(out);
    } else {
      throw new IllegalStateException("This VR environment is not attached to any application.");
    }
  } else {
    throw new IllegalStateException("This VR view manager is not attached to any VR environment.");
  }
}

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

private ViewPort setupViewBuffers(Camera cam, String viewName) {
  if (environment != null) {
    if (environment.getApplication() != null) {
      // create offscreen framebuffer
      FrameBuffer offBufferLeft = new FrameBuffer(cam.getWidth(), cam.getHeight(), 1);
      //offBufferLeft.setSrgb(true);
      //setup framebuffer's texture
      Texture2D offTex = new Texture2D(cam.getWidth(), cam.getHeight(), Image.Format.RGBA8);
      offTex.setMinFilter(Texture2D.MinFilter.BilinearNoMipMaps);
      offTex.setMagFilter(Texture2D.MagFilter.Bilinear);
      //setup framebuffer to use texture
      offBufferLeft.setDepthBuffer(Image.Format.Depth);
      offBufferLeft.setColorTexture(offTex);
      ViewPort viewPort = environment.getApplication().getRenderManager().createPreView(viewName, cam);
      viewPort.setClearFlags(true, true, true);
      viewPort.setBackgroundColor(ColorRGBA.Black);
      Iterator<Spatial> spatialIter = environment.getApplication().getViewPort().getScenes().iterator();
      while (spatialIter.hasNext()) {
        viewPort.attachScene(spatialIter.next());
      }
      //set viewport to render to offscreen framebuffer
      viewPort.setOutputFrameBuffer(offBufferLeft);
      return viewPort;
    } else {
      throw new IllegalStateException("This VR environment is not attached to any application.");
    }
  } else {
    throw new IllegalStateException("This VR view manager is not attached to any VR environment.");
  }
}

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

offBufferLeft.setColorTexture(offTex);

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

public void reshape(ViewPort vp, int w, int h){
  if (mainSceneFB != null){
    renderer.deleteFrameBuffer(mainSceneFB);
  }
  mainSceneFB = new FrameBuffer(w, h, 1);
  mainScene = new Texture2D(w, h, bufFormat);
  mainSceneFB.setDepthBuffer(Format.Depth);
  mainSceneFB.setColorTexture(mainScene);
  mainScene.setMagFilter(fbMagFilter);
  mainScene.setMinFilter(fbMinFilter);
  if (msFB != null){
    renderer.deleteFrameBuffer(msFB);
  }
  tone.setTexture("Texture", mainScene);
  
  Collection<Caps> caps = renderer.getCaps();
  if (numSamples > 1 && caps.contains(Caps.FrameBufferMultisample)){
    msFB = new FrameBuffer(w, h, numSamples);
    msFB.setDepthBuffer(Format.Depth);
    msFB.setColorBuffer(bufFormat);
    vp.setOutputFrameBuffer(msFB);
  }else{
    if (numSamples > 1)
      logger.warning("FBO multisampling not supported on this GPU, request ignored.");
    vp.setOutputFrameBuffer(mainSceneFB);
  }
  createLumShaders();
}

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

offBufferLeft.setColorTexture(offTex);

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

/**
 * Creates a BasicShadowRenderer
 * @param manager the asset manager
 * @param size the size of the shadow map (the map is square)
 */
public BasicShadowRenderer(AssetManager manager, int size) {
  shadowFB = new FrameBuffer(size, size, 1);
  shadowMap = new Texture2D(size, size, Format.Depth);
  shadowFB.setDepthTexture(shadowMap);
  shadowCam = new Camera(size, size);
  
   //DO NOT COMMENT THIS (it prevent the OSX incomplete read buffer crash)
  dummyTex = new Texture2D(size, size, Format.RGBA8);        
  shadowFB.setColorTexture(dummyTex);
  shadowMapSize = (float)size;
  preshadowMat = new Material(manager, "Common/MatDefs/Shadow/PreShadow.j3md");
  postshadowMat = new Material(manager, "Common/MatDefs/Shadow/BasicPostShadow.j3md");
  postshadowMat.setTexture("ShadowMap", shadowMap);
  dispPic.setTexture(manager, shadowMap, false);
  for (int i = 0; i < points.length; i++) {
    points[i] = new Vector3f();
  }
}

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

reflectionBuffer.setColorTexture(reflectionTexture);
refractionBuffer.setColorTexture(refractionTexture);
refractionBuffer.setDepthTexture(depthTexture);

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

@Override
public void simpleInitApp() {
  int w = settings.getWidth();
  int h = settings.getHeight();
  //setup framebuffer
  fb = new FrameBuffer(w, h, 1);
  Texture2D fbTex = new Texture2D(w, h, Format.RGBA8);
  fb.setDepthBuffer(Format.Depth);
  fb.setColorTexture(fbTex);
  // setup framebuffer's scene
  Sphere sphMesh = new Sphere(20, 20, 1);
  Material solidColor = assetManager.loadMaterial("Common/Materials/RedColor.j3m");
  Geometry sphere = new Geometry("sphere", sphMesh);
  sphere.setMaterial(solidColor);
  fbNode.attachChild(sphere);
  //setup main scene
  Picture p = new Picture("Picture");
  p.setPosition(0, 0);
  p.setWidth(w);
  p.setHeight(h);
  p.setTexture(assetManager, fbTex, false);
  rootNode.attachChild(p);
}

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

offBuffer.setColorTexture(guiTexture);

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

shadowFB[i].setColorTexture(dummyTex);
shadowMapStringCache[i] = "ShadowMap" + i; 
lightViewStringCache[i] = "LightViewProjectionMatrix" + i;

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

shadowFB[i].setColorTexture(dummyTex);
shadowMapStringCache[i] = "ShadowMap" + i; 
lightViewStringCache[i] = "LightViewProjectionMatrix" + i;

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

offBuffer.setColorTexture(offTex);

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

tex.setMagFilter(MagFilter.Bilinear);
fb.setColorTexture(tex);
niftyView.setClearFlags(true, true, true);
niftyView.setOutputFrameBuffer(fb);

相关文章