Les gens qui faites du game dev, j’aimerai savoir comment vous gérez ce genre de gameplay sans faire tomber le processeur à genou…
youtu.be/ncwhmnCfdw4?t=100

aeris ☣ 🇫🇷 @aeris

Autant, quand il faut ouvrir un coffre/détenir un objet/poser une orbe dans un trou, bon, j’arrive à voir comment il est possible de coder ça, même si je pense bien être loin des perfs que vous obtenez.
Mais là, on parle de la vérification d’une ombre projetée sur une zone précise du sol. Sachant que le personnage peut être n’importe où, n’importe comment, tant que l’ombre est projetée au bon endroit…

· 0 · 0

Et vu qu’on est dans un openworld, ben les malins peuvent aussi tenter comme ça par exemple : youtu.be/OMjnFgqWf5s?t=29

Bref, comment codez-vous une telle fonctionnalité, sans faire tomber la console sous des calculs intensifs de ray tracing permanents… 😱

@aeris a priori la projection est faite de toute façon dans une shadow map hierarchisée, après il suffit de tester si la map couvre la zone.

@gbo @aeris C'est exactement ça, dans les moteurs de rendu par rasterisation (soit pratiquement tout ce qui se fait en temps réel) l'ombre n'est pas l'absence de lumière, mais un calcul de projection du contour des objets visible depuis la lampe sur une structure assimilable à une texture.

Du coup, si t'est capable de dessiner l'ombre, c'est que tu sais où elle est.

@aeris
Je dirais lancer de rayon. Tu as là position de ta lumière. Celle de ton objet et la cible. T'as pas besoin d'en lancer des centaines et encore c'est pas spécialement plus coûteux d'en lancer beaucoup pour peu que tu fasse ça sur GPU. Ça se parallelise assez bien.

@aeris
Autre solution ça dépend de comment est calculé l'ombre mais si c'est de l'ombre stencil. La construction de l'ombre se fait par comparaison et ajout/suppression d'une valeur en fonction du résultat. Donc si tu sais identifié les triangles à l'ombre suffit de faire des tests pour savoir s'ils le sont.

@aeris
Après je suis pas gamedev :) juste un amateur éclairé donc il y a sûrement d'autres méthodes possible.

@aeris Une technique qui existe (aucune idée si c'est celle utilisée ici), c'est de faire un premier rendu (simplifié) de la scène du point de vue de la source de lumière, et d'ensuite utiliser le depthBufer obtenu pour déterminer si tel ou tel fragment est à l'ombre lors du rendu normal.

En plus, si le soleil ne bouge pas à chaque frame, il doit y avoir moyen de mettre en cache la partie statique du rendu.

@lhark Ben le soleil bouge à chaque frame. Il est RT en fonction de l’heure du jour.

@aeris S'il bouge suffisement lentement, il doit être possible de tricher en ne l'updatant qu'une frame sur 10 ou 100 par exemple.

@aeris ah c'est pas comme ça qu'il faut faire ?