Как вариант, что если к каждому юниту прикрепить дополнительный объект, нужного размера круг с тегом, который делает его невидимым для основной камеры, но видимым для дополнительной, которая рендерит эти объекты в текстуру через Render Texture? Потом можно использовать полученную текстуру для шейдера тумана. Эти "круги" могут уже иметь полупрозрачности и более сложную форму. По идее должно все быстро работать, но нужно Unity Pro. Я так понимаю, что это и есть практически ваш первый вариант, может пригодится.
Опишите пожалуйста подробнее ваш пример с деревом, не сильно понял.