Fichier texte en cours : Travaux effectués.txt






Depuis Lundi 24 Juillet :

- Rim Lighting

- OBJ loader

- RecaculateNormals

- Draw normals

- Geometry shader

- .Png format writing

- .BMP format loading & writing

- Screenshot

- Utilisation d'une D3D10_MAPPED_TEXTURE2D pour générer une texture à la volée

- SplashScreen

- PhongMultipleLights

- Essais de construction de modèles avec Blender

- Billboard lights

- Erase vector element inside a for loop

- Lights revolution with Rodrigues formula

- Revolution path with Vertex3DLines

         + Eliptic spline

- Loading model with a std::thread

- ThreadsWrapper class

         + gestion automatique des paramètres de la fonction thread
         + gestion d'une callback lors de la fin du thread

- Callback class

         - avec passage de paramètres avec DataParameters
         - récupération des données avec la callback en fonction du type requis

- IFS Model File Loader

         - ReadInt(), ReadFloat(), etc...

- AABB

         - AABB class
         - Draw AABB for a MeshSceneNode

- AutoScale

         - proportionner le scale d'une node par rapport la taille de sa AABB en fonction d'une autre node

- MeshSquare ou MeshGrid

         - mesh IFS disposé en quadrillage à partir d'un centre

- Chargement aléatoire de mesh IFS depuis un repertoire

         - utilisation du AutoScale et du MeshGrid

         - chargement sur un seul thread avec une list de meshes prédéfinis et préconçus

         - ouverture et lecture d'un repertoire en C++

- Utilisation des en-têtes précompilés

- On peut spécifier un paramètre à chaque MeshSceneNode spécifique au shader en fonction :

         - Enable, Color, TextureName, etc...

- Zlib

         - compression et décompression

- ZipReader

         - décompression et lecture d'un fichier .zip
         - chargement d'un ou plusieurs fichiers dans l'archive !


- Mouse Tooltip :

         - Compréhension de D3DXVec3Unproject
                  
                  - Utilisation avec MousePosition.z = 0 (origin), puis MousePosition.z = 1 (direction);

         - Ray, Triangle, MousePosition for Ray compute rajoutés

         - Ajout de deux objets dans la scène : un monstre et un véhicule

         - Classe MouseTooltip avec composé de 5 sprites texturés en .png afin de former un rectangle de tooltip

         - Création d'une classe SpriteBatch, TextSpriteBatch et TextureSpriteBatch

         - Utilisation de D3DX10_IMAGE_LOAD_INFO pour configurer le chargement d'une ID3D10ShaderResourceView*
         (ne marche pas pour certaines valeurs !)

         - Construction du tooltip par des SetSize et des SetPosition()
         en fonction des tailles et positions des autres coins et du texte de description !!


- Glass :

         - Mise en place du constructeur de recopie par une MeshSceneNode

         - Shader de glass avec displacement map
         

- Simple Water :

         - MeshSceneNode::PushCustomShaderParameter

         - Normal map done

         - Moving waves


- Terrain Scene Node :

         -

- Advanced Water :

         
         - refraction & reflection maps

         - Clip plane avec SV_ClipDistance et output.clip = dot(mul(input.Pos, World), ClipPlane);


- All types of lights :


--------------

Bugs rencontrés et résolus :

- calcul et centrage de la hauteur de spline (revoir la formule de Rodrigues)

- utiliser std::map.at(...) pour un accès const au lieu de std::map[i]

- les vertex peuvent être en trop faible nombre face aux données des faces,
il faut alors compenser en les rajoutant !

- ne pas hésiter à utiliser CMake

- ne pas hésiter à afficher les droites des bounding boxes !

- avant la transformation du ray par View^-1, il faut penser à convertir les données
de la souris avec la matrice Projection !

         mousePosition.x = xPos / matProj->_11;
         mousePosition.y = -yPos / matProj->_22;


- on ne peut pas mapper une variable ShaderRessourecView directement !
il faut la récréer avec une Texture2D et la recharger



--------------



A chaque fois il faut revoir les fichiers sources les plus récents pour voir la différence, puis mettre à jour !!


-------------


Ajouts :

- CSPNeedToRefresh() & SetCSPNoNeedToRefresh()

- Voir Ray Box intersection sur google

- Voir les différentes valeurs possibles de D3D10_USAGE