Also wenn die Diffuse Farbe ändern willscht, dann würd ich sagen das du die Diffuse Farbe in einem separent VB hälst (Vertex Deklaration). Da du sonst viel zu viele Daten über den Bus schiebst. Dann sollte das natürlich auch nicht in jedem Frame passieren. Sondern immer nur dann wenn sich der Bereich au ändert. Des weiteren sollte die Diffuse Farbe noch Temporär auf der Platte liegen. Da sind die Änderungen sehr viel schneller durchgeführt und dann vor dem Rendern einfach immer ein update durchführen
Eine andere Möglichkeit wäre, wenn du eine Textur nimmst die einen Kreis enthält. Die Textur ist dann Transparent. Wenn du z.B. einen Wachturm hast, bekommt dieser eine solche Kreistextur. Die bekommt dann noch einen Radius und dann wird die einfach über das Terrain gerendert. Ist nicht ganz einfach da Höhenunterschiede beachtet werden müssen. Des weiteren ist darauf zu achten, das sich die Kreise au überlappen können. Hier muss dann eine Lösung gefunden werden.
Eine andere Möglichkeit fällt mir im Moment nicht ein.