com.jme3.material.RenderState.setBlendEquation()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(3.8k)|赞(0)|评价(0)|浏览(78)

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

RenderState.setBlendEquation介绍

[英]Set the blending equation for the color component (RGB).

The blending equation determines, how the RGB values of the input pixel will be blended with the RGB values of the pixel already in the color buffer.
For example, BlendEquation#Add will add the input pixel's color to the color already in the color buffer:
Result = Source Color + Destination Color

Note: This gets only used in BlendMode#Custom mode. All other blend modes will ignore this setting.
[中]设置颜色分量(RGB)的混合公式。
混合方程确定输入像素的RGB值将如何与颜色缓冲区中已存在的像素的RGB值混合。
例如,BlendEquation#Add会将输入像素的颜色添加到颜色缓冲区中已有的颜色中:
Result = Source Color + Destination Color
注意:这仅在BlendMode#自定义模式下使用。所有其他混合模式将忽略此设置。

代码示例

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

renderState.setBlendMode(BlendMode.valueOf(split[1]));
}else if (split[0].equals("BlendEquation")){
  renderState.setBlendEquation(BlendEquation.valueOf(split[1]));
}else if (split[0].equals("BlendEquationAlpha")){
  renderState.setBlendEquationAlpha(RenderState.BlendEquationAlpha.valueOf(split[1]));

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

/**
 * Adds a "transparent" quad to the scene, that limits the color values of the scene behind the object.<br/>
 * This effect can be good seen on bright areas of the scene (e.g. areas with specular lighting effects).
 */
private void createRightQuad() {
  Material material = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
  material.setColor("Color", new ColorRGBA(0.4f, 0.4f, 0.4f, 1f));
  // Min( Source , Destination)
  material.getAdditionalRenderState().setBlendMode(RenderState.BlendMode.Custom);
  material.getAdditionalRenderState().setBlendEquation(RenderState.BlendEquation.Min);
  material.getAdditionalRenderState().setBlendEquationAlpha(RenderState.BlendEquationAlpha.Min);
  // In OpenGL no blend factors are used, when using the blend equations Min or Max!
  //material.getAdditionalRenderState().setCustomBlendFactors(
  //        RenderState.BlendFunc.One, RenderState.BlendFunc.One,
  //        RenderState.BlendFunc.One, RenderState.BlendFunc.One);
  rightQuad = new Geometry("RightQuad", new Quad(1f, 1f));
  rightQuad.setMaterial(material);
  rightQuad.setQueueBucket(RenderQueue.Bucket.Transparent);
  rootNode.attachChild(rightQuad);
}

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

/**
 * Adds a "transparent" quad to the scene, that shows an inverse blue value sight of the scene behind.
 */
private void createLeftQuad() {
  Material material = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
  // This color creates a blue value image. The effect will have a strength of 80% (set by the alpha value).
  material.setColor("Color", new ColorRGBA(0f, 0f, 1f, 0.8f));
  // Result.RGB = Source.A * Source.RGB - Source.A * Destination.RGB
  // Result.A   = Destination.A
  material.getAdditionalRenderState().setBlendMode(RenderState.BlendMode.Custom);
  material.getAdditionalRenderState().setBlendEquation(RenderState.BlendEquation.Subtract);
  material.getAdditionalRenderState().setBlendEquationAlpha(RenderState.BlendEquationAlpha.Add);
  material.getAdditionalRenderState().setCustomBlendFactors(
      RenderState.BlendFunc.Src_Alpha, RenderState.BlendFunc.Src_Alpha,
      RenderState.BlendFunc.Zero, RenderState.BlendFunc.One);
  leftQuad = new Geometry("LeftQuad", new Quad(1f, 1f));
  leftQuad.setMaterial(material);
  leftQuad.setQueueBucket(RenderQueue.Bucket.Transparent);
  rootNode.attachChild(leftQuad);
}

代码示例来源:origin: org.jmonkeyengine/jme3-core

renderState.setBlendMode(BlendMode.valueOf(split[1]));
}else if (split[0].equals("BlendEquation")){
  renderState.setBlendEquation(BlendEquation.valueOf(split[1]));
}else if (split[0].equals("BlendEquationAlpha")){
  renderState.setBlendEquationAlpha(RenderState.BlendEquationAlpha.valueOf(split[1]));

相关文章

微信公众号

最新文章

更多