Hello Gerrit,

I definitely do need some help with this error. The rendering is still 
incorrect on my AMD/ATI graphic adapter.

I have synchronized with the latest git master and enabled the following 
switches:

OSG_ENABLE_MULTISHADER_VARCHUNK:BOOL=ON
OSG_ENABLE_OGL2_SHADERFUNCTIONS:BOOL=ON
OSG_ENABLE_OGL_VERTEXATTRIB_FUNCS:BOOL=ON
OSG_ENABLE_NEW_GEOHANDLER:BOOL=ON
OSG_ENABLE_OGL_COREONLY:BOOL=OFF
OSG_ENABLE_OGL_ES2:BOOL=OFF
OSG_ENABLE_OGL_ES2_SIMGL3:BOOL=OFF
OSG_ENABLE_OGL3_PROTOS:BOOL=OFF
OSG_ENABLE_OGL4_PROTOS:BOOL=OFF
OSG_ENABLE_OGLES_PROTOS:BOOL=OFF

I have changed my shader code as follows:

1. Vertex shader
----------------

#version 330 compatibility

varying vec3 vTranfNormal;
varying vec4 vPosition;

layout(location = 2) in vec3 N;

vec3 fnormal(void)
{
     vec3 normal = gl_NormalMatrix * N;
     normal = normalize(normal);
     return normal;
}

void main()
{
     gl_Position   = ftransform();
     gl_ClipVertex = gl_ModelViewMatrix * gl_Vertex;
     vTranfNormal  = fnormal();
     vPosition     = gl_Vertex;
}

2. Fragment shader
------------------

#version 330 compatibility

....rest unchanged.


After start of my application I create some geometry as follows

MaterialGroupUnrecPtr matCore = 
graphic::createMaterialCore(_spSceneManager, *dspm);

     MaterialGroupUnrecPtr mgrp = MaterialGroup::create();
     mgrp->setMaterial(mat);

         ChunkMaterialUnrecPtr mat = createChunkMaterial(rSDM, 
spSceneManager->rImageData());
             ShaderProgramVariableChunkUnrecPtr variableChunk = 
ShaderProgramVariableChunk::create();
             mat->addChunk(variableChunk);

             variableChunk->addUniformVariable("uIsTwoSidedLighting", 
false);
             ...

 
mat->addChunk(spSceneManager->getMaterialShader(PHONG_MATERIAL_SHADER));

geomPartNode->setCore(matCore);

I.e. nothing fancy, just a chunk material with a shader chunk and a 
variable chunk and some 'classic' GL state chunks.

Ok, rendering is now correct. However, if I switch to classic non shader 
based rendering by subracting of the shader chunk from my material the 
surface normals are lost leading to flat shading. But, if I create new 
geometry without the shader chunk it is rendered correct. Again, if I 
switch the render mode by adding the shader chunk to the two materials 
the second geometry is only flat shaded and the first one is correct again.

So switching by adding/subtracting of the shader chunk does not work on 
the AMD/ATI platform.

Do you have any idea what I can do/check/change/look for in order to get 
my setup running again?


Best,
Johannes




------------------------------------------------------------------------------
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
_______________________________________________
Opensg-users mailing list
Opensg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to