//此方法用于创建锚点节点
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