So I just got started on jme3, very nice program… Well I recently tried to write my own program, and i wrote a code with no errors, should have worked, and so i ran it. It would go to the preference screen, and I would click okay, then i would get this error:
ERROR: 0:125: '=' : cannot convert from 'const float' to '4-component vector of float'
at com.jme3.renderer.lwjgl.LwjglRenderer.updateShaderSourceData(LwjglRenderer.java:878)
at com.jme3.renderer.lwjgl.LwjglRenderer.updateShaderData(LwjglRenderer.java:913)
at com.jme3.renderer.lwjgl.LwjglRenderer.setShader(LwjglRenderer.java:993)
at com.jme3.material.Material.renderMultipassLighting(Material.java:670)
at com.jme3.material.Material.render(Material.java:853)
at com.jme3.renderer.RenderManager.renderGeometry(RenderManager.java:434)
at com.jme3.renderer.queue.RenderQueue.renderGeometryList(RenderQueue.java:132)
at com.jme3.renderer.queue.RenderQueue.renderQueue(RenderQueue.java:183)
at com.jme3.renderer.RenderManager.renderViewPortQueues(RenderManager.java:575)
at com.jme3.renderer.RenderManager.flushQueue(RenderManager.java:555)
at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:721)
at com.jme3.renderer.RenderManager.render(RenderManager.java:742)
at com.jme3.app.SimpleApplication.update(SimpleApplication.java:249)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.runLoop(LwjglAbstractDisplay.java:158)
at com.jme3.system.lwjgl.LwjglDisplay.runLoop(LwjglDisplay.java:203)
at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:221)
at java.lang.Thread.run(Thread.java:662)
Heres my code. If i take out the part that renders the terrain, it runs fine, but otherwise it crashes.
[java]package mygame;
import com.jme3.app.SimpleApplication;
import com.jme3.material.Material;
import com.jme3.math.ColorRGBA;
import com.jme3.math.Vector3f;
import com.jme3.renderer.RenderManager;
import com.jme3.scene.Geometry;
import com.jme3.scene.Spatial;
import com.jme3.scene.shape.Box;
/**
* test
* @author normenhansen
*/
public class Main extends SimpleApplication {
public static void main(String[] args) {
Main app = new Main();
app.start();
}
@Override
public void simpleInitApp() {
Box b = new Box(Vector3f.ZERO, 1, 1, 1);
Geometry geom = new Geometry("Box", b);
geom.updateModelBound();
Material mat = new Material(assetManager, "Common/MatDefs/Misc/SolidColor.j3md");
mat.setColor("m_Color", ColorRGBA.Red);
geom.setMaterial(mat);
Spatial scene = assetManager.loadModel("Scenes/main.j3o");
rootNode.attachChild(scene);
rootNode.attachChild(geom);
}
@Override
public void simpleUpdate(float tpf) {
//TODO: add update code
}
@Override
public void simpleRender(RenderManager rm) {
//TODO: add render code
}
}
[/java]
So if i change it to:
[java]package mygame;
import com.jme3.app.SimpleApplication;
import com.jme3.material.Material;
import com.jme3.math.ColorRGBA;
import com.jme3.math.Vector3f;
import com.jme3.renderer.RenderManager;
import com.jme3.scene.Geometry;
import com.jme3.scene.Spatial;
import com.jme3.scene.shape.Box;
/**
* test
* @author normenhansen
*/
public class Main extends SimpleApplication {
public static void main(String[] args) {
Main app = new Main();
app.start();
}
@Override
public void simpleInitApp() {
Box b = new Box(Vector3f.ZERO, 1, 1, 1);
Geometry geom = new Geometry("Box", b);
geom.updateModelBound();
Material mat = new Material(assetManager, "Common/MatDefs/Misc/SolidColor.j3md");
mat.setColor("m_Color", ColorRGBA.Red);
geom.setMaterial(mat);
rootNode.attachChild(geom);
}
@Override
public void simpleUpdate(float tpf) {
//TODO: add update code
}
@Override
public void simpleRender(RenderManager rm) {
//TODO: add render code
}
}
[/java]
it works... Also i recently added an ambient light onto the terrain, and before then it ran but you couldnt see the terrain (no light.) I'm thinking the program is having trouble rendering that...
Thanks for any help!