<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Hi Erik, <br>
    </div>
    <blockquote cite="mid:1447948400.m2f.65696@forum.openscenegraph.org"
      type="cite">
      <pre wrap="">Hi Sebastian,

Thank you for your reply.

As far as what type of glowing effect I'm after, I want something similar to the following:
<a class="moz-txt-link-freetext" href="http://i.stack.imgur.com/54Z2C.png">http://i.stack.imgur.com/54Z2C.png</a>
That is, I want a shiny glowing light to emit beyond the boundaries of the sphere.</pre>
    </blockquote>
    Ok, basically this not related to OSG directly.<br>
    One option is to render the scene to texture and run a separable
    blur filter on the pixels you want to "glow". The osgPPU might help
    here.<br>
    The use of the infamous search device might reveal other options
    tough.<br>
    <br>
    <blockquote cite="mid:1447948400.m2f.65696@forum.openscenegraph.org"
      type="cite">
      <pre wrap="">

As far as your comment about normals, I thought that was taken care of by the smoothing visitor. Perhaps you can help me understand this concept a little better...</pre>
    </blockquote>
    <br>
    I didn't catch the visitor, but in general should provide at least
    face normals. The smoothing visitor will fail with more complex
    geometry if you don't provide enough topological information I
    guess.<br>
    For more complex models you should use assets out of modelling
    programs anyway. <br>
    <br>
    Cheers<br>
    Sebastian <br>
    <blockquote cite="mid:1447948400.m2f.65696@forum.openscenegraph.org"
      type="cite">
      <pre wrap="">

As an experiment, I modified my code for six different variations and took screen captures of each of them. The experiments were:
1) No normals set, without the smoothing visitor
2) No normals set, with the smoothing visitor
3) "Good" normals set per primitive, without the smoothing visitor
4) "Good" normals set per primitive, with the smoothing visitor
5) "Bad" normals set per primitive, without the smoothing visitor
6) "Bad" normals set per primitive, with the smoothing visitor

By "good" normals I mean that for each triangle I set the normal to be the cross product of the two vectors that go along two sides of the triangle, and by "bad" normals I mean that I always set each normal vector to (0.0f, 0.0f, 1.0f). I set the normal vectors like so:


Code:

// Create the normal array for this geometry
osg::ref_ptr < osg::Vec3Array > pNormalsArray = new osg::Vec3Array;

//
// For each triangle...
//

// Add the vertices that make up this triangle
pVertexArray->push_back(Vertex1);
pVertexArray->push_back(Vertex2);
pVertexArray->push_back(Vertex3);

// Set the normal vector for this triangle
pNormalsArray->push_back((Vertex3 - Vertex1) ^ (Vertex2 - Vertex1));

...

//
// Done with all triangle vertices and normals
//

// Set this as the geometry's vertex array
pGeometry->setVertexArray(pVertexArray);

// Set the geometry's normals array
pGeometry->setNormalArray(pNormalsArray);
pGeometry->setNormalBinding(osg::Geometry::BIND_PER_PRIMITIVE_SET);

...





The results were interesting (at least to me):

1) No normals set, no smoothing: A boring, ordinary, monochrome sphere
2) No normals set, with smoothing, A good looking sphere with some shine to it
3) "Good" normals set, no smoothing: A very dark, boring, ordinary, monochrome sphere
4) "Good" normals set, with smoothing: A good looking sphere with some shine to it
5) "Bad" normals set, no smoothing: A boring, ordinary, monochrome sphere
6) "Bad" normals set, with smoothing: A good looking sphere with some shine to it

Screen capture images of scenarios 1 and 5 were binary identical, so the effects were identical.
Screen capture images of scenarios 2, 4, and 6 were binary identical, so the effects were identical.

This means that when using the smoothing visitor, it doesn't matter how I set the normal vectors, or if I even set them at all. This also means that not setting any normals was, in this case, equivalent to setting bogus normals (where each normal was set to the z-axis).

I tried using setEmission on the material but all that happened was the color changed.

So, how can I achieve the kind of glow effect that I want, and do I in fact have to set any normals or is using the smoothing visitor enough? I've attached the six screenshots (I have since changed the color to a dark green 0, 153, 0 instead of red).

Thank you very much in advance!

Erik


SMesserschmidt wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">Hi Erik,

Do you mean glowing like non-lit but selfillumination? Then you're maybe 
after the setEmission property.
If you want a glow like bloom-effect, then you'll need some image 
postprocessing or texture tricks.
Maybe you can send some picture which resembles what you are trying to 
achieve.
BTW: your geometry doesn't have any normals, so lighting will be wrong 
in any case.


Cheers
Sebastian

</pre>
        <blockquote type="cite">
          <pre wrap="">Hello everyone!

I'm generating a sphere geode and I'd like to add a glowing effect in any variable color. I've only found one other similar topic on these forums but there was no answer. I imagine this must be possible, I just don't know how to do it. I've posted my code that creates the geode.

Any and all help is very much appreciated!


Code:

// The center of my sphere
osg::Vec3 tSphereCenter(0.0f, 0.0f, 0.0f);

// Create the geode
osg::ref_ptr < osg::Geode > pGeode = new osg::Geode;

// Create the geometry
osg::ref_ptr < osg::Geometry > pGeometry = new osg::Geometry;

// The vertex array that defines the shape of the sphere
osg::ref_ptr < osg::Vec3Array > pVertexArray = new osg::Vec3Array;

//
// Add vertices to pVertexArray using an icosahedron approach...
// How this is done is not relevant to this question...
//

// Set this as the geometry's vertex array
pGeometry->setVertexArray(pVertexArray);

// Set the primitive set
osg::ref_ptr < osg::DrawArrays > pDrawArrays = new osg::DrawArrays(osg::PrimitiveSet::TRIANGLES, 0, static_cast < GLsizei >(pVertexArray->size()));
pGeometry->addPrimitiveSet(pDrawArrays);

// Get the state set
osg::ref_ptr < osg::StateSet > pStateSet = pGeometry->getOrCreateStateSet();

// Create the material
osg::ref_ptr < osg::Material > pMaterial = new osg::Material;

// Set the sphere color to red
pMaterial->setDiffuse(osg::Material::FRONT_AND_BACK, osg::Vec4(1.0f, 0.0f, 0.0f, 1.0f));

// Make the sphere shiny
pMaterial->setShininess(osg::Material::FRONT_AND_BACK, 128.0f);

// Set the material on the geometry's state set
pStateSet->setAttribute(pMaterial);

// Finish up with the geometry
pStateSet->setMode(GL_NORMALIZE, osg::StateAttribute::ON);
pGeometry->setStateSet(pStateSet);

// Add this geometry to the geode
pGeode->addDrawable(pGeometry);

// Ensure the geode is visible
pGeode->setNodeMask(0xffffffff);

// Smooth out the material
osgUtil::SmoothingVisitor sv;
pGeode->accept(sv);

// Add the geode to the scene
pSceneGroup->addChild(pGeode);




Thank you very much!

Cheers,
Erik[/code]

------------------
Read this topic online here:
<a class="moz-txt-link-freetext" href="http://forum.openscenegraph.org/viewtopic.php?p=65690#65690">http://forum.openscenegraph.org/viewtopic.php?p=65690#65690</a>





_______________________________________________
osg-users mailing list

<a class="moz-txt-link-freetext" href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a>

</pre>
        </blockquote>
        <pre wrap="">
_______________________________________________
osg-users mailing list

<a class="moz-txt-link-freetext" href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a>

 ------------------
Post generated by Mail2Forum
</pre>
      </blockquote>
      <pre wrap="">[/img]

------------------
Read this topic online here:
<a class="moz-txt-link-freetext" href="http://forum.openscenegraph.org/viewtopic.php?p=65696#65696">http://forum.openscenegraph.org/viewtopic.php?p=65696#65696</a>



</pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
osg-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:osg-users@lists.openscenegraph.org">osg-users@lists.openscenegraph.org</a>
<a class="moz-txt-link-freetext" href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>