Re: [osg-users] bumpmapping and tangentspacegenerator, generating tangents

2012-10-04 Thread John Moore
Ok,

Let's say that I want to read an OBJ file and assign the BUMP texture to 0 and 
the DIFFUSE texture to 1

Am I doing right with these lines of code for the options?
osg::ref_ptrosgDB::ReaderWriter::Options options = new 
osgDB::ReaderWriter::Options;
options-setOptionString(DIFFUSE=1 BUMP=0);

Thank you!

Cheers,
John

--
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=50409#50409





___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] bumpmapping and tangentspacegenerator, generating tangents

2012-10-03 Thread John Moore
Dear OSG users,

I am trying to develop bump mapping using opengl es 2.0 and openscenegraph.
I can't use osgFX because of opengl es 2.0.

I have to apply a bump map to an obj that has the map embedded in the MTL.

The mtl is like this:

newmtl Nuovo
Kd 0.80 0.80 0.80
illum 2
Ns 50.781250
map_bump PINKGRA2_NRM.JPG
map_Kd PINKGRA2.JPG

I read the obj using the options string:

osg::ref_ptrosgDB::ReaderWriter::Options options = new 
osgDB::ReaderWriter::Options;
options-setOptionString(DIFFUSE=0 BUMP=1);

To generate the tagents I use tangentspacegenerator.

osg::ref_ptr osgUtil::TangentSpaceGenerator  tsg = new 
osgUtil::TangentSpaceGenerator;

tsg-generate( geo , 1);


However this is not working!!! The application crashes with a bad access!

Instead, if I use 
tsg-generate( geo, 0)
then it is working! However in this case I think it is using the diffuse map to 
generate the tangents, which I think is bad! 
The tangent space generator is created and applied inside a nodevisitor. 
I am almost sure everything is bound correctly.
 
#define NORMAL_ATTR_UNIT 2
#define TANGENT_ATTR_UNIT 9
#define NORMAL_TEX_UNIT 1
#define TEX_UNIT 0

_programBumpMapping-addBindAttribLocation( a_tangent, TANGENT_ATTR_UNIT 
);
_programBumpMapping-addBindAttribLocation( a_normal, NORMAL_ATTR_UNIT );
ssRoot-setAttributeAndModes( _programBumpMapping, 
osg::StateAttribute::ON );

ssRoot-addUniform(new osg::Uniform(osg::Uniform::SAMPLER_2D, 
u_TextureMap, TEX_UNIT));
ssRoot-addUniform(new osg::Uniform(osg::Uniform::SAMPLER_2D, 
u_NormalMap, NORMAL_TEX_UNIT));


Can you please help me to understand why with 0 works and with 1 I have a bad 
access? 


Kind Regards,
John

--
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=50387#50387





___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org