How do I make a ray visible?

Hello I need to make a ray to be visible for debugging. I have try it like this

[java]debugLines=new ArrayList<Geometry>();

for(int i=0;i<rays.size();i++)

{

debugLines.add(new Geometry("line"+i, new Line(rays.get(i).getOrigin(),

rays.get(i).getOrigin().add(rays.get(i).getDirection().normalize().mult(lungime)))));

Material mat=MaterialsBank.UNSHAEDED.clone();

mat.setColor("ColorMap", ColorRGBA.Blue);

debugLines.get(i).setMaterial(mat);

parent.attachChild(debugLines.get(i));

}[/java]

[java]public interface MaterialsBank

{

Material UNSHAEDED=new Material(MyGame.assetManager, "Common/MatDefs/Misc/Unshaded.j3md");

Material LIGHTING=new Material(MyGame.assetManager, "Common/MatDefs/Light/Lighting.j3md");

Material PARTICLE=new Material(MyGame.assetManager, "Common/MatDefs/Misc/Particle.j3md");

// Material SOLID=new Material(MyGame.assetManager, "Common/MatDefs/Misc/SolidColor.j3md");



}[/java]

but i get this exception…

SEVERE: Uncaught exception thrown in Thread[LWJGL Renderer Thread,5,main]

java.lang.IllegalStateException: No material is set for Geometry: line0

at com.jme3.renderer.RenderManager.renderScene(RenderManager.java:802)

at com.jme3.renderer.RenderManager.renderScene(RenderManager.java:794)

at com.jme3.renderer.RenderManager.renderScene(RenderManager.java:794)

at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:1117)

at com.jme3.renderer.RenderManager.render(RenderManager.java:1168)

at com.jme3.app.SimpleApplication.update(SimpleApplication.java:254)

at com.jme3.system.lwjgl.LwjglAbstractDisplay.runLoop(LwjglAbstractDisplay.java:149)

at com.jme3.system.lwjgl.LwjglDisplay.runLoop(LwjglDisplay.java:182)

at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:223)

at java.lang.Thread.run(Unknown Source)



I think there is something wrong with my material



Thank you.

You’re better off managing the geometry and setting it’s material followed by adding it to the list…

sorry for the topic. problem solved. i must use ShowNormals.j3md insted of Unshaded.j3md

1 Like

The problem didn’t go away, only if you changed the loop. The stack-trace says that no material is set for the specific geometry.