2014-09-07 2 views
1

Je travaille sur un logiciel (Ruby - Sketchup) pour calculer le rayonnement (soleil, ciel et bâtiments environnants) dans le développement urbain au niveau des piétons. Le but final est de pouvoir créer une carte de contour qui montre le niveau de rayonnement total. Avec le rayonnement total, je veux dire ondes courtes (lumière) et ondes longues (chaleur). (Pour vous donner une idée: http://www.iaacblog.com/maa2011-2012-digitaltools/files/2012/01/Insolation-Analysis-All-Year.jpg)Algorithme de masque d'ombrage pour les calculs de rayonnement

example

Je sais qu'il ya plusieurs logiciels existants qui font cela, mais je dois écrire mon propre que ce calcul est seulement une partie d'un flux de travail plus complexe.

Le (évident) pseudo-code est le suivant:

Select and mesh surface for analysis 
From each point of the mesh 
    Cast n (see below) rays in the upper hemisphere (precalculated) 
    For each ray check whether it is in shade 
     If in shade => Extract properties from intersected surface 
     If not in shade => Flag it 
    loop 
    loop 
loop 

L'approche ci-dessus est la force brute, mais il est le seul que je peux penser. Le temps de calcul augmente avec la quatrième puissance de la précision (Dx, Dy, Dazimth, Dtilt). Je sais que les logiciels comme Radiance utilisent une approche Montecarlo pour réduire le nombre de rayons.

Comme vous pouvez l'imaginer, la précision du calcul pour un point spécifique du maillage dépend fortement de la précision de la subdivision skydome. De même, la précision sur la surface dépend de la grossièreté de la maille.

Je pensais à une approche différente utilisant un raffinement adaptatif basé sur les résultats des calculs. Le raffinement pourrait fonctionner pour la surface analysée et le skydome. Si les résultats entre deux points adjacents diffèrent de plus d'une valeur seuil, un raffinement sera effectué. Cela se fait généralement en simulation de fluides, mais je n'ai rien trouvé à propos de la simulation de la lumière.

Aussi je me demande s'il y a des algorithmes, à partir de l'infographie par exemple, qui permettraient de minimiser le nombre de calculs. Par exemple: vérifiez la hauteur maximale de l'environnement afin d'exclure certaines parties du skydome pour certains points.

Je n'ai pas besoin d'une extrême précision car je ne fais pas de rendu. Ma priorité est la vitesse en ce moment.

Une suggestion sur l'approche?

Merci

n rayons Au moment où je subdivisent le ciel en azimut constant et d'inclinaison étapes; cela provoque des angles solides irréguliers. Il existe d'autres subdivisions (par exemple Tregenza) qui maintiennent un angle solide constant.

EDIT: Réponse aux grandes questions de Spektre

  1. frame Time. Je cours une simulation pour chaque heure de l'année. Les données météorologiques sont extraites d'un fichier météo epw. Il contient, pour chaque heure, l'altitude et l'azimut solaire, le rayonnement direct, le rayonnement diffus, la nébulosité (pour les ondes longues diffuses atmosphériques). Mon algorithme calcule le masque d'ombre séparément puis il utilise ce masque d'ombre pour calculer le rayonnement sur la surface (et sur un piéton typique) pour chaque heure de l'année. C'est dans cette deuxième étape que j'ajoute le rayonnement réel. Dans la première étape, je viens de recueillir des informations sur la géométrie et les propriétés des différentes surfaces.

  2. Chemins solaires. Non, je ne le fais pas.Voir point 1

  3. Inclure le reflet des bâtiments? Pas pour le moment, mais je prévois de l'inclure comme une réflexion diffuse globale basée sur le facteur de vue du ciel. Je ne considère que la réflexion à ondes courtes du sol maintenant.

  4. Inclure la dissipation thermique des bâtiments? Absolument oui. C'est la raison pour laquelle j'ai écrit ce code moi-même. Ici, à Dubaï, c'est essentiel car les surfaces des bâtiments deviennent très, très chaudes.

  5. Surfaces albédo? Oui. Dans Skethcup j'ai associé un dictionnaire à chaque surface et dans ce dictionnaire j'inclue toutes les propriétés de surface: température, émissivité, etc. Actuellement les températures sont fixes (température ambiante si non assignée), mais je prévois, dans le futur , pour combiner ceci avec les résultats d'une simulation thermique dynamique de bâtiment qui calcule déjà toutes les températures de surfaces.

  6. Résolution de carte. La résolution est choisie par l'utilisateur et le maillage généré par l'algorithme. En termes d'échelle, je l'utilise pour les plans directeurs. La balance va de 100mx100m à 2000mx2000m. J'ai tendance à utiliser une résolution minimale de 2m. La limite est la mémoire et le temps de simulation. J'ai également la possibilité d'affiner des zones spécifiques avec un maillage beaucoup plus fin: par exemple des zones où il y a des restaurants ou d'autres commodités.

  7. Framerate. Je n'ai pas besoin de faire une animation. Les résultats sont exportés dans un fichier VTK et visualisés dans Paraview et animés là juste pour montrer pendant les présentations :-)

  8. Chaleur et lumière. Oui. Les ondes courtes et longues sont traitées séparément. Voir le point 4. La géolocalisation est utilisée uniquement pour sélectionner le bon fichier météo. Je ne calcule pas tous les composants du rayonnement. Les fichiers météo dont j'ai besoin ont mesuré les données. Ils ne sont pas géniaux, mais assez bons pour l'instant. https://www.lucidchart.com/documents/view/5ca88b92-9a21-40a8-aa3a-0ff7a5968142/0

+0

Eh bien, ce n'est pas très clair ce que vous demandez. Mais, vous avez un hémisphère qui projette une ombre et vous voulez savoir à tout point s'ils sont dans l'ombre? –

+0

J'essaie de faire un peu plus que ça. Je calcule le rayonnement total sur le sol. Quelque chose comme ça [link] (http://www.iaacblog.com/maa2011-2012-digitaltools/files/2011/12/Ecotect.jpg) – Rojj

+0

Je dirais qu'un moyen plus efficace serait de jeter les limites de le dôme au sol/objets. (En jetant je veux dire la projection.) La limite du dôme sur le sol/objet sera également continue - et tous les points à l'intérieur sont dans l'ombre .. –

Répondre

1

lumière visible

pour terrain de base mondiale relativement plat carte lumière j'utiliser des techniques de traçage intégration angulaire de texture au lieu de rayons d'ombre de projection. C'est beaucoup plus rapide avec presque le même résultat. Cela ne fonctionnera pas sur des sols non plats (beaucoup de grosses bosses qui projettent de plus grandes ombres et modifient également la zone d'absorption de la lumière active en anisotrope). Les zones urbaines sont généralement assez plat (inclinaison n'a pas d'importance) si la technique est la suivante:

  1. caméra et viewport

    la carte du sol est un écran cible pour définir le point de vue de la recherche souterraine vers Direction du soleil vers le haut. La résolution est au moins la résolution de votre carte et il n'y a pas de projection de perspective.

    shadow/light map rendering

  2. rendu carte lumière 1ère passe

    première carte claire avec le rayonnement complet (direct + diffus) (bleu clair) rendent alors bâtiments/objets mais avec un rayonnement diffus que (ombre) .Cela rendra la carte de base sans reflets et ou des ombres douces dans le Magenta rendu cible

  3. rendu carte lumière 2ème passe

    maintenant vous devez ajouter des faces construction (murs) réflexions pour que je prendrais tous les face à l'extérieur du bâtiment faisant face à des points de réflexion Sun ou assez chauffé et sur la carte lumière compute et rendre la réflexion directement à la carte

    reflections

    dans certaines parties tis vous pouvez ajouter raytracing pour vertex seulement pour le rendre plus précis et aussi pour inclure des réflexions multiples (bu dans ce cas, ne pas oublier d'ajouter la diffusion)

  4. écran cible du projet à la carte du rayonnement de destination

    juste projeter l'image cible rendu Magenta plan de masse (vert). Il est seulement transformer simple, linéaire ... affines

  5. post-traitement

    vous pouvez ajouter des ombres douces par le flou/lissage de la carte lumière. Pour le rendre plus précis, vous pouvez ajouter des informations à chaque pixel s'il s'agit d'une ombre ou d'un mur. Les murs réels ne sont que des pixels situés à 0 m de hauteur au-dessus du sol, ce qui vous permet d'utiliser directement les valeurs Z-buffer. Niveau de brouillage dépend des propriétés de diffusion de l'air et de pixels grossiers à 0m hauteur du sol ne sont pas floue du tout

IR

cela peut être effectué de manière similaire, mais la température se comporte un peu différemment ainsi je ferais plusieurs couches de la scène dans quelques altitudes au-dessus du sol formant un rendu de volume et ensuite post-traiter les transferts d'énergie entre les pixels et les couches. N'oubliez pas non plus d'ajouter l'effet rafraîchissant des plantes vertes et la vaporisation d'eau.

Je n'ai pas assez d'expérience dans ce domaine pour faire plus de suggestions Je suis plus habitué aux cartes de température pour les écarts de température très élevés dans des conditions et matériaux spécifiques et non les conditions extérieures.

PS. J'ai oublié l'albédo pour l'IR et la lumière visible est très différente pour de nombreux matériaux en particulier l'aluminium et certaines peintures murales

+0

Merci beaucoup d'avoir pris le temps de le faire. Après une première lecture, il semble qu'il ne considère pas le rayonnement de la partie du ciel qui ne sont pas dans la vue. Sont-ils regroupés dans le rayonnement diffus? L'IR est assez important car je calcule le rayonnement aussi la nuit. Le rayonnement vers le ciel est bon pour le refroidissement. J'utilise la carte de rayonnement comme l'une des composantes d'une «carte de confort». Dans un autre logiciel, je lance une simulation CFD pour calculer la vitesse de l'air locale. Je combine ensuite les deux cartes pour générer un indice de confort très détaillé qui prend en compte la morphologie de la zone. – Rojj

+0

Je ne pense pas que je puisse éviter de considérer l'ensemble du skydome. Radiance par exemple utilise d'abord une subdivision de skydome grossière et ensuite il affine dans les secteurs qui montrent un grand changement. – Rojj

+0

@Rojj oui le rayonnement diffus doit inclure toute la lumière du skydome. Il devrait être presque constant à la même altitude au-dessus du sol en même temps. Les différences sont seulement dans les parties près des plus grands bâtiments. Si vous faites des ombres douces appropriées (comme dans la puce 5), le résultat devrait être très similaire. Si vous avez besoin d'être plus précis, vous devez aussi utiliser le rendu volumétrique pour la diffusion atmosphérique (le lancer de rayons n'est pas suffisant pour IR mais dans ce cas vous devez inclure les conditions météorologiques locales comme les vents, etc. – Spektre

Questions connexes