render.Model vs ClientsideModel

I notice that when using ClientsideModel, when updating the model’s position every frame (in a HUDPaint hook) I get a 1-frame lag which is bad since I want it to follow the player’s eye vector smoothly.
This didn’t happen when using render.Model.
local ent = ClientsideModel( model_path, RENDERGROUP_BOTH )


hook.Add( "HUDPaint", "DrawModel", function()
			
		ent:SetPos( EyeVector()*64 )+EyePos()
		ent:SetAngles( EyeAngles() )
end)


The above is what I’m doing.

According to gmodwiki.net, render.Model is “ideal for rendering something for one frame - like generating a spawnicon, but if you want to render it every frame cache a ClientsideModel”. Why is this, and what does “Cache a ClientsideModel” actually mean?

Make the clientside model OUTSIDE of the hook.

Sorry; That was a mistake. It really should be



local ent = ClientsideModel( model_path, RENDERGROUP_BOTH )	
hook.Add( "HUDPaint", "DrawModel", function()
			
		ent:SetPos( EyeVector()*64 )+EyePos()
		ent:SetAngles( EyeAngles() )
end)

Try using the RenderScene or PreRender hook instead of HUDPaint.

Doesn’t seem to make any difference

When I’m using CSModels to “attach” them to something I tend to run SetNoDraw( true ) on them then manually render the model inside the hook with DrawModel(). Try that, I’ve never noticed any positioning delay with that method.

Draw ClientsideModels in POST Render hooks, not HUDPaint.