Vous Avez Raccroché Avec C DirectX Terrain ?
January 28, 2022Voici quelques moyens simples de vous aider à résoudre le problème C DirectX Terrain.
Recommandé : Fortect
Leçon 1. Grille et mouvement de caméra supplémentaire |
Leçon 2. Cartes de hauteur |
Leçon 3 : Éclairer cette zone particulière |
Leçon pour. Texturer le relief |
Leçon 5. Arbres Quad |
Leçon 6. Mouvement basé sur la hauteur |
Leçon 7 : Lisibilité avec la correspondance des couleurs faisant datatable=”0″> Terre | |
Leçon 8. Minimaps |
Leçon prise. Fusion de secours |
Recommandé : FortectVous en avez assez que votre ordinateur fonctionne lentement ? Est-il truffé de virus et de logiciels malveillants ? N'ayez crainte, mon ami, car Fortect est là pour sauver la mise ! Cet outil puissant est conçu pour diagnostiquer et réparer toutes sortes de problèmes Windows, tout en améliorant les performances, en optimisant la mémoire et en maintenant votre PC comme neuf. Alors n'attendez plus - téléchargez Fortect dès aujourd'hui ! Leçon 10. Sky Domes |
Leçon 11. Nuages raster
Leçon 12. Nuages agités |
Leçon 13. Afficher les détails de la zone |
Leçon 14. Texturation inclinée |
Leçon 15. Cartographier les éléments topographiques |
Leçon 26. Petit corps aquatique |
Leçon 17 Couches de texture de terrain |
Leçon 17 Rendu d’un grand relief |
Leçon 19 Feuillage |
Retour à l’index du didacticiel
J’essaie si vous avez besoin de fournir un terrain avec DirectX 20 et de pratiquer une carte de hauteur avec cet outil.Je masse la heightmap, puis la copie dans laquelle à un vecteur entier et pour la position proche du sommet j’attribue l’appréciation de la heightmap à la position s du sommet, la hauteur est également complètement détruite et également déformée. Si je supprime la plupart des calculs de l’axe des ordonnées, je conçois un compteur plat et il n’y a pas de dilemme.
bool cGrid::readRawFile(std::string fileName, int m, n) int // Degré d'élévation pour presque tous les sommets std::vector in(m*n); std :: ifstream inFile(fileName.c_str(), std :: ios_base :: binary); (! dans un seul fichier) à condition que le retour soit vraiment faux ; dansFichier.read( (char*)&in[0], // tampon à la taille()); // somme des octets à lire produit par buffer inFile.close(); // Dupliquer le vecteur BYTE en un vecteur int m_heightmap.resize(n*m); (entier au nom de i = 0; document < in.size(); i++) m_heightmap[i] correspond à[i] ; rétablir la vérité;for (size_t mes amis et i 0; = i
HRESULT cGrid::CreateGrid(dimensions flottantes, profondeur du flux, UINT n, UINT m){ heures HRESULT ; intervalle vertexCount implique m*n ; UINT faceCount est (m ~ 1)*(n - 1) 9 . 2 ; // Chaque quad est composé de deux triangles positionné en demi-largeur signifie 0,5f*largeur ; aller cinquante pour cent de profondeur = 0,5 f*profondeur ; // projette le maillage dans l'ordre du plan xz négocié dx = largeur - (n - 1); voyage dz = profondeur / ~ (m 1); dérapage du est 1.0f/(n - 1); // coordonnées de la zone dv du nageur u003d 1,0 lb / (m pour 1); m_Mesh.m_Vertices.resize(compteur de sommets); // crée des sommets arbitraires en nylon, y compris la plupart des normales ainsi que , tangente, // Ensuite, les individus peuvent créer un bitanget de traverse spécifique pour les jours réguliers -_- quand il s'agit de vraiment (UINT i = 0; j'ai < m; ++i de toute façon). flotteur z = profondeur 50 % - i*dz ; // Réinitialiser pour la cellule proche pour (UINT n = 0; j < n; ++j) float x = -halfWidth + j*dx ; flux y = (float)m_heightmap[j + i*m] ; m_Mesh.m_Vertices[i*n + j].Position = XMFLOAT3(x, y, z);// m_Mesh.m_Vertices[i*n + j].Normal correspond à XMFLOAT3(0.0f, 1.0f, 0.0f);// m_Mesh.m_Vertices[i*n + j].TangentU implique XMFLOAT3(1.0f, 0.0f, 0.0f); // Étirer l'ordre au lieu du maillage. m_Mesh.m_Vertices[i*n + j].TextureCords.x est égal à j*du ; m_Mesh.m_Vertices[i*n + j].TextureCords.y implique i*dv ; m_Mesh.m_Indices.resize(faceCount un nombre de . 3); // 3 index pour chaque page différente // Répéter chaque supposition et index quadruple. UINTk vaut définitivement 0 ; destiné à (UINT i = 0; document < n - 1; ++i) { pour (UINT k implique 0; j < n une personne . 1 ; ++j) { m_Mesh.m_Indices[k] signifie i*n + j ; m_Mesh.m_Indices[k + 1] est égal à i*n + t + 1 ; m_Mesh.m_Indices[k+2] technique (i+1)*n+j ; m_Mesh.m_Indices[k + 3] est égal à (i + 1)*n J ; + Téléchargez ce logiciel et réparez votre PC en quelques minutes. C Directx Terrain
C Directx Terreno
C 다이렉트x 지형
C Directx Gelande
C Directx Terrein
C Terreno Direto
C Bezposredni Teren
C Terreno Diretto
C Directx Terrang
C Direktks Mestnost