Jason, Good info...thanks for sharing...
-Shayne -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Jason Daly Sent: Wednesday, April 08, 2009 3:15 PM To: OpenSceneGraph Users Subject: Re: [osg-users] array of floats to a shader? Tueller, Shayne R Civ USAF AFMC 519 SMXS/MXDEC wrote: > Yes, on the shader side, the float array is declared as > > uniform float altitudes[10]; > > The array size itself is just passed in as another uniform int. > > Thanks for bringing that up. I had forgotten to include the shader side of > things...:) > I've used uniform arrays to pass an array of matrices to do hardware vertex skinning. Instead of the setArray() method, I just used setElement(index, matrix) for each matrix (you still need to call setNumElements() to set the size of the array on the CPU side). In the shader, they're accessed like this: uniform mat4 matrixList[36]; Here's the code that accesses them (weight and boneIndex are two extra vertex attributes): // Accumulate the vertex's influences by weighted sum into a // final matrix for (int i = 0; i < 4; i++) { // Get this bone index bone = int(boneIndex[i]); // Get the bone's weighted matrix and add it to the final // matrix boneMatrix = matrixList[bone]; finalMatrix += boneMatrix * weight[i]; } --"J" _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

