Skip to content

Conversation

@Ali-RS
Copy link
Member

@Ali-RS Ali-RS commented May 13, 2021

@Ali-RS Ali-RS requested a review from stephengold May 13, 2021 10:32
@stephengold
Copy link
Member

I believe it's unnecessary to serialize the list of targets, since the list will get regenerated by setSpatial() during loading.

@Ali-RS
Copy link
Member Author

Ali-RS commented May 13, 2021

I believe it's unnecessary to serialize the list of targets, since the list will get regenerated by setSpatial() during loading.

I was thinking like so but found out setSpatial() is not called when loading from serialized file. You can confirm that by running TestMorph (which uses BinaryExporter.saveAndLoad).

Without serialize the list it will throw

SEVERE: Uncaught exception thrown in Thread[jME3 Main,5,main]
com.jme3.renderer.RendererException: compile error in: ShaderSource[name=Common/MatDefs/Misc/Unshaded.vert, defines, type=Vertex, language=GLSL150]
0:377(9): error: `m_MorphWeights' undeclared

	at com.jme3.renderer.opengl.GLRenderer.updateShaderSourceData(GLRenderer.java:1516)
	at com.jme3.renderer.opengl.GLRenderer.updateShaderData(GLRenderer.java:1543)
	at com.jme3.renderer.opengl.GLRenderer.setShader(GLRenderer.java:1608)
	at com.jme3.material.logic.DefaultTechniqueDefLogic.render(DefaultTechniqueDefLogic.java:96)
	at com.jme3.material.Technique.render(Technique.java:167)
	at com.jme3.material.Material.render(Material.java:1033)
	at com.jme3.renderer.RenderManager.renderGeometry(RenderManager.java:634)
	at com.jme3.renderer.queue.RenderQueue.renderGeometryList(RenderQueue.java:273)
	at com.jme3.renderer.queue.RenderQueue.renderQueue(RenderQueue.java:312)
	at com.jme3.renderer.RenderManager.renderViewPortQueues(RenderManager.java:897)
	at com.jme3.renderer.RenderManager.flushQueue(RenderManager.java:799)
	at com.jme3.renderer.RenderManager.renderViewPort(RenderManager.java:1128)
	at com.jme3.renderer.RenderManager.render(RenderManager.java:1180)
	at com.jme3.app.SimpleApplication.update(SimpleApplication.java:273)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.runLoop(LwjglAbstractDisplay.java:160)
	at com.jme3.system.lwjgl.LwjglDisplay.runLoop(LwjglDisplay.java:201)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:242)
	at java.lang.Thread.run(Thread.java:748)

or by running TestAnimMorphSerialization.

@stephengold stephengold merged commit 035820e into jMonkeyEngine:master May 16, 2021
@stephengold
Copy link
Member

Thanks for your latest contribution to JMonkeyEngine!

stephengold pushed a commit that referenced this pull request May 16, 2021
* MorphControl: move target locating out of update loop into setSpatial() & add minor cleanups.

* Serialize target list

* Add javadoc

* Fix comment.
@Ali-RS
Copy link
Member Author

Ali-RS commented May 16, 2021

I appreciate you for reviewing and merging the PR. :)

@stephengold stephengold added this to the v3.4.0 milestone May 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants