如何解决Android版面子-如何缩放子节点而不影响添加在同一父节点中的其他节点
我正在使用2D图像(2048x2048)在脸上覆盖纹理。我正在创建一个多重纹理并将其添加到子节点。当我用Z轴缩放小胡子的子节点时,其他2个子节点无法正确渲染。如何缩放子节点而不影响添加到同一父节点中的其他节点? 在下面添加了示例源代码
Texture.builder()
.setSource(this,R.drawable.drawable1)
.build()
.thenAccept { texture ->
mustacheTexture = texture
}
Texture.builder()
.setSource(this,R.drawable.drawable2)
.build()
.thenAccept {
texture ->
fullBeardTexture = texture
}
Texture.builder()
.setSource(this,R.drawable.drawable3)
.build()
.thenAccept {
texture -> fullBeardBrownTexture = texture
}
sceneView.session
?.getAllTrackables(AugmentedFace::class.java)?.let {
for (f in it) {
if (!faceNodeMap.containsKey(f)) {
//Parent node
val faceNode = AugmentedFaceNode(f)
faceNode.setParent(scene)
//child nodes
val mustacheNode = getMustacheNode(f,faceNode)
val beardNode = getBeardNode(f,faceNode)
val beardfullNode = getFullBeardNode(f,faceNode)
faceNode.addChild(mustacheNode)
faceNode.addChild(beardNode)
faceNode.addChild(beardfullNode)
faceNodeMap.put(f,faceNode)
}
}
private fun getMustacheNode(f: AugmentedFace,parentNode: AugmentedFaceNode): Node {
val faceNode = AugmentedFaceNode(f)
faceNode.setParent(parentNode)
faceNode.faceMeshTexture = mustacheTexture
faceNode.localScale = Vector3(1.0f,1.0f,1.1f)
return faceNode;
}
private fun getBeardNode(f: AugmentedFace,parentNode: AugmentedFaceNode): Node {
val faceNode = AugmentedFaceNode(f)
faceNode.setParent(parentNode)
faceNode.faceMeshTexture = fullBeardTexture
faceNode.localScale = Vector3(1.0f,1.15f)
return faceNode;
}
private fun getFullBeardNode(f: AugmentedFace,parentNode: AugmentedFaceNode): Node {
val faceNode = AugmentedFaceNode(f)
faceNode.setParent(parentNode)
faceNode.faceMeshTexture = fullBeardBrownTexture
faceNode.localScale = Vector3(1.0f,1.05f,1.01f)
return faceNode;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。