Title: Fourrure TempsRel sur des surfaces arbitraires
1Fourrure Temps-Réel sur des surfaces arbitraires
- Auteurs Lengyel, Praun, Finkelstein, Hoppe
- Exposant Tom Cox
- Traduction Bismi Mustapha
- CSci 5980 Nov 29, 2001
- Trad. Mai 2002
2Articles Présentés
- Real-Time FurJerome E. LengyelEurographics
Rendering Workshop 2000 - Real-Time Fur over Arbitrary Surfaces Jerome
Lengyel, Emil Praun, Adam Finkelstein, Hugues
HoppeACM 2001 Symposium on Interactive 3D
Graphics - http//www.research.microsoft.com/jedl/
3Fourrure Temps-Réel
- Représentation LOD pour le tracé de la fourrure
en fonction de la distance de vue - Lillumination dynamique avec des ombres soft est
consistent avec la représentation LOD
43 Level-of-Detail Overview
- Les représentations LOD de la fourrure tiennent
compte de la distance de vue
5Example Level of Detail
64 Modélisation Geométrique des cheveux
- Premierement, planter la surface avec les points
de départ des poils en peignant directement les
graines à la surface du mesh - Puis, faire pousser les grains comme des
trajectoires de systèmes de particules, et
ajuster les cheveux - Paramètres couleur, diamètre, orientation,
longueur, courbure, rayon de courbure
75 Génération Concentrique des Coquilles
- Afin de créer le système de coordonnées sur
lequel positionner les textures volumiques,
utilisez un simple offset sur les positions des
vertex sur un nombre prédéfini de niveaux, m, et
de taille, h. - La connectivité et les coodonnées de textures sur
le mesh offset sont identiques au mesh input. - Pour le vertex i de niveau l,
86 Filtrage Volumique (1)
- Puisque la gémotrie du cheveu est à une echélle
plus fine que la grille texel concerné, il est
représenté par une ligne moyenne - Chaque ligne de chaque cheveux est échantilloné à
haute résolution, transformé des les coordonées
de textures locales, et pondéré pare laire de
section du cheveu.
96 Filtrage Volumique (2)
- Soit Sijk un sample texel à filtrer, wijk(p) le
noyeau texel, et Area(p) laire de lintersection
du cheveu au point sample.
107 Illumination des cheveux (1)
- Nous utilisons deux techniques, une qui
fonctionne par vertex et une par pixel - Quand les ombres lightmap (prochaine section)
sont actives, on utilise lillumination par
vertex. Sinon, on utilise lillumination par
pixel.
117 Illumination des cheveux (2)
- Par vextex.
- Choisissez la bonne normale afin de faire
fonctionner léclairage hardware standard en
projetant le vecteur lumière L et le demi vecteur
spéculaire H sur le disque des normales définie
par la tangente du cheveux T. - E est le vecteur vue.
127 Illumination des cheveux (3)
- Technique par pixel
- Fonctionne uniquement avec les lumières
directionnelles et un spectateur non-local (une
seule direction de vue pour tout les vertices), - Utilisez la matrice hardware de texture pour
encoder la position de la lumière et des yeux, et
une table 2D pour calculer lillumination par
pixel.
138 Ombres Soft
- Développer une technique de rendu des ombres soft
qui contribue à une sensation dillumination
globale. - Premièrement, la scène est rendu du point de vue
de la lumière en utilisant une combinaison mesh
identifié/carte UV texture - Ensuite, sur le processeur principal, on fait une
passe sur le rendu du point de vue de la lumière,
en séléctionnant les échantillons qui
correspondent à chaque mesh.
14Ombres Soft
- Troisièmement, effacer le lightmap de chaque mesh
au niveau déclairage ambient. - Appliquez une petite Gaussienne pour chaque
sample du point de vue de la lumière afin de
remplir les trous entre les samples manquants.
159 Examples
- Rendu sur un Intel PIII 733 MHz et une carte
vidéo Guillemot 3D Prophet DDR-DVI basé sur le
processeur Nvidia GeForce256, en utilisant les
API Microsoft DirectDraw et Direct3D. - Le filtrage des textures volumiques des exemples
suivant ont chacun pris plusieurs minutes.
16Texture volumique et ombrage soft
17Utilisation future de ces méthodes
18Motivation
- Adresser deux limitation de la méthode par
coquille la paramétrisation et la taille
mémoire de la texture à laide de la méthode
des lapped textures de Praun et al. - Adresser une troisième limitation le problème
de la silhouette à laide dune méthode pour
rendre des poils texturés normaux à la surface
aux silhouettes
19Fourrure Temps-Réel sur des surfaces arbitraires
- Soit un mesh triangulaire représentant un
personnage et un modèle paramétrique pour les
cheveux - Avant léxécution, réaliser deux opérations
- geometry preprocessing calculer les patches de
texture lapped paramétrisant la surface - texture preprocessing aggrandir le modèle
géométrique dun patch de chevelure et
lechantilloner sur la coquille et les textures
fin - A léxécution
- Rendre une série de coquille concentrique texturé
- Rendre plusieurs nageoire perpendiculaire à la
surface
20Procedure
- Au pre-process, simuler les cheveux avec un
système de particule, et léchantillonner dans
une texture volumique. - Paramétriser la texture sur la surface dune
topologie arbitraire à laide des lapped
textures - A léxécution, rendre les patches de textures
volumique comme une série de coquilles
concentrique semi-transparente. - Afin daméliorer la qualité aux silhouettes,
placez les ailerons normalement à la surface,
rendu à laide de textures conventionneles 2D
échantillonées à partir de texture volumique dans
la direction de la pousse des cheveux.
21Avantages
- Générer des images convaincante de fourrure à un
frame rate interactif pour des modèle de
compléxité moyenne. - Permettre la modification en temps réel des
conditions de vues et déclairage, aussi bien que
le controle local de la couleur des cheveux, de
leurs longueurs et de leurs directions.
222.1 Geometry preprocessing
23Texture des coquilles
- La méthode des coquilles crée une image à 4
niveaux (RGBA) pour chaque niveux du modèle de la
coquille en appliquant une grille sur la boite
englobante contenant les mêches de cheveux.
242.2 Texture preprocessing
25Fin texture
- Définir une seule instance de texture fin à
utiliser sur les bords prêt de la silhouette du
modèle.
26Final image (abc)
27Rendu Surfacique (a).
- Rendre dabord une version opaque du mesh, en
remplissant le Z-buffer.
28Fin rendering (b).
- Puis, rendre les fins texturés.
- Chaque plaque est un quadrilatére qui est attaché
au coté du mesh et sétire dans la direction
normale à la surface
29Rendu des coquilles (c).
- Rendre les coquilles offset de lintérieur à
lextérieur. - Pour chaque niveau, ajouter tout les patches des
textures lapped (semi-transparent) sur ce qui à
déjà été rendu.
30Final image (d) (abc)
31(e) fins (not alpha-blended)
32(f) shells (overlapped patches)
33(g) 8-shell level of detail vs (j) 4-shell level
of detail
34(h) globally lengthened hair
35(i) globally combed hair
36- Les textures sont échantillonées en 16 couches
- Les images de chaque couche ont une résolution de
128 x 128 pixels. - AMD-K7 700MHz PC avec une carte NVIDIA GeForce
DDR 32MB, en utilisant Microsoft DirectX 7.
37Chat
38Araigné
39Chien
40Singe
41Dés