On 07.10.2015 09:27, Gerrit Voß wrote:
>
> a passive background might help. It can take a clear callback
> where you can do the blitting. Another option in there
> is to blit the current framebuffer into an FBO (which is not directly
> what you are looking for). Adding blitting from another FBO should not
> be to difficult, well depending on how accurate the 'what to blit'
> settings have to be. I'll have a look.
>
Great :-)
I'm also playing around with an example with a PolygonBackground, but I
have problems getting it to run. What I'm trying is to create a viewport
with a PolygonBackground that is painting the texture image from a FBO
that I have rendered prior to that. In that simple setup the image is
rendered perfectly fine. However, when I add a shader program chunk to
the material of the PolygonBackground that shader code is never called.
I debugged the relevant code places where GL_COMPILE_STATUS and
GL_LINK_STATUS is checked, but the example program did not stop at these
places. Additionally, I debugged the State::activate(...) function. The
TextureObjChunk, TextureEnvChunk and the MaterialChunk get activated but
not so the ShaderProgramChunk.
The poor man's idea with the shader is, that I can adapt the depth
buffer beside of the color buffer in the fragment shader.
Below you can find part of the example. Could you take a brief look? Is
shader code in the PolygonBackground forbidden generally? In case it
helps I can post or upload the complete example code.
However, I would prefer some infrastructure that is easier to setup.
Maybe we could come up with a FancyBackground that takes a FBO and
manages the blitting (color, depth, stencil) internally. Especially, I
do not like a solution involving a shader in the first place.
Best,
Johannes
static void createDynamicViewport()
{
win->subPortByObj(staticVp);
ChunkMaterialUnrecPtr mat = ChunkMaterial::create();
MaterialChunkUnrecPtr matChunk = MaterialChunk::create();
matChunk->setDiffuse(Color4f(1.f,1.f,1.f,1.f));
TextureObjChunkUnrecPtr texObjChunk = spSimpleFBO->colorTexObj();
TextureEnvChunkUnrecPtr texEnvChunk = TextureEnvChunk::create();
texEnvChunk->setEnvMode(GL_REPLACE);
ShaderProgramChunkUnrecPtr shaderProgramChunk =
ShaderProgramChunk::create();
ShaderProgramUnrecPtr vertShader = ShaderProgram::createVertexShader();
ShaderProgramUnrecPtr fragShader =
ShaderProgram::createFragmentShader();
vertShader->setProgram(vertexShaderStr);
fragShader->setProgram(fragmentShaderStr);
fragShader->addUniformVariable("texUnit", 0);
shaderProgramChunk->addShader(vertShader);
shaderProgramChunk->addShader(fragShader);
mat->addChunk(matChunk);
mat->addChunk(texObjChunk);
mat->addChunk(texEnvChunk);
mat->addChunk(shaderProgramChunk);
PolygonBackgroundUnrecPtr polyBckgnd = PolygonBackground::create();
polyBckgnd->setMaterial(mat);
polyBckgnd->setClearColor(true);
polyBckgnd->setClearDepth(true);
polyBckgnd->setClearStencilBit(true);
polyBckgnd->setNormalizedX(true);
polyBckgnd->setNormalizedY(true);
polyBckgnd->editMFTexCoords()->push_back(Vec3f(0.f,0.f,0.f));
polyBckgnd->editMFTexCoords()->push_back(Vec3f(1.f,0.f,0.f));
polyBckgnd->editMFTexCoords()->push_back(Vec3f(1.f,1.f,0.f));
polyBckgnd->editMFTexCoords()->push_back(Vec3f(0.f,1.f,0.f));
polyBckgnd->editMFPositions()->push_back(Pnt2f(0.f,0.f));
polyBckgnd->editMFPositions()->push_back(Pnt2f(1.f,0.f));
polyBckgnd->editMFPositions()->push_back(Pnt2f(1.f,1.f));
polyBckgnd->editMFPositions()->push_back(Pnt2f(0.f,1.f));
NodeUnrecPtr root = makeCoredNode<Group>();
root->addChild(dynamicScene);
mgr->setRoot(root);
dynamicVp = Viewport::create();
dynamicVp->setRoot (rootNode(root));
dynamicVp->setBackground(polyBckgnd);
dynamicVp->setCamera (camera);
dynamicVp->setSize (0,0, 1,1);
mgr->getNavigator()->setViewport(dynamicVp);
win->addPort(dynamicVp);
mgr->update();
}
------------------------------------------------------------------------------
Full-scale, agent-less Infrastructure Monitoring from a single dashboard
Integrate with 40+ ManageEngine ITSM Solutions for complete visibility
Physical-Virtual-Cloud Infrastructure monitoring from one console
Real user monitoring with APM Insights and performance trend reports
Learn More http://pubads.g.doubleclick.net/gampad/clk?id=247754911&iu=/4140
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users