如何在arcore场景中更改所选模型的颜色??我正在使用颜色选择器



//此方法用于创建锚点节点

private void addNodeToScene(ArFragment片段,锚点,可渲染({AnchorNode AnchorNode=新的AnchorNode(锚点(;TransformableNode node=新的TransformableNode(fragment.getTransformationSystem(((;node.setRenderable(可渲染(;node.setPParent(anchorNode(;fragment.getArSceneView((.getScene((.addChild(anchorNode(;node.select((;颜色颜色=新颜色((;lRenderable=可渲染;

//this using the given method to change color
//renderable.getMaterial(1).setFloat3("baseColorTint", 1, 1, 0);
}

//我正在使用颜色选择器生成r,b,g

objimage.setOnTouchListener(新视图.OnTouchListener(

{@覆盖

public boolean onTouch(View v,MotionEvent事件(

if(event.getAction((==MotionEvent.ACTION_DOWN||event.getAction((==MotionEvent.ACTION_MOVE(

{
if (objimage.getWidth() > event.getX() && event.getX() > 0 && event.getY() > 0 && 

objimage.getHeight((>event.getY(((

bmap = objimage.getDrawingCache();

int pixel=bmap.getPixel((int(event.getX((,(int(event.getY(((;

//getting rbg
float r = red(pixel);
float b = Color.blue(pixel);
float g = Color.green(pixel);
if (  lRenderable!=null  )
{
//set the rbg but i dont know how to use it properly
lRenderable.getMaterial().setFloat3("baseColorTint", new Color( r,  g,  b));
}
}
}
return true;
}
});

您可以将可渲染图的颜色设置如下-本质上,这是对原始可渲染图进行复制,然后更改其颜色:

ModelRenderable newColorCopyofRenderable = originalRenderable.makeCopy();
newColorCopyofRenderable.getMaterial().setFloat3("baseColorTint", 
new Color(android.graphics.Color.rgb(255,0,0)));
yourAnchroNode.setRenderable(newColorCopyofRenderable);

你可以在这里看到一个工作示例-当你触摸这个应用程序中的节点时,它的颜色将从绿色变为红色:https://github.com/mickod/LineView

最新更新