Hi andreas,
sorry for my poor english!
making a little summary of this post i'd ask you:
if i assign vertices colors with ->setcolors, will i be able to retrieve
them in the shader using a command like:

outColor = gl_Color;

thx enrico

Il gio, 2004-07-15 alle 14:15, Andreas Zieringer ha scritto:
> Hi Enrico,
> 
> to get the colors
> 
> GeometryPtr geo = ...
> 
> GeoColorsPtr colors = geo->getColors();
> 
> For the other poperties
> GeoColorsPtr colors2 = geo->getSecondaryColors();
> GeoTexCoordsPtr texcoord0 = geo->getTexCoords();
> GeoTexCoordsPtr texcoord1 = geo->getTexCoords1();
> ....
> 
> To set them
> 
> if(colors == NullFC)
> {
>      // Geometry has no vertex colors so we create some.
>      colors = GeoColors3f::create();
>      beginEditCP(geo);
>          geo->setColors(colors);
>      endEditCP(geo);
>      colors->resize(geo->getPositions()->getSize());
> }
> 
> beginEditCP(colors);
> for(UInt32 i=0;i<geo->getPositions()->getSize();++i)
> {
>      // set the color for each vertex.
>      colors->setValue(Color3f(0.0, 0.0, 1.0), i);
> }
> endEditCP(colors);
> 
> if(geo->getIndexMapping().size() > 0)
> {
>      beginEditCP(geo);
>      Int16 pi = geo->calcMappingIndex(Geometry::MapPosition);
>      geo->getIndexMapping()[pi] |= Geometry::MapColor;
>      endEditCP(geo);
> }
> 
> 
> 
> 
> > hiya,
> > I am expanding my app, 
> > now after some playing with reflections and refractions, 
> > i'd like to add shades and colors, 
> > but for so doing, i need to get the color values of the vertices,
> > and the "illumination" level.
> > How do i pass the color to the shader? I think in the shader will be
> > something like
> > 
> > vec4 outColor = gl_Color;
> > 
> > but in OpenSG? A simple ->setColors(red) would do the trick?
> > 
> > Regarding the illumination level, it should be a simple float, ranging
> > [0,1], telling me how much light is hitting the point... where to store
> > that value per vertex? is there an unused slot that i can use to my
> > convenience? Something like a second texcoord set to use as a mere pipe
> > between OSG and the shader. So my shader should retrive the value like:
> > 
> > float lightlevel = gl_TexCoord[1].x;
> > 
> > hope someone can help,
> > enrico
> 



-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to