Non-renderable objects with constant screen size

I am using Blender to examine a 3d point cloud and camera set. I would like each point to be treated as a separate object that can be selected and moved individually. I tried representing points as “empty objects” but it does not have an option to render them as pure points. If I import a PLY point cloud, it renders them the way I want, but I’m not sure how to create this type of point.

In addition, I am wondering if there is a way to change the rendering behavior of Blender so that cameras are rendered with a constant size in screen space (like in 3ds max). In Blender, a camera appears to get “smaller” when viewed from another camera when I move further away, and I don’t want that to happen.

These are the commands I’m currently using:

bpy.ops.object.camera_add(view_align=True, enter_editmode=False, location=(-1058.29, -997.231, 546.555), rotation=(1.10871, 0.0132652, 1.14827), layers=(True, False, False, False, False, False, False, False, False, False, False, False, 
False, False, False, False, False, False, False, False))

bpy.ops.object.empty_add(type='PLAIN_AXES', view_align=False, location=(-213.439, 91.0845, -122.34), layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))


Update: I figured out how to properly do the point cloud rendering, where each point is a sepate object!

First, I create a simple mesh for a point object:

mesh = bpy.data.meshes.new("point")
mesh.from_pydata([(0,0,0)],[],[])

Then, for each point in the cloud, I create an object using that mesh, assign it a position, and add it into the scene graph:


object = bpy.data.objects.new("X0000",mesh)
object.location = (-17.8356, -14.0461, 0)
bpy.context.scene.objects.link(object)

Yes, it works!