Camera frustum mesh

I want to obtain a mesh to represent the frustum of a camera. I’ve found in this forum some help and my current code is:

[java]ShadowUtil.updateFrustumPoints2(viewPort.getCamera(), points);

rootNode.attachChild(createFrustum(points, assetManager));[/java]

[java]private Geometry createFrustum(Vector3f[] pts, AssetManager assetManager) {

WireFrustum frustum = new WireFrustum(pts);

Geometry frustumMdl = new Geometry(“f”, frustum);



frustumMdl.setMaterial(new Material(assetManager, “Common/MatDefs/Misc/WireColor.j3md”));

frustumMdl.getMaterial().setColor(“m_Color”, ColorRGBA.White);

return frustumMdl;


However, the problem is that this code generates only the wire frustum and I need to obtain a “solid” mesh. I have changed the material but this is not enough and the problem is related to the mesh. As there exists a class “Wirefrustum” that extends “Mesh” but not a “Frustum” one, how could I obtain the “solid” mesh?

I think that maybe I could use the “Dome” class to create a pyramid representing the frustum, but I don’t know how to use the points vector returned by ShadowUtil.updateFrustumPoints2(viewPort.getCamera(), points) in this class.

Thank you very much for your time.

Did you look into the WireFrustum code?

copy it, name it PlainFrustum, changeline 66 to




then instead of the wireColor material definition use the unshaded…

it should work

also don’t use “m_Color” use “Color” for the material parameter name

Thank you, but I still have a problem. Now the sides of the frustum are missing as you can see in the following picture:

try this


I have tried it but sides of the frustum are still missing. It could be related to the following in the PlainFrustum class?

setBuffer(Type.Position, 3, BufferUtils.createFloatBuffer(points));