[quote=“Monster,post:6,topic:679629"”]
A normalized vector has a length of 1.0. The vector you show is indeed normalized. Could it be you mean this is a normal vector?
Normal vectors should be normalized too, but this is not what makes them a normal vector.
[/quote]
Hmmm, well, I guess it is a normal vector, sort of in a technical way, maybe? xD Maybe if I explain, you can tell me, yes or no?
: P
I have the linear velocity of an object as a vector like so: [x,y,z], call it a heading vector, I then make it so that it’s magnitude is equal to 1. So it is not technically the normal of a vertex, but it shares the same properties.
[quote=“Monster,post:6,topic:679629"”]
May I ask why you think you need a rotation matrix and why you think the input is this vector?
[/quote]
The input from Mirror|rorriM helped me make the .blend at the bottom of this post.
Basically the vertex normals of an object in the .blend are rendered in world space instead of object space, if that makes sense.
At least I think they do, or well they appear to do that, you’ll see what I mean in the .blend : P
I made the .blend, because I wanted to be able to offset the vertex normals of an object, based on its heading. Which is the reason I started this thread.
The solution which Mirror|rorriM provided, was to multiply the vertex normals by the object’s worldOrientation. That got me the proof of concept, in the form of the .blend below : D
The next step to my understanding, is to convert the heading vector to an orientation matrix, which I’ll use instead of or in conjunction with worldOrientation, in my current implementation.
[quote=“Monster,post:6,topic:679629"”]
Explanation on the solution given at post#2:
In general Vertex position is described in the object space. The are position vectors providing the position of a vertex in object space. This makes a lot of sense as they usually should appear as a single object - means they should all equally follow the objects transformations.
Be aware vertex coordinates describe a position but no direction.
A vertex normal is described in object space too. In difference to vertex coordinates they are pure vectors. This means they have no position, but a direction. They can be anywhere. For better imagination they are typically drawn from the vertex they belong.
The combination of vertex position and vertex normal gives the vertex a direction (the vertex normal vector).
Object space to scene space
To transform a vector from object space to scene (world) space you multiply it with the objects world transformation matrix. This can be useful when you want an object at the visible position of a vertex (without establishing a parent/child relationship). You can use it to transform normals to scene space too.
object = ...
vectorInObjectSpace = ...
vectorInWordSpace = object.worldTransform * vectorInObjectSpace
Scene space to object space
You can even convert vectors in scene space to object space. For example you want to deform a mesh in a way that it matches a position in scene.
object = ...
vectorInWordSpace = ...
vectorInObjectSpace = object.worldTransform.inverted() * vectorInWordSpace
Normals
As normals have no position you can use the rotation matrix only (ignoring position and shear):
vectorInWordSpace = object.worldOrentation * vectorInObjectSpace
# and
vectorInObjectSpace = object.worldOrentation.inverted() * vectorInWordSpace
This is a little bit but not noticeable faster (as it is a 3x3 rather than a 4x4 matrix). Be aware this does not apply to the position (vertex.XYZ).
That is why post#2 two is a good solution.
[/quote]
That’s a really concise and precise explanation : D My matrix math in general, and understanding of the worldTransform matrix aren’t complete yet, so there’s probably some knowledge that I’m unable to glean from your post, but I do understand the trick with the 3x3 instead of the 4x4, and why you say post#2 is a good solution : ) Thanks for the enlightenment 
And now I’m beginning to see excellent potential with the manipulation of the worldTransform matrix : D
PS: Just move the mouse to see the script in action ; )
EditX5: Typos, clarity and terminology.
Attachments
Windtunnel_Test_BGE_RECODE_01.blend (528 KB)