Support du PBR, dans les deux workflows les plus communs : Metallic/Roughness et Specular/Glossiness.
Fonctionnalités
CastorUtils
- Renommage du namespace Castor en castor.
- Ajout des classes ChangeTracked et GroupChangeTracked, permettant de tracer les changements de valeur d’une variable membre.
- Renommage de CubeBox et SphereBox en BoundingBox et BoundingSphere.
- Séparation de Colour en deux classes : RgbColour et RgbaColour.
- PlaneEquation n’est plus une classe template.
- Création d’un allocateur : buddy allocator.
Castor3D
- Renommage du namespace Castor3D en castor3d.
- La composante émissive des matériaux est maintenant stockée sur un simple flottant (les textures d’émissive sont cependant toujours en couleur).
- Le Physical Based Rendering a été implémenté, en metallic/roughness et specular/glossiness.
- RenderPipeline contient maintenant le programme shader.
- Le Screen Space Subsurface Scattering a été implémenté (sans la transmission via les faces arrières, cependant).
- Le résultat de la passe d’éclairage est maintenant stocké dans deux cibles de rendu : une pour l’éclairage diffus, et une pour la réflexion spéculaire.
- Les tampons de sommets sont maintenant alloués via un pool utilisant un buddy allocator.
- Le shadow mapping utilise maintenant des variance shadow maps.
- Les maillages transparents sont maintenant dessinés en utilisant du Weighted Blended OIT.
- Le Screen Space Ambiant Occlusion a été amélioré, en implémentant le Scalable Ambiant Obscurance.
- Le Parallax Occlusion Mapping a été implémenté.
- Implémentation des reflection et refraction maps.
- Le rendu différé a été complètement intégré au rendu, pour le rendu des objets opaques.
- Création de composants pour les sous-maillages, afin d’alléger la classe Submesh, et rendre son remplissage plus flexible.
- Le rendu utilise maintenant un prépasse de profondeur.
- Crée la classe ColourSkybox, afin de gérer la couleur de fond et les skybox de la même manière.
- Création d’une classe ShaderBuffer, permettant de manipuler les TBO et SSBO de la même manière, et de choisir le plus approprié en fonction du GPU.
Generators
- Création d’un plugin de génération de terrain en utilisant l’algorithme Diamond Square.
Generic
- Les évènements générés depuis CastorGUI sont maintenant envoyés à l’utilisateur.
Importers
- Suppression de la quasi-totalité des plugins d’import, ne gardant que Assimp, OBJ et PLY.
PostEffects
- Création d’un plugin post rendu : SMAA, pour un antialiasing digne de ce nom.
- Crée un plugin implémentant l’effet Kawase Light Streaks.
- Création d’un plugin affichant un effet de grain filmique.
Techniques
- Suppression de tous les plugins de Technique.
Tone mappings
- Création de l’opérateur de tone mapping Uncharted 2.
Corrections
Castor3D
- Correction des bounding boxes pour les maillages animés par vertex, et par squelette.
- Réparation et réactivation du frustum culling.
- Réparation de l’alpha rejection.
Téléchargements
Exécutables
Installeur de Castor3D (Windows x86).
Installeur de Castor3D (Windows x64).
Installeur de Castor3D (Debian amd64).
Rendu PBR VS SSR :
Génération de terrain via l’algorithme Diamond square
Reflection/Refraction map :
Pas de SMAA VS SMAA
Subsurface Scattering