Libgdx 3D中显示纹理

包装成Actor

    Decal decal = Decal.newDecal(new TextureRegion(Asset.getAsset().getTexture(kitchen/*"kitchen/Texture/Bread.png"*/)),true);
        DecalActor decalActor = new DecalActor(decal);
        addActor3D(decalActor);
        decalActor.setFromAxis(1,0,0,90);
        decalActor.setScale(0.2f,0.2f,0.2f);
        decalActor.setPosition(0,100,20);

绘制


public class DecalActor extends BaseActor3D{
    private Decal decal;

    public DecalActor(Decal decal){
        this.decal = decal;
    }

    private Vector3 positionV3 = new Vector3();
    private Quaternion rotationP = new Quaternion();
    private Vector3 scaleV3 = new Vector3();
    @Override
    protected void drawDecal(DecalBatch decalBatch) {
        super.drawDecal(decalBatch);
        BaseActor3DGroup parent3D1 = parent3D;
        Matrix4 actorMatrix1 = parent3D1.getActorMatrix();
        actorMatrix1.getTranslation(positionV3);
        actorMatrix1.getRotation(rotationP);
        actorMatrix1.getScale(scaleV3);
        decal.setPosition(positionV3.add(getPosition()));
        decal.setScale(scaleV3.x*getScale().x,scaleV3.y*getScale().y);
        decal.setRotation(rotationP.mul(rotation));
        decalBatch.add(decal);
    }
}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容