Masz Problemy Z C DirectX Terrain?
January 28, 2022Oto kilka prostych sposobów na rozwiązanie problemu terenu C DirectX.
Zalecane: Fortect
Lekcja 1. Siatka i ruch kamery |
Lekcja 2. Mapy wysokości |
Lekcja 3: Oświetlenie naszego obszaru |
Lekcja 4. Teksturowanie reliefu |
Lekcja 5. Drzewa Quad |
Lekcja 6. Ruch na podstawie tonu |
Lekcja 7: Czytelność z dopasowaniem barw datatable=”0″> Ziemia | |
Lekcja siódma. Minimapy Lekcja 9. Scalanie reliefów Czy masz dość powolnego działania komputera? Czy jest pełen wirusów i złośliwego oprogramowania? Nie obawiaj się, przyjacielu, ponieważ Fortect jest tutaj, aby uratować sytuację! To potężne narzędzie jest przeznaczone do diagnozowania i naprawiania wszelkiego rodzaju problemów z systemem Windows, jednocześnie zwiększając wydajność, optymalizując pamięć i utrzymując komputer jak nowy. Więc nie czekaj dłużej — pobierz Fortect już dziś! Lekcja 10. Podniebne kopuły Lekcja 11. Chmury rastrowe Lekcja 12. Niespokojne chmury Lekcja 13. Wyświetlanie szczegółów terenu Lekcja 14. Teksturowanie ukośne Lekcja 15. Mapowanie funkcji powierzchni Lekcja 16. Woda do małego ciała Lekcja 17 Warstwy tekstur terenu Lekcja osiemnasta Renderowanie dużej płaskorzeźby Lekcja 19 Ulistnienie Z powrotem, który może Indeks samouczków Jeśli potrzebujesz pomocy w renderowaniu terenu za pomocą DirectX 20, staram się zastosować mapę wysokości do takiego narzędzia.Ładuję mapę wysokości, a następnie kopiuję whos do wektora całkowitego i nad każdą pozycją wierzchołka przypisuję całą wartość mapy wysokości do bez wątpienia pozycji y wierzchołka, jego teren jest również całkowicie zniszczony, a także zniekształcony. Jeśli usunę sposób obliczeń na osi Y, projektuję rozdartą siatkę i nie ma scenariusza.Zalecane: Fortect
bool cGrid::readRawFile(std::string nazwa_pliku, int m, n) int // Stopień wzniesienia do pracy z każdym wierzchołkiem std::wektor
HRESULT cGrid::CreateGrid(szerokość zmiennoprzecinkowa, głębokość strumienia, UINT n, UINT m){ godziny HRESULT; interwał vertexCount równa się m*n; UINT faceCount to (m - 1)*(n - 1) 9 . 2; // Każdy quad składa się niewątpliwie z dwóch trójkątów ustawiony jako połowa głębokości = 0,5f*szerokość; okazuje się, że połowa głębokości = 0,5 f*głębokość; // rzutuje przepuszczane powietrze na płaszczyznę xz ułożone dx = szerokość dla każdego (n - 1); patrz dz = głębokość dla każdego - (m 1); są pozycjonowane du wynosi 1,0f/(n - 1); // rozwiń współrzędne dv pływaka u003d 1,0 funta / (m - 1); m_Mesh.m_Vertices.resize(licznik wierzchołków); // utwórz unikalne wierzchołki siatki, w tym większość normalnych oraz styczną, // Następnie możesz utworzyć konkretny bitanget produktu trawersu dla zwykłych dni roboczych -_- kiedy przychodzi do (UINT i = 0; że i < m; ++i w każdym razie). float z równa się połowie głębokości - i*dz; // Resetuj dla bliskiej komórki dotyczące (UINT r = 0; j < n; ++j) float x równa się -halfWidth + j*dx; float y = (float)m_heightmap[j + i*m]; m_Mesh.m_Vertices[i*n + j].Pozycja = XMFLOAT3(x, y po prostu, z);// m_Mesh.m_Vertices[i*n + j].Normal odpowiada możliwości XMFLOAT3(0.0f, 1.0f, 0.0f);// m_Mesh.m_Vertices[i*n + j].TangentU równa się XMFLOAT3(1.0f, 0.0f, 0.0f); // Rozciągnij dokładną teksturę zamiast siatki. m_Mesh.m_Vertices[i*n + j].TextureCords.x = j*du; m_Mesh.m_Vertices[i*n + j].TextureCords.y zawiera i*dv; m_Mesh.m_Indices.resize(faceCount kilka . 3); // 3 indeksy na potrzeby każdej strony // Powtórz każde odgadnięcie i pomnóż przez 4 indeks. UINTk wynosi 0; zalecane dla (UINT i = 0; i < n - 1; ++i) { z (UINT j oznacza 0; j < debbie 1 . 1 ; ++j) { m_Mesh.m_Indices[k] = i*n + j; m_Mesh.m_Indices[k + 1] = i*n + h + 1; m_Mesh.m_Indices[k+2] oznacza (i+1)*n+j; m_Mesh.m_Indices[k + 3] równa się (i + 1)*n J; +
C Directx Terrain
C Directx Terreno
C 다이렉트x 지형
C Directx Gelande
C Directx Terrein
C Terreno Direto
C Terreno Diretto
C Directx Terrang
C Direktks Mestnost
C Directx Terrain