Shadows Not Showing Up In OS X

Shadows get rendered fine on Windows, but for some reason they don't seem to be rendering under OX X.  I'm using StandardGame with a scenery GameState (buildings, terrain, etc) and a shadow GameState…  Any ideas or tips would be highly appreciated!



The Shadow GameState (unimportant lines of code removed):


   public ShadowPassState(String name, BVPreferences bvPrefs) {
      setName(name);
      System.out.println("Inside Shadow Constructor");
      Future<ShadowedRenderPass> future = GameTaskQueueManager.getManager().update(new Callable<ShadowedRenderPass>() {
          public ShadowedRenderPass call() throws Exception {
             shadowPass = new ShadowedRenderPass();
             System.out.println("shadow render pass initialized");
              return shadowPass;
          }
      });
      try {
         if(shadowPass==null){
            shadowPass = future.get();
            System.out.println("shadow render pass assigned");
         }
      } catch (InterruptedException e) {
         e.printStackTrace();
      } catch (ExecutionException e) {
         e.printStackTrace();
      }
      
      DisplaySystem.getDisplaySystem().setMinStencilBits(8);

      passManager = new BasicPassManager();
      System.out.println("basic pass manager built");
      sceneGameState = (SceneGameState)GameStateManager.getInstance().getChild("sceneGameState");
      System.out.println("scenegamestate fetched");

      shadowPass.add(sceneGameState.getTerrainNode());
      shadowPass.setShadowColor(new ColorRGBA(.1f,.15f,.35f,.10f));
      shadowPass.addOccluder(sceneGameState.getDesignNode());
         
      shadowPass.setLightingMethod(ShadowedRenderPass.LightingMethod.Modulative);
      shadowPass.setRenderShadows(true);
      passManager.add(shadowPass);
      
      RenderPass scenePass = new RenderPass();
      scenePass.add(sceneGameState.getDesignNode());
      
      passManager.add(scenePass);
      
   }

   @Override
   public void render(float tpf) {
      passManager.renderPasses(renderer);
   }

   @Override
   public void update(float tpf) {
      passManager.updatePasses(tpf);
   }

I've experienced the same problem when I was experimenting with shadows about a year ago. I'm not sure if this is a problem in JME though, keep in mind most Macs don't have a "real" graphics card.

keeskist said:

I've experienced the same problem when I was experimenting with shadows about a year ago. I'm not sure if this is a problem in JME though, keep in mind most Macs don't have a "real" graphics card.


I'm running a first generation Macbook Pro with an x1600.  It's definitely a real GPU, and the strange thing is that I have boot into Windows on the same machine, shadows work :(

Same behavior on a number of Mac Pro's (HD2600 as well as one with an x1950) and a newer Macbook Pro with a 9600GT.

I might try with shadow maps if this doesn't pan out

Does TestShadowPass work for you?