Thank you all for suggestions, I'll try them as soon as possible and will
let you know.
Regards.

Alessandro

On Mon, Jan 26, 2009 at 5:42 PM, Paul Martz <pma...@skew-matrix.com> wrote:

> Yes, two sided lighting was what I was going to suggest, but you beat me to
> it.
>
> Note that two sided lighting is deprecated in OpenGL 3.0, so you should
> consider looking for a shader-based solution instead. In the shader, if the
> dot product of the normal and eye vector is negative, just negate it, then
> calculate lighting as usual.
>
> Paul Martz
> Skew Matrix Software LLC
> http://www.skew-matrix.com
> +1 303 859 9466
>
> -----Original Message-----
> From: osg-users-boun...@lists.openscenegraph.org
> [mailto:osg-users-boun...@lists.openscenegraph.org] On Behalf Of
> frankmil...@jhmi.edu
> Sent: Monday, January 26, 2009 8:44 AM
> To: OpenSceneGraph Users
>  Subject: Re: [osg-users] Rendering double-sided surfaces.
>
> For sure the best thing to do would be to process the incoming data as
> suggested. However, you might be able to get OpenGL to do what you want by
> setting all material properties for both sides of the polygon and enabling
> two sided lighting. Something like this.
>
>  osg::ref_ptr< osg::LightModel > pLightModel = new osg::LightModel();
>  pLightModel->setTwoSided( true );
>  pState->setAttributeAndModes( pLightModel.get(), osg::StateAttribute::ON
> );
>
>  osg::ref_ptr<osg::Material> pMaterial = new osg::Material();
>  pMaterial->setColorMode( osg::Material::DIFFUSE );
>  pMaterial->setAmbient( osg::Material::FRONT_AND_BACK, osg::Vec4( 0.0, 0.0,
> 0.0, 1.0 ) );
>  pMaterial->setSpecular( osg::Material::FRONT_AND_BACK, osg::Vec4( 1.0,
> 1.0, 1.0, 1.0 ) );
>  pMaterial->setShininess( osg::Material::FRONT_AND_BACK, 64.0f );
>  pState->setAttributeAndModes( pMaterial.get(), osg::StateAttribute::ON );
>
> I have never tried this for data like you have but it seems to me like it
> should work.
>
> Frank
>
> On Mon, Jan 26, 2009 at 04:21:41PM +0100, alessandro terenzi wrote:
> > Problem is that the models that come to my application are already
> > prepared by people that do not (and unfortunately won't) think about
> > normals issues, so maybe the best thing to do would be to really
> > render both front and back faces, I'm not an expert, but the only
> > approach I can think is to double the geometry so to have both faces,
> > but it would be really a waste (not to mention performace problems
> > that may arise..and other unexpected visualization problems I cannot
> > think of..) Regards.
> > Alessandro
> >
> > On Mon, Jan 26, 2009 at 1:37 PM, Tomlinson, Gordon <
> > gtomlin...@overwatch.textron.com> wrote:
> >
> > >  your triangles all need to be wound the same way (anticlockwise by
> > > default for OSG & Opengl), whether or not your normal's are correct
> > >
> > > The easiest fix would be to ensure that your modeling package sets
> > > up correct normal's before you get to OSG
> > >
> > > Assuming your triangles are wound the same way ( if not you will
> > > have to fix that ) try using the SmoothingVistor on the data see
> > >
> > > include\osgUtil\SmoothingVisitor
> > >
> > >
> > > *Gordon*
> > >
> > > __________________________________________________________
> > > *Gordon Tomlinson*
> > >
> > > *Product Manager 3D
> > > **Email * : gtomlinson @ overwatch.textron.com
> > > __________________________________________________________
> > > *(C): (+1) 571-265-2612
> > > (W)**: (+1) 703-437-7651*
> > >
> > > "Self defence is not a function of learning tricks but is a function
> > > of how quickly and intensely one can arouse one's instinct for
> > > survival"
> > > - *Master Tambo Tetsura*
> > >
> > >
> > >
> > >  ------------------------------
> > > *From:* osg-users-boun...@lists.openscenegraph.org [mailto:
> > > osg-users-boun...@lists.openscenegraph.org] *On Behalf Of
> > > *alessandro terenzi
> > > *Sent:* Monday, January 26, 2009 7:09 AM
> > > *To:* OpenSceneGraph Users
> > > *Subject:* [osg-users] Rendering double-sided surfaces.
> > >
> > >  Sometimes my application has to load models that have normals not
> > > always oriented in the same coherent way, so it is not always
> > > possible to say that a surface is oriented in a way or in another
> > > and my renderings do not look correct.
> > >
> > > I'd like to fix this problem in some way...so I was thinking about
> > > rendering both front and back faces, but how do I ask OSG do this?
> > > Or perhaps, is there another way/technique to achive the same result?
> (ie.
> > > orient a surface in a coherent way: all faces inward XOR outward)
> > >
> > > Thank you.
> > > Alessandro
> > >
> > > _______________________________________________
> > > osg-users mailing list
> > > osg-users@lists.openscenegraph.org
> > > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegrap
> > > h.org
> > >
> > >
>
> > _______________________________________________
> > osg-users mailing list
> > osg-users@lists.openscenegraph.org
> > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.
> > org
>
>
> _______________________________________________
> osg-users mailing list
> osg-users@lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
> _______________________________________________
> osg-users mailing list
> osg-users@lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to