Render view port individually and using Time uniform

Hi!

I’m currently calling “renderViewPort()” in RenderManager in order to render a specific view port. It looks like when using this method, the UniformBindingManager.newFrame() never gets called thus, making the “Time” parameter unusable by my shader.

Looks like we have to call “render()” in order to be able to use the “Time” parameter.
Would there be another way?

Here is the error I got:
IllegalArgumentException: for uniform g_Time: value cannot be null

Why not let JME manage your viewport like all of the other viewports? Then you won’t have to worry about it.

I’m doing some off screen rendering in an app state before rendering any view attached to my scene.

http://javadoc.jmonkeyengine.org/com/jme3/renderer/RenderManager.html#createPreView-java.lang.String-com.jme3.renderer.Camera-

So the method #renderViewPort should not be made public if it’s not the intended way to use RenderManager?

It could be that there are some cases where a dev may want to call these directly… but then they should either manage the WHOLE pipeline themselves or do it in render() instead of update() or something.

But if your intention is to start a thread on all of the places in JME where protected things should be private and public things should be protected or private then it will be a very huge list, I think.

Either way, if you want to render a viewport before the scene then there is already a way to do that… a preview. And then JME will properly manage the globals for you and you won’t have to manage them yourself.