|
想学习在jme2中怎样使用shader,然后发现在jme中有4个已经写好的类分别实现不同的shader效果,分别是BloomRenderPass、DepthOfFieldRenderPass、MotionBlurRenderPass和SketchRenderPass。我想通过分析这些例子学习怎样使用shader,后来发现这些类没有主函数不能直接运行,我就编写了一下代码尝试运行这些例子:
- package jmetest.TutorialGuide;
- import com.jme.app.SimpleGame;
- import com.jme.scene.shape.Sphere;
- import com.jme.scene.state.RenderState.StateType;
- import com.jmex.effects.glsl.DepthOfFieldRenderPass;
- public class Test extends SimpleGame {
-
- public DepthOfFieldRenderPass DepthOfField;
-
- public static void main(String[] args) {
- Test app = new Test();
- app.setConfigShowMode(ConfigShowMode.AlwaysShow);
- app.start();
- }
- @Override
- protected void simpleInitGame() {
- // TODO Auto-generated method stub
-
- Sphere s=new Sphere("My sphere",10,10,1f);
-
- DepthOfField = new DepthOfFieldRenderPass(display.getRenderer().getCamera() , 1);
- DepthOfField.add(s);
-
- DepthOfField.setPassState(rootNode.getRenderState(StateType.ZBuffer));
- DepthOfField.setPassState(rootNode.getRenderState(StateType.Wireframe));
-
- DepthOfField.renderPass(display.getRenderer());
- DepthOfField.doRender(display.getRenderer());
- }
- }
复制代码
运行后发现黑屏,什么也没有!请大家帮我看看到底是怎么回事?
谢谢! |
|