WaterRenderPass rotation?

I'm trying to pull apart QuadWater code and rotating my waterQuad so the water lays flat with the TerrainPage I have created.  I don't want the water to go on forever like in some of the demonstration code either.



My code is as follows:


      waterQuad = new Quad("waterQuad", 100, 100);
      waterQuad.getLocalRotation().fromAngles(90 * FastMath.DEG_TO_RAD, 0, 0);
      waterQuad.getLocalTranslation().set(0, 200, 0);

      waterEffectRenderPass = new WaterRenderPass(cam, 4, false, true);
      waterEffectRenderPass.setWaterPlane(new Plane(new Vector3f(0.0f, 1.0f, 0.0f), 0.0f));
      // waterEffectRenderPass.setClipBias(-1.0f);
      waterEffectRenderPass.setWaterEffectOnSpatial(waterQuad);
      rootNode.attachChild(waterQuad);

      waterEffectRenderPass.setReflectedScene(skybox);
      waterEffectRenderPass.addReflectedScene(terrain);
      waterEffectRenderPass.setSkybox(skybox);
      pManager.add(waterEffectRenderPass);



If I don't rotate my quad and I set the Plane's vector to 0.0f, 0.0f, 1.0f it works fine, but the rotation doesn't seem to follow.  Help!

have a look at testsimplequadwater, which does that… (you probably need to set tangent/binormal and waterheight etc)

Working now…I was looking a TestIsland but the example you pointed me to is much more clear about the water on rotated quads.  :slight_smile:



For those who may have similar problems:


   waterEffectRenderPass = new WaterRenderPass(cam, 1, false, true);
   waterEffectRenderPass.setWaterPlane(new Plane(new Vector3f(0.0f, 0.0f, 1.0f), 0.0f));
   waterEffectRenderPass.setTangent(new Vector3f(1.0f, 0.0f, 1.0f));
   waterEffectRenderPass.setBinormal(new Vector3f(0.0f, -1.0f, 0.0f));

   waterQuad = new Quad("waterQuad", 100, 100);
   waterEffectRenderPass.setWaterEffectOnSpatial(waterQuad);
   rootNode.attachChild(waterQuad);

   waterQuad.getLocalRotation().fromAngles(90 * FastMath.DEG_TO_RAD, 0, 0);
   waterQuad.getLocalTranslation().set(0, 100, 0);
   Vector3f tempVector = new Vector3f(0, 0, 1);
   waterQuad.getLocalRotation().multLocal(tempVector);
   waterEffectRenderPass.getNormal().set(tempVector);