Package com.jme3.util.mikktspace
Interface MikkTSpaceContext
- All Known Implementing Classes:
- MikkTSpaceImpl
public interface MikkTSpaceContext
- 
Method SummaryModifier and TypeMethodDescriptionvoidgetNormal(float[] normOut, int face, int vert) intReturns the number of faces (triangles/quads) on the mesh to be processed.intgetNumVerticesOfFace(int face) Returns the number of vertices on face number iFace iFace is a number in the range {0, 1, ..., getNumFaces()-1}voidgetPosition(float[] posOut, int face, int vert) returns the position/normal/texcoord of the referenced face of vertex number iVert.voidgetTexCoord(float[] texOut, int face, int vert) voidsetTSpace(float[] tangent, float[] biTangent, float magS, float magT, boolean isOrientationPreserving, int face, int vert) This function is used to return tangent space results to the application.voidsetTSpaceBasic(float[] tangent, float sign, int face, int vert) The callback setTSpaceBasic() is sufficient for basic normal mapping.
- 
Method Details- 
getNumFacesint getNumFaces()Returns the number of faces (triangles/quads) on the mesh to be processed.- Returns:
- the count (≥0)
 
- 
getNumVerticesOfFaceint getNumVerticesOfFace(int face) Returns the number of vertices on face number iFace iFace is a number in the range {0, 1, ..., getNumFaces()-1}- Parameters:
- face- which face (≥0, <numFaces)
- Returns:
- the count (≥0)
 
- 
getPositionvoid getPosition(float[] posOut, int face, int vert) returns the position/normal/texcoord of the referenced face of vertex number iVert. iVert is in the range {0,1,2} for triangles and {0,1,2,3} for quads.- Parameters:
- posOut- storage for the results (modified)
- face- which face (≥0, <numFaces)
- vert- which vertex in the face (≥0, <numVertices)
 
- 
getNormalvoid getNormal(float[] normOut, int face, int vert) 
- 
getTexCoordvoid getTexCoord(float[] texOut, int face, int vert) 
- 
setTSpaceBasicvoid setTSpaceBasic(float[] tangent, float sign, int face, int vert) The callback setTSpaceBasic() is sufficient for basic normal mapping. This function is used to return the tangent and sign to the application. tangent is a unit length vector. For normal maps it is sufficient to use the following simplified version of the bitangent which is generated at pixel/vertex level. bitangent = fSign * cross(vN, tangent); Note that the results are returned unindexed. It is possible to generate a new index list But averaging/overwriting tangent spaces by using an already existing index list WILL produce INCORRECT results. DO NOT! use an already existing index list.- Parameters:
- tangent- the desired tangent vector (unaffected)
- sign- the desired sign
- face- which face (≥0, <numFaces)
- vert- which vertex in the face (≥0, <numVertices)
 
- 
setTSpacevoid setTSpace(float[] tangent, float[] biTangent, float magS, float magT, boolean isOrientationPreserving, int face, int vert) This function is used to return tangent space results to the application. tangent and biTangent are unit length vectors and fMagS and fMagT are their true magnitudes which can be used for relief mapping effects. biTangent is the "real" bitangent and thus may not be perpendicular to tangent. However, both are perpendicular to the vertex normal. For normal maps it is sufficient to use the following simplified version of the bitangent which is generated at pixel/vertex level.fSign = bIsOrientationPreserving ? 1.0f : (-1.0f); bitangent = fSign * cross(vN, tangent); Note that the results are returned unindexed. It is possible to generate a new index list. But averaging/overwriting tangent spaces by using an already existing index list WILL produce INCORRECT results. DO NOT! use an already existing index list.- Parameters:
- tangent- the desired tangent vector (unaffected)
- biTangent- the desired bitangent vector (unaffected)
- magS- true magnitude of S
- magT- true magnitude of T
- isOrientationPreserving- true→preserves, false→doesn't preserve
- face- which face (≥0, <numFaces)
- vert- which vertex in the face (≥0, <numVertices)
 
 
-