Quote: "AL uses multiple cameras and renders and I think lock object doesn't actually keep the object in the scene."
I doubt that alone is the problem. The following simple demo works for me.
set display mode desktop width(), desktop height(), 32
sync on : sync rate 60 : sync
autocam off
position camera 0, 0, -500
point camera 0, 0, 0
make camera 1
position camera 1, 0, 0, -500
point camera 1, 0, 0, 0
set camera to image 1, 1, 128, 128
` make some objects in the scene
for obj = 1 to 10
make object cube obj, 100
position object obj, rnd(1000)-500, rnd(1000)-500, rnd(50)
next obj
` create the locked object
make object plain 100, 100, 100
position object 100, 0, 0, 500
set object emissive 100, rgb(255,0,0)
set object ambient 100, 0
lock object on 100
repeat
control camera using arrowkeys 0, 0.3, 0.2
control camera using arrowkeys 1, 0.3, 0.2
paste image 1, 0, 0
sync
until spacekey()
save image "test lock object.png", 1
end
As you can see, the locked object is rendered correctly to image 1. Perhaps the object's information is being used incorrectly in one of the shaders?