There's no way use a renderhook for this. That's would be like selling your car while you are sitting inside of it. If you want to do that, just iterate through your objects and switch them. You might want to use some MVC approach for this, so that your actual object is decoubled from the view (complex or billboard). If that's not feasible, you might try to add the billboard as a child of the complex object and switch visibility of those two based on distance to the player.