Add texture to some part of 3D model(向3D模型的某些部分添加纹理)
本文介绍了向3D模型的某些部分添加纹理的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在实现ARKit/SceneKit时面临一个问题。我只想将纹理添加到3D模型的某些部分(例如,汽车的3D模型,我想在其中更改车轮和镜子的纹理)。
let dragonScene = SCNScene(named: "art.scnassets/Dragon_Baked_Actions_fbx_6.dae")!
let position = anchor.transform
for childNode in dragonScene.rootNode.childNodes {
self.dragonNode.addChildNode(childNode)
}
let scale:Float = 0.01
self.dragonNode.scale = SCNVector3(x: scale, y: scale, z: scale)
self.dragonNode.position = SCNVector3(x: position.columns.3.x, y: position.columns.3.y, z: position.columns.3.z)
self.sceneView.scene.rootNode.addChildNode(self.dragonNode)
let material = SCNMaterial()
material.diffuse.contents = UIImage(named: "Fire_A_2.png")
material.isDoubleSided = true
material.diffuse.wrapT = SCNWrapMode.repeat
material.diffuse.wrapS = SCNWrapMode.repeat
material.isDoubleSided = true
self.dragonNode.childNodes.first?.geometry!.replaceMaterial(at: 0, with: material)
推荐答案
如果模型的每个部分都是单独的3D对象,则可以轻松地在Xcode中更改其纹理。但如果您有一个单一模型(即所谓的one-piece
模型),您只能通过UV-mapping更改其特定部分的纹理(您可以在3dsmax、Maya、Cinema4D、Blender等中进行更改)。
以下是UV映射纹理的外观:
考虑一下,Xcode的Scene graph
编辑器根本不适合UV映射。在Xcode中,您只能应用预制的UV映射纹理。
这篇关于向3D模型的某些部分添加纹理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:向3D模型的某些部分添加纹理
基础教程推荐
猜你喜欢
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01