Drawing with cam.Start3D

I want to draw a roundedbox in 3D space, this code works fine



hook.Add( "PostDrawEffects", "OnPaint", function()
	local pos = LocalPlayer():GetPos()
	local ang = LocalPlayer():GetAngles()
 
	cam.Start3D(pos + ang:Forward() * 32 + ang:Up() * 8, LocalPlayer():EyeAngles())
	draw.RoundedBox(6, 50, 50, 100, 100, Color( 255, 255, 255 ))
	cam.End3D()
end)


However it brings back this mess:

In what way should I do this so it draws normally? Thanks.

Use proper hook for the task. PostDrawTranslucentRenderables.

[editline]31st August 2014[/editline]

If you want to draw screens or w/e, you better use 3D2D camera, not 3d.

Progress!

I tried this:



hook.Add( "PostDrawTranslucentRenderables", "OnPaint", function()
	local pos = Vector(x,y,z)
	local ang = LocalPlayer():GetAngles()
 
	cam.Start3D2D(pos + ang:Forward() * 32 + ang:Up() * 8, LocalPlayer():EyeAngles(), 1)
	draw.RoundedBox(6, 50, 50, 100, 100, Color( 255, 255, 255 ))
	cam.End3D2D()
end)


But now the boxs moves around with the players view angle.

EDIT: Solved