网站的特征包括,龙川县建设网站,如何建微信公众号,怎么打帮人做网站开发的广告SkinnedMeshRenderer和MeshRenderer
unity中SkinnedMeshRenderer是CPU去更改顶点位置的。 而当使用MeshRenderer时#xff0c;可以靠GPU来进行蒙皮#xff08;即更改顶点位置#xff09;。 SkinnedMeshRenderer是多线程处理的#xff0c;在小程序游戏中#xff0c;只支持…SkinnedMeshRenderer和MeshRenderer
unity中SkinnedMeshRenderer是CPU去更改顶点位置的。 而当使用MeshRenderer时可以靠GPU来进行蒙皮即更改顶点位置。 SkinnedMeshRenderer是多线程处理的在小程序游戏中只支持同步处理所以小程序游戏最好使用MeshRenderer去进行蒙皮处理
蒙皮
描述
将骨骼Bone与网格Mesh的顶点Vertices关联起来的过程。
顶点动画
描述
通过在动画帧中直接修改mesh顶点的位置来实现通常在mesh顶点数目较少动画简单的情况下使用如草的摆动树的摆动水的波动等
蒙皮动画
描述
通过在动画中直接修改bone的位置让mesh的顶点随着bone的变化而变化通常用于人形动画如人物的跑动跳跃等
原理
顶点在骨骼下的相对坐标保持不变骨骼根据动画作移动。
bones
SkinnedMeshRenderer skinnedMeshRenderer go.GetComponentSkinnedMeshRenderer();
Transform[] bones skinnedMeshRenderer.bones;描述
用于对网格进行蒙皮的骨骼。
bindposes
Mesh mesh skinnedMeshRenderer.sharedMesh;
Matrix4x4[] bindposes mesh.bindposes;描述
每根bone从mesh空间到自己的bone空间的变换矩阵。 绑定姿势。每个索引处的绑定姿势引用索引相同的骨骼。 当骨骼处于绑定姿势时绑定姿势是骨骼变换矩阵的逆矩阵。
boneWeight和vertices
描述
boneWeight描述 4 个影响网格顶点的蒙皮骨骼权重。 verticesmesh的顶点位置的副本或分配新顶点位置数组。
关系
BoneWeight和vertices的下标在Unity中是一一对应的。每个BoneWeight数组中的元素都直接关联到vertices数组中相同索引的顶点。这意味着如果你有一个顶点数组和一个蒙皮权重数组它们的大小长度通常是相同的并且数组的每个索引位置都对应于同一个网格顶点的蒙皮信息。
Mesh mesh skinnedMeshRenderer.sharedMesh;
BoneWeight[] boneWeights mesh.boneWeights;
Vector3[] vertices mesh.vertices;bones、bindPoses和boneWeight的关系
通过boneWeight的boneIndex0存储的骨骼索引能够拿到bones数组中的骨骼Transform数据。 通过boneWeight的boneIndex0存储的骨骼索引能够拿到bindPoses数组中的骨骼变换矩阵数据。
Transform bone bones[boneWeight.boneIndex0];
Matrix4x4 bindpose bindposes[boneWeight.boneIndex0];