2010-03-04 3 views
3

Je sais que OpenGL a des fonctionnalités qui permettent le dessin de brouillard. Mais, comment dessiner le brouillard (fumée) en utilisant Core Graphics? Est-ce une tâche difficile? Et, quels concepts pour l'implémentation de cette tâche?Dessin de brouillard utilisant Core Graphics

+0

Que diable sont les graphiques de base? –

+0

Miha Markic: Une API de dessin. http://developer.apple.com/mac/library/documentation/GraphicsImaging/Reference/CoreGraphicsReferenceCollection/ –

Répondre

3

Je ne suis pas au courant d'un support intégré pour le brouillard dans Core Graphics, sauf dans la mesure où Core Graphics peut vous donner accès à une fenêtre OpenGL. D'un point de vue graphique, le dessin du brouillard est très différent du dessin de la fumée. Le dessin du brouillard est conceptuellement simple: pour chaque pixel, vous suivez la distance entre la caméra et le point le plus proche. Les points éloignés de la caméra (après une coupure «lointaine» arbitraire) disparaissent en une couleur uniforme, généralement gris clair. Les points qui sont plus proches que certains seuils «proches» arbitraires ne sont pas modifiés du tout. Et la couleur des points intermédiaires est une interpolation de la couleur naturelle du point et de la couleur du brouillard. Exactement ce genre d'interpolation que vous faites est principalement un choix artistique.

Dessiner de la fumée est un problème plus difficile. Une approche commune consiste à utiliser un système de particules. Chaque particule dans le système représente une touffe de fumée. Les plus grosses particules sont plus rapides mais pas aussi réalistes. Ensuite, vous animerez les morceaux de fumée en utilisant n'importe quelle approche qui vous donne l'apparence que vous voulez, et dessinez un blob translucide pour chaque particule de fumée simulée.

Questions connexes