Problem calling TextureState.setTexture in VMware

Hi!



I ran into a problem on my VMware. The host is a Windows 7 and the guest system a Windows XP. I'm using jme 2.0.



I tried to run TestIsland.java in the tutorials but got the following error:



WARNUNG: Texture coordinates set for unit 1. Only 1 units are available.

06.05.2010 16:44:08 class jmetest.terrain.TestIsland start()

SCHWERWIEGEND: Exception in game loop

java.lang.IllegalStateException: Attempted to setTexture for textureunit 1 < 1

at com.jme.scene.state.TextureState.setTexture(TextureState.java:252)

at jmetest.terrain.TestIsland.addAlphaSplat(TestIsland.java:343)

at jmetest.terrain.TestIsland.createSplatTextureState(TestIsland.java:359)

at jmetest.terrain.TestIsland.createTerrain(TestIsland.java:181)

at jmetest.terrain.TestIsland.simpleInitGame(TestIsland.java:105)

at com.jme.app.BaseSimpleGame.initGame(BaseSimpleGame.java:545)

at com.jme.app.SimplePassGame.initGame(SimplePassGame.java:101)

at com.jme.app.BaseGame.start(BaseGame.java:74)

at jmetest.terrain.TestIsland.main(TestIsland.java:87)



Didn't find anything on google or here in the forums. Any ideas?

Seems like the system doesn't support multitexturing. Does this issue occur outside of VMWare?

No. Here is what my system looks like:



Intel® Core™2 Duo P8400 @ 2.26GHz

4 GB RAM

NVIDIA GeForce 9600M GT



I was able to load a simple model with no textures applied to it in the vm workstation but as soon as I tried the TestIsland it crashed with the error I mentioned.

Okay, perhaps you need to update the drivers inside the guest system running in VMWare? I don't know how this software works and how OpenGL is implemented there but it might work.

I just found another error message:



WARNUNG: FBO not supported.

06.05.2010 23:57:19 com.jme.system.lwjgl.LWJGLDisplaySystem createTextureRenderer

INFO: FBO not supported, attempting Pbuffer.

06.05.2010 23:57:19 com.jme.renderer.lwjgl.LWJGLPbufferTextureRenderer <init>

WARNUNG: Pbuffer not supported.

06.05.2010 23:57:19 com.jme.renderer.lwjgl.LWJGLTextureRenderer <init>

WARNUNG: FBO not supported.

06.05.2010 23:57:19 com.jme.system.lwjgl.LWJGLDisplaySystem createTextureRenderer

INFO: FBO not supported, attempting Pbuffer.

06.05.2010 23:57:19 com.jme.renderer.lwjgl.LWJGLPbufferTextureRenderer <init>

WARNUNG: Pbuffer not supported.



maybe that helps.

All of this just shows that you're dealing with a very limited OpenGL driver.

Did you try updating the drivers?

I did some research over the weekend concerning the texturing problem with vmware. I forgot to mention that I used VMWare 6.x. It seems that the version 6.x does not support all 3D graphics. So I upgraded to VMWare Workstation 7.x which fully supports 3D and updated the graphic card driver.



Now I don't get any error messages anymore and the TestIsland actually starts. The problem is though that the textures still aren't shown correctly. The terrain texture is displayed in some wiered color and the water texture white. Also the skybox isn't displayed correctly either. The strange thing is that I don't receive any error messages. Here is a screenshot of what the scene looks like.

I looked up VMWare and found out it actually emulates OpenGL and DirectX, meaning there's no hardware support. That means installing drivers won't do anything and you're not supposed to change whats there. So, if you installed any drivers, please uninstall them and use Workstation 7 since older versions will not support advanced OpenGL features.

I meant that I updated the drivers for the host machine. I didn't touch anything in the guest system. The only thing I did was installing the vmware tools.

I've got to say that I haven't been very impressed with VMWare as of late.  If you've got a few minutes to reinstall XP, give VirtualBox a shot.  Their OpenGL layer is implemented pretty well and I've been able to run my own project inside of it (albeit at fairly low framerates but at least it all looks right).