Пользовательская текстура при рендеринге плоскости в ARCore - Android

Компилятор не знает, какой экземпляр этой ссылки указывается во время выполнения, поэтому он позволит вам получить доступ к доступным методам суперкласса во время компиляции

См.

0
задан saurabh 13 July 2018 в 08:53
поделиться

1 ответ

Вы можете установить текстуру на материал, используемый средством рендеринга плоскости.

Например, если у вас есть png в активах для текстуры с именем «trigrid.png»:

setPlaneTexture("trigrid.png");

  /**
   * Sets the plane renderer texture.
   * @param texturePath - Path to texture to use in the assets directory.
   */
  private void setPlaneTexture(String texturePath) {

    Texture.Sampler sampler = Texture.Sampler.builder()
            .setMinFilter(Texture.Sampler.MinFilter.LINEAR_MIPMAP_LINEAR)
            .setMagFilter(Texture.Sampler.MagFilter.LINEAR)
            .setWrapModeR(Texture.Sampler.WrapMode.REPEAT)
            .setWrapModeS(Texture.Sampler.WrapMode.REPEAT)
            .setWrapModeT(Texture.Sampler.WrapMode.REPEAT)
            .build();

    Texture.builder().setSource(() -> getAssets().open(texturePath))
            .setSampler(sampler)
            .build().thenAccept((texture) -> {
      arSceneView.getPlaneRenderer().getMaterial()
              .thenAccept((material) -> {
                material.setTexture(MATERIAL_TEXTURE, texture);
                material.setFloat(MATERIAL_UV_SCALE,10f);
              });
    }).exceptionally(ex ->{ Log.e(TAG, "Failed to read an asset file", ex);
    return null;} );
  }
1
ответ дан Clayton Wilkinson 17 August 2018 в 13:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: