我无法在从Google场景表单插件转换的3D模型上应用纹理。 我只能在“安迪”模型上添加纹理, 所有自定义模型都没有任何纹理。
我尝试应用在github上发现的纹理技术,这是我发现的链接 https://github.com/google-ar/sceneform-android-sdk/issues/41
std::pair
我希望按钮单击时选择的纹理会应用于ar core android中投影的3d模型
答案 0 :(得分:0)
并非所有模型都具有预定义的纹理采样器。因此,如果您尝试为没有任何纹理通道的模型设置纹理,则必须首先为其设置自定义材质。
当您通过android studio将模型转换为sfb时,您可以指定一个自定义材质文件。这里是一个可以设置自定义纹理的材料的简单示例:
material {
name : "Textured material",
parameters : [
{
type : sampler2d,
name : texture
}
],
requires : [
uv0
],
shadingModel : lit,
blending : opaque
}
fragment {
void material(inout MaterialInputs material) {
prepareMaterial(material);
material.baseColor = texture(materialParams_texture, getUV0());
}
}
只需将其另存为.mat文件,使用此材料创建sfb,然后从上面进行编码即可。如果您想在运行时应用材质,那么暂时没有小解决方法是不可能的。只需创建一个简单的3D模型(例如三角形),然后使用这种材料将其转换为sfb。然后在运行时加载材料并从中复制材料。现在,当您加载要显示的模型时,可以使用自定义模型简单地覆盖原始材料。