what is difference between these two terms??Or,they may be the same concept??Is there anybody can describe them?!Thanks~~~

I think the difference between them is really how they are used.

A direction applies to a vector when it is normalised.

If that direction vector is encoded into a matrix then that matrix could be used to orientate a model.

Wait a second. In general, a specific orientation is the result of a rotation of some kind. If you turn your screen upside down you change its orientation. However, not every matrix is a rotation matrix.

A direction, either normalized or not, is just an interpretation of a vector, depending on the space that the vector is defined in. In R^3, you can interpret a vector either as position or direction. It’s only when you use them in a certain context that the meaning is agreed upon. For instance, the difference of two positions is usually interpreted as a direction. You can also get different points by translating with the exact same direction. For instance

P’ + D = P’

P2 + D = P2’

from which follows that

P != P2 -> P’ != P2’

A position is also seen as the translation of the origin by a position vector. Still, the above are only geometric intrepretations of a vector. There is much more to vectors depending on the mathematical depth you’re willing to endure.

Orientation has more information than direction.

Direction can be specified with two spherical coordinates. Orientation can be specified with three euler angles.

Or using more common parametrizations: Direction can be represented with a vector, and orientation with axis vector plus rotation angle around that vector.

Most notably a direction vector alone does not define orientation.