Мне не известно о какой-либо встроенной поддержке тумана в Core Graphics, за исключением того, что Core Graphics может предоставить вам доступ к окну просмотра OpenGL.
С точки зрения графики рисование тумана очень отличается от рисования дымом.
Рисование тумана концептуально просто: для каждого пикселя вы отслеживаете расстояние от камеры до ближайшей точки. Точки, которые находятся далеко от камеры (после произвольного «дальнего» обрезания), исчезают до какого-то однородного цвета, обычно светло-серого. Точки, которые находятся ближе, чем произвольная «ближняя» отсечка, вообще не модифицируются. А цвет точек между ними - это некоторая интерполяция естественного цвета точки и цвета тумана. Какой тип интерполяции вы делаете, это в основном художественный выбор.
Рисовать дым - сложная задача. Одним из распространенных подходов является использование системы частиц. Каждая частица в системе представляет собой клуб дыма. Более крупные частицы быстрее, но выглядят не так реалистично. Затем вы анимируете кусочки дыма, используя любой подход, который дает вам желаемый вид, и рисуете полупрозрачный шарик для каждой моделируемой частицы дыма.