Aplikacje Direct3D
Na załączonej do książki płycie CD znajdują się kody źródłowe wszystkich omawianych projektów. Są to projekty wykonane w pakiecie Visual C++ wraz z gotowymi uru-chamialnymi plikami exe. Zostały one uporządkowane tematycznie w poszczególnych katalogach.
Czytelnik ma możliwość szybkiego podglądu działania programów wynikowych wraz z weryfikacją możliwości obsługi poszczególnych parametrów Direct3D przez swoją kartę graficzną. Czytelnik może także wykorzystać w swoich programach oraz dowolnie modyfikować istniejące kody źródłowe.
W poniższej tabeli zostały zebrane wszystkie projekty występujące w książce. W drugiej kolumnie tablicy podane są ścieżki wskazujące lokalizację projektu na załączonej płycie CD. Trzecia kolumna stanowi krótki opis objaśniający cel danego projektu. Tabela ta pozwala szybko zorientować się w zawartości płyty CD oraz znaleźć interesujący projekt.
Nr | Lokalizacja projektu | Opis |
1. | \Clipping | Płaszczyzny tnące |
2. | \SpriteAnim | Interfejs ID3DXSprite — zarządzanie interfejsem |
3. | \TeapotZBias | Wyświetlanie obiektów leżących w tej samej płaszczyźnie |
4. | \AlphaBlending\AlphaBlending | Kanał alfa wykorzystany przy wyświetlaniu bitmap |
5. | \AlphaBlending\MFCBlending | Różne sposoby łączenie rysowanych i narysowanych obiektów |
6. | \Base\baseapp | Szkielet aplikacji bazowej |
7. | \Effect\Effect1 | Interfejs ID3DXEffect — utworzenie interfejsu |
8. | \Effect\Effect2 | Interfejs ID3DXEffect — ładowanie parametrów z pliku tekstowego |
9. | \Fog\PixelFog | Tłumienie atmosferyczne obliczane na podstawie pikseli |
10. | \Fog\VertexFog | Tłumienie atmosferyczne obliczane na podstawie werteksów |
11. | \Interaction\Mouse | Obracanie i przemieszczanie obiektu za pomocą myszki |
12. | \Interaction\PickMesh | Wybieranie obiektów z wirtualnej przestrzeni |
13. | \Light\AmbientLight | Światło typu ambient |
14. | \Light\DiffuseLight | Światło typu diffuse |
15. | \Light\DirectionalLight | Światło kierunkowe |
16. | \Light\PointLight | Światło punktowe |
17. | \Light\SpecularPowerLight | Światło typu specular. Zmiana współczynnika rozproszenia |
18. | \Light\SpecularLight | Światło typu specular |
19. | \Light\SpotLight | Światło źródłowe |
20. | \Light\ThreeLights | Trzy ruchome światła |
21. | \Mesh\CD3DMeshObject | Ładowanie obiektów z plików .x za pomocą klasy CD3DMesh |
22. | \Mesh\FourMeshes | Interfejs ID3DXMesh — prostopadłościan, torus, wielokąt i cylinder |
23. | \Mesh\MeshLoad | Ładowanie obiektów z plików .x |
24. | \Mesh\MeshSphere | Interfejs ID3DXMesh — kula |
25. | \Mesh\MeshTessellate | Ulepszone powierzchnie |
26. | \Mesh\MeshTeapot | Interfejs ID3DXMesh — imbryk |
27. | \PixelShader\PSAdd | Sumowanie dwóch tekstur w potoku pikseli |
28. | \PixelShader\PSBase | Tworzenie potoku pikseli |
29. | \PixelShader\PSlrp | Wykorzystanie instrukcji lrp w potoku pikseli |
30. | \PixelShader\PSTex | Wykorzystanie instrukcji tex w potoku pikseli |
31. | \PixelShader\PSTexCol | Połączenie koloru piksela z kolorem tekstury w potoku pikseli |
32. | \Points\PointSize | Zmiana wielkości punktu w zależności od odległości |
33. | \Points\PointTexture | Nakładanie całej tekstury na pojedynczy punkt |
34. | \Points\PointTexCoord | Punkt posiadający współrzędne tekstury |
35. | \Primitives\DynamicBuffer | Zawartość bufora werteksów zmieniana jest dynamicznie |
36. | \Primitives\FVFPosTexCoordColN | Struktura werteksa zawiera pozycję, wektor normalny, współrzędne tekstury i kolor |
37. | \Primitives\FVFPosTexCoordCol | Struktura werteksa zawiera pozycję, współrzędne tekstury i kolor |
38. | \Primitives\FVFPositionTexCoord | Struktura werteksa zawiera pozycję i współrzędne tekstury |
39. | \Primitives\FVFPositionNormal | Struktura werteksa zawiera pozycję i wektor normalny |
40. | \Primitives\IndexedBuffer | Informacje o obiekcie zawarte są w buforze werteksów i buforze indeksów |
41. | \Primitives\LineList | Wyświetlenie zawartości bufora werteksów w postaci linii |
42. | \Primitives\LineStrip | Wyświetlenie zawartości bufora werteksów w postaci połączonych linii |
43. | \Primitives\PointList | Wyświetlenie zawartości bufora werteksów w postaci punktów |
44. | \Primitives\RHW | Struktura werteksa zawiera pozycję we współrzędnych ekranu |
45. | \Primitives\SeparateBuffers | Dane dla jednego werteksa podawane są z dwóch osobnych buforów |
46. | \Primitives\TriangleStrip | Wyświetlenie zawartości bufora werteksów w postaci połączonych trójkątów |
47. | \Primitives\TriangleList | Wyświetlenie zawartości bufora werteksów w postaci trójkątów |
48. | \Primitives\TriangleFan | Wyświetlenie zawartości bufora werteksów w postaci połączonych trójkątów |
49. | \Screensaver\Base | Projekt bazowy dla wygaszacza ekranu |
50. | \Screensaver\TeapotSS | Przykładowa aplikacja wygaszacza ekranu |
51. | \Stencil\StencilSilhouette | Zarys figury trójwymiarowej |
52. | \Stencil\StencilMirror | Efekt odbicia lustrzanego |
53. | \Text\Font | Płaski napis |
54. | \Text\Font3D | Płaski napis w przestrzeni 3D |
55. | \Text\FontMesh | Przestrzenny napis w przestrzeni 3D |
56. | \Texture\EnvMapping1 | Mapowanie otoczenia ( D3DTSS_TCI_CAMERASPACENORMAL) |
57. | \Texture\EnvMapping2 | Mapowanie otoczenia ( D3DTSS_TCI_CAMERASPACEPOSITION) |
58. | \Texture\EnvMapping1p | Mapowanie otoczenia ( D3DTSS_TCI_CAMERASPACENORMAL + D3DTTFF_PROJECTED) |
59. | \Texture\EnvMapping2p | Mapowanie otoczenia ( D3DTSS_TCI_CAMERASPACEPOSITION + D3DTTFF_PROJECTED) |
60. | \Texture\EnvMapCube | Mapowanie otoczenia -- tekstury sześcienne |
61. | \Texture\EnvMappingBump2p | Tekstura wichrująca i tekstura otoczenia |
62. | \Texture\EnvMappingBump2 | Tekstura wichrująca i tekstura otoczenia |
63. | \Texture\EnvMappingBump1p | Tekstura wichrująca i tekstura otoczenia |
64. | \Texture\GenDotN | Wyznaczanie mapy wektorów normalnych i wektorów wichrujących |
65. | \Texture\TexAnim | Wyświetlanie sekwencji tekstur na powierzchni obiektu |
66. | \Texture\TexBumpTranslate | Tekstura wichrująca i tekstura obiektu |
67. | \Texture\TexBumpLTranslate | Tekstura wichrująca z luminancją i tekstura obiektu |
68. | \Texture\TexDot3 | Wyznaczanie tekstury oświetlenia |
69. | \Texture\TexEnvMapBump | Tekstura obiektu, wichrująca i otoczenia |
70. | \Texture\TexOp | Różne rodzaje łączenia dwóch tekstur |
71. | \Texture\TexRotate | Obrót współrzędnych tekstury |
72. | \Texture\TexTranslate | Translacja współrzędnych tekstury |
73. | \Texture\TexVolume1 | Tekstura przestrzenna |
74. | \Texture\TexVolume | Tekstura przestrzenna |
75. | \VertexShader\VSAdd | Działanie instrukcji add w potoku werteksów |
76. | \VertexShader\VSBase | Tworzenie potoku werteksów |
77. | \VertexShader\VSConst | Przekazywanie stałych do potoku werteksów |
78. | \VertexShader\VSMad | Działanie instrukcji mad w potoku werteksów |
79. | \VertexShader\VSMax | Działanie instrukcji max w potoku werteksów |
80. | \VertexShader\VSMin | Działanie instrukcji min w potoku werteksów |
81. | \VertexShader\VSNorColTex | Przekazywanie do potoku werteksów współrzędnych tekstury, koloru i wektora normalnego |
82. | \VertexShader\VSRcp | Działanie instrukcji rcp w potoku werteksów |
83. | \VertexShader\VSRsq | Działanie instrukcji rsq w potoku werteksów |
84. | \VertexShader\VSSub | Działanie instrukcji sub w potoku werteksów |
85. | \VertexShader\VSTex | Przekazywanie współrzędnych tekstury do potoku werteksów |
86. | \VertexBlending\BlendingTorus2 | Deformacja obiektu za pomocą czterech macierzy deformujących |
87. | \VertexBlending\BlendingTorus1 | Deformacja obiektu za pomocą trzech macierzy deformujących |
88. | \VertexBlending\BlendingTorus | Deformacja obiektu za pomocą dwóch macierzy deformujących |
89. | \VertexBlending\Tweening | Interpolacja pomiędzy dwoma obiektami |
90. | \View\Projection | Rodzaje macierzy rzutowania |
91. | \View\QuaternionInterp1 | Interpolacja za pomocą czterech kwaternionów kontrolnych |
92. | \View\QuaternionInterp | Interpolacja pomiędzy dwoma kwaternionami |
93. | \View\ViewMove | Zmiana macierzy widoku |
94. | \View\WorldTransform | Zmiana macierzy świata |