Re: Questions à mac (en vrac): Ombre du Sun limitée en distance dans le Viewport ?

Posté par Matpi le 17/8/2016 8:40:47
Hello,

Je confirme ce que dit Thewada: qui dit GLSL dit rendu OpenGL, et qui dit OpenGL dit ombres sauvegardées dans une sorte de texture (shadow map), aux dimensions limitées.

Pour y remédier:

1a) tu peux effectivement modifier la taille de cette map: le paramètre s'appelle Shadow -> Frustum Size. Il est caché en mode rendu Internal, mais tu peux temporairement switcher sur rendu Blender Game pour l'afficher, et en repassant sous BI ces paramètres restent;

1b) alternativement tu peux l'atteindre par Python (taille par défaut: 10.0):
bpy.data.objects["<nom de ton sun>"].data.shadow_frustum_size = <taille souhaitée>


Tu peux également jouer avec les paramètres Size, Bias, etc. (à nouveau, dispos depuis le mode BGE).
Tu as une base d'info sur les ombres dans le BGE dans ce tuto:
http://gametutorials.tutorialsforblender3d.com/Shadows/Page1
A toi de tester jusqu'à quelle taille ça reste utilisable.

2) Sinon tu pourrais j'imagine simplement te promener dans ta scène avec ton sun: un sun n'a (presque) par définition pas de position définie, seule son orientation compte (du moins en mode BI). Donc si tu te contentes de le déplacer, le rendu BI n'en sera pas modifié mais tu auras localement les ombres souhaitées dans le viewport.

C'est d'ailleurs souvent ce genre de technique qui est utilisée dans le BGE, où le mode d'affichage reste GLSL: on s'arrange pour parenter la lampe responsable des ombres à la caméra pour avoir les ombres souhaitées "sous les yeux". Et on bake tout ce qui est statique et potentiellement loin de la cam. (En réalité c'est un peu plus compliqué, il faut que le sun garde une orientation constante indépendante de la caméra, etc.)



EDIT:

une petite précision sur la shadow map:

- Frustum Size gère la grandeur de la map dans la scène; c'est donc probablement ce que tu souhaites agrandir dans un premier temps; ce n'est en fait qu'un paramètre de projection, de scaling.
Si tu modifies ce paramètre uniquement, tu auras une étendue plus grande (et sans augmentation de la demande machine) mais au détriment de la qualité (il vient littéralement des artefacts, des "pixels d'ombre").
- Size gère la taille réelle de la map en mémoire - c'est donc de ce paramètre que dépendent les ressources machines demandées.

Pour faire simple: pour une qualité constante, il faut augmenter proportionnellement Frustum Size et Size. Ce qui fait augmenter quadratiquement les ressources machines concernées.

Cette contribution était de : http://blenderclan.tuxfamily.org/html/newbb/viewtopic.php?forum=1&topic_id=23975&post_id=556728