Gamedev et Blender sont nouveaux pour moi, et il y a quelque chose que je ne peux pas ébranler:
Dans Blender, un seul rendu (même à l'aide du rendu plus avancé de Cycles) peut prendre jusqu'à 45 secondes sur ma machine. Mais évidemment, dans un jeu, vous pouvez avoir des graphismes époustouflants et le rendu se fait donc de manière continue, plusieurs fois par seconde en temps réel.
Je me demande donc aussi quelle est la différence entre les rendus "lents" de Blender et la manière dont les moteurs de jeu obtiennent un rendu en temps réel (ou presque).
Réponses:
Le rendu en temps réel, même le rendu en temps réel moderne, est une panoplie d’astuces, de raccourcis, de hacks et d’approximations.
Prenez des ombres par exemple.
Nous n'avons toujours pas de mécanisme complètement précis et robuste pour le rendu des ombres en temps réel à partir d'un nombre arbitraire de lumières et d'objets arbitrairement complexes. Nous avons plusieurs variantes de techniques de mappage des ombres, mais elles souffrent toutes des problèmes bien connus liés aux cartes d’ombres et même les "correctifs" de ces techniques ne sont en réalité qu’une collection de solutions de rechange et de compromis (en règle générale si vous voyez les termes "biais de profondeur" ou "décalage de polygone" dans n'importe quoi alors ce n'est pas une technique robuste).
Le précalcul est un autre exemple de technique utilisée par les moteurs de rendu en temps réel. Si quelque chose (par exemple, l'éclairage) est trop lent à calculer en temps réel (et cela dépend du système d'éclairage que vous utilisez), nous pouvons le pré-calculer et le stocker, puis utiliser les données pré-calculées en temps réel. temps pour une amélioration des performances, souvent au détriment des effets dynamiques. C’est un compromis direct entre mémoire et calcul: la mémoire est souvent bon marché et abondante, alors que ce n’est pas souvent le cas de calcul, nous brûlons donc de la mémoire supplémentaire en échange d’une économie de calcul.
Les outils de rendu et de modélisation hors ligne, en revanche, ont tendance à être davantage axés sur l'exactitude et la qualité. De plus, comme ils travaillent avec une géométrie changeante de manière dynamique (telle qu'un modèle au moment de sa construction), ils doivent souvent recalculer les choses, alors qu'un moteur de rendu en temps réel travaillerait avec une version finale ne comportant pas cette exigence.
la source
La réponse actuelle a très bien expliqué les problèmes généraux en jeu, mais j’ai le sentiment qu’il manque un détail technique important: le moteur de rendu "Cycles" de Blender est un type de moteur différent de celui utilisé par la plupart des jeux.
Généralement, les jeux sont rendus en parcourant tous les polygones d’une scène et en les dessinant individuellement. Cela se fait en "projetant" les coordonnées du polygone à travers une caméra virtuelle afin de produire une image plate. La raison pour laquelle cette technique est utilisée pour les jeux est que le matériel moderne est conçu autour de cette technique et que cela peut être fait en temps réel avec des niveaux de détail relativement élevés. Ce qui est intéressant, c’est aussi la technique employée par le moteur de rendu précédent de Blender avant que la Blender Foundation ne lâche l’ancien moteur en faveur du moteur Cycles.
Les cycles, d’autre part, constituent ce que l’on appelle un moteur de lancer de rayons. Au lieu de regarder les polygones et de les restituer individuellement, il projette des rayons de lumière virtuels dans la scène (un pour chaque pixel de l'image finale), réfléchit ce faisceau lumineux sur plusieurs surfaces, puis utilise ces données pour déterminer la couleur du pixel. devrait être. Le lancer de rayons est une technique très coûteuse en calcul qui le rend peu pratique pour le rendu en temps réel, mais il est utilisé pour le rendu des images et des vidéos car il offre des niveaux de détail et de réalisme supplémentaires.
Veuillez noter que mes brèves descriptions de tracé de rayons et de rendu de polygone sont très détaillées pour des raisons de brièveté. Si vous souhaitez en savoir plus sur les techniques, je vous recommande de rechercher un tutoriel ou un livre en profondeur, car je suppose qu'il y a beaucoup de gens qui ont écrit de meilleures explications que je ne pourrais en citer.
Notez également que le rendu 3D fait l’objet de nombreuses techniques et que certains jeux utilisent des variantes du lancer de rayons à certaines fins.
la source