2010-07-23 8 views

Répondre

1

Set useOwnContainer à true ajouter le filtre:

your3DObject.useOwnContainer = true; 
your3DObject.filters = [new BlurFilter(4,4,2)]; 

Lorsque vous définissez useOwnContainer true, une nouvelle DisplayObject 2d est créé pour rendre la projection 3D dans, et vous pouvez appliquer des propriétés habituelles de DisplayObject à cette.

Andy Zupko a un good post à ce sujet et les couches de rendu. L'utilisation de cette option entraînera des coûts supplémentaires pour votre processeur, utilisez-la judicieusement. Par exemple dans le twigital j'ai travaillé sur disturb media nous avons utilisé un Glow pour le calque qui contient tous les caractères, pas en couches de rendu inidividual pour chaque caractère . Sur d'autres projets, nous avons «cuit» les filtres en bitmaps et les avons utilisés, ce qui signifiait un peu plus de mémoire, mais libérait un peu le processeur pour d'autres tâches.

HTH

+0

BTW avez-vous vu des extensions isométriques opensourse pour PV3d? – Rella

+1

@Ole Jak Vous n'avez besoin d'aucune 'extension' pour cela, il vous suffit de définir la propriété ortho de la caméra sur true (http://www.flashbookmarks.com/PV3D-GreatWhite-DOC/org/papervision3d/core/proto /CameraObject3D.html#ortho) Cela vous donnera l'aspect isométrique, il vous suffit de placer l'appareil photo correctement pour obtenir l'angle isométrique dont vous avez besoin (28,8, 30, 45 degrés, etc.) Sans rapport avec Papervision, il y a quelques bibliothèques isométriques as3 comme: http://www.ffilmation.org/website/ et http://code.google.com/p/as3isolib/ –

1

Je ne suis pas familier avec Papervision 3D, mais le flou en 3D est normalement juste flou en 2D. Vous choisissez l'objet que vous voulez flou, déterminez le flou que vous voulez pour cet objet, puis appliquez un flou 2D avant de composer d'autres objets dans la scène.

Ceci est une tricherie car en principe, différentes parties de l'objet peuvent nécessiter différents degrés de flou (profondeur de champ). Mais ce n'est pas la seule triche dans les graphiques 3D.

Cela dit, il existe d'autres approches. Ray-tracing peut donner de véritables effets de profondeur de champ (si vous êtes prêt à payer les coûts de rendu). Il est également possible d'appliquer un flou à une grille de "voxel" 3D au lieu d'une grille de pixels 2D - bien que j'imagine que cela soit plus utile pour lisser les formes par exemple. scanners médicaux que pour donner des effets de profondeur de champ.

+0

Je ne veux pas de triche DOF ou 2d) J'ai besoin d'un vrai flou. Sur l'objet 3D. (Je sais que ça peut être difficile à imaginer - un vrai flou 3d ou un vrai objet 3D mais je crois que cela peut être fait.) Je ne sais pas comment faire une telle chose) – Rella

+0

Autre que ray-tracing, tout est une triche. Par exemple, vous pouvez flouter chaque pixel en fonction de la distance du tampon Z. C'est juste une approximation plus proche de la vraie profondeur de champ, et bien sûr, vous êtes déjà dans le territoire "écrire mon propre moteur de rendu 3D". Même dans le ray-tracing, la profondeur de champ est probablement souvent truquée, car le vrai ray-tracing de profondeur de champ est extrêmement coûteux en temps de traitement. Lorsque la mise au point nécessite un seul rayon par pixel (ou plusieurs pour l'anti-aliassage), une profondeur de champ précise peut facilement atteindre des milliers de rayons par pixel - peut-être des millions. – Steve314

+0

Le point clé est que dans la vraie vie, chaque photon est en fait un processeur parallèle à but spécifique contribuant au calcul "que puis-je voir". Les ordinateurs n'ont pas le luxe du traitement parallèle à cette échelle, ils doivent donc utiliser des approximations de raccourci. – Steve314

1

Le flou est une opération 2D, essayez de rendre l'objet en texture et de rendre floue cette texture.

Questions connexes