Common.MatDefs.ShaderNodes.HardwareSkinning.HardwareSkinning.j3sn Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jme3-core Show documentation
Show all versions of jme3-core Show documentation
jMonkeyEngine is a 3-D game engine for adventurous Java developers
The newest version!
ShaderNodesDefinitions {
ShaderNodeDefinition BasicGPUSkinning{
Type: Vertex
Shader GLSL100: Common/MatDefs/ShaderNodes/HardwareSkinning/basicGpuSkinning.vert
Documentation {
This Node is responsible for computing vertex positions transformation
of the vertex due to skinning in model space
Note that the input position and the output are both in model Space so the output
of this node will need to be translated to projection space.
This shader node doesn't take Normals and Tangent into account for full support use FullGPUSkinning
IMPORTANT NOTE : for this node to work properly, you must declare a Int NumberOfBones material parameter to which the number of bones will be passed.
@input modelPosition the vertex position in model space (usually assigned with Attr.inPosition or Global.position)
@input boneMatrices an array of matrices holding the transforms of the bones assigned to this vertex. Its size is defined by the NumberOfBones material parameter
@input boneWeight a vec4 holding the bone weights applied to this vertex (4 weights max).
@input boneIndex a vec4 holding the bone indices assigned to this vertex (4 bones max).
@output modModelPosition transformed position of the vertex in model space.
}
Input{
vec4 modelPosition
mat4 boneMatrices[NumberOfBones]
vec4 boneWeight
vec4 boneIndex
}
Output{
vec4 modModelPosition
}
}
ShaderNodeDefinition FullGPUSkinning{
Type: Vertex
Shader GLSL100: Common/MatDefs/ShaderNodes/HardwareSkinning/fullGpuSkinning.vert
Documentation {
This Node is responsible for computing vertex positions, normals and tangents transformation
of the vertex due to skinning in model space
Note that the input position and the output are both in model Space so the output
of this node will need to be translated to projection space.
IMPORTANT NOTE : for this node to work properly, you must declare a Int NumberOfBones material parameter to which the number of bones will be passed.
@input modelPosition the vertex position in model space (usually assigned with Attr.inPosition or Global.position)
@input modelNormal the vertex normal in model space (usually assigned with Attr.inNormal)
@input modelTangent the vertex tangent in model space (usually assigned with Attr.inTangent)
@input boneMatrices an array of matrices holding the transforms of the bones assigned to this vertex. Its size is defined by the NumberOfBones material parameter
@input boneWeight a vec4 holding the bone weights applied to this vertex (4 weights max).
@input boneIndex a vec4 holding the bone indices assigned to this vertex (4 bones max).
@output modModelPosition transformed position of the vertex in model space.
@output modModelNormal transformed normal of the vertex in model space.
@output modModelTangent transformed tangent of the vertex in model space.
}
Input{
vec4 modelPosition
vec3 modelNormal
vec3 modelTangent
mat4 boneMatrices[NumberOfBones]
vec4 boneWeight
vec4 boneIndex
}
Output{
vec4 modModelPosition
vec3 modModelNormal
vec3 modModelTangent
}
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy