Most of them are related to something being clear, except 뻔하다. 뻔하다 usually means the speaker can tell something even without seeing, or it is so obvious it doesn't take much effort to judge.
맑다 = clear, as in translucent. 날씨가 맑다, 물이 맑다, 맑은 눈동자, 맑은 정신.
분명하다 = clear, as in easily discernible. 분명하게 보이는 발자국. 그의 말은 거짓임이 분명하다.
명백하다 = evident beyond doubt. 그의 의도는 명백해졌다.
뻔하다 = predictably obvious. 그는 싫다고 말할 게 뻔하다. 뻔한 거짓말 (an obvious lie).
선명하다 = distinct and vivid, so as to stand out from the others. 선명한 바퀴 자국 (distinct tire track).
맑다 and 선명하다 typically (but not always) describe a physical aspect.
분명하다 applies both physically and conceptually, while 명백하다 is mostly conceptual.
뻔하다 is usually for non-physical things (like behavior, reaction, future development, etc).