gitextract_wk1emxhj/ ├── .gitignore ├── Chapter 01 - The First Scene/ │ ├── Chapter 01 - The First Scene/ │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj/ │ │ │ └── MainMenu.xib │ │ ├── Chapter 01 - The First Scene-Info.plist │ │ ├── Chapter 01 - The First Scene-Prefix.pch │ │ ├── Images.xcassets/ │ │ │ └── AppIcon.appiconset/ │ │ │ └── Contents.json │ │ ├── en.lproj/ │ │ │ ├── Credits.rtf │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── Chapter 01 - The First Scene.xcodeproj/ │ ├── project.pbxproj │ └── project.xcworkspace/ │ └── contents.xcworkspacedata ├── Chapter 02 - Lights & Materials/ │ ├── Chapter 02 - Lights & Materials/ │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj/ │ │ │ └── MainMenu.xib │ │ ├── Chapter 02 - Lights & Materials-Info.plist │ │ ├── Chapter 02 - Lights & Materials-Prefix.pch │ │ ├── Images.xcassets/ │ │ │ └── AppIcon.appiconset/ │ │ │ └── Contents.json │ │ ├── en.lproj/ │ │ │ ├── Credits.rtf │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── Chapter 02 - Lights & Materials.xcodeproj/ │ ├── project.pbxproj │ └── project.xcworkspace/ │ └── contents.xcworkspacedata ├── Chapter 03 - More of a scene/ │ ├── Chapter 03 - More of a scene/ │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj/ │ │ │ └── MainMenu.xib │ │ ├── Chapter 03 - More of a scene-Info.plist │ │ ├── Chapter 03 - More of a scene-Prefix.pch │ │ ├── ChartView.h │ │ ├── ChartView.m │ │ ├── Images.xcassets/ │ │ │ └── AppIcon.appiconset/ │ │ │ └── Contents.json │ │ ├── en.lproj/ │ │ │ ├── Credits.rtf │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── Chapter 03 - More of a scene.xcodeproj/ │ ├── project.pbxproj │ └── project.xcworkspace/ │ └── contents.xcworkspacedata ├── Chapter 03 - Pie Chart/ │ ├── Chapter 03 - Pie Chart/ │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj/ │ │ │ └── MainMenu.xib │ │ ├── Chapter 03 - Pie Chart-Info.plist │ │ ├── Chapter 03 - Pie Chart-Prefix.pch │ │ ├── Images.xcassets/ │ │ │ └── AppIcon.appiconset/ │ │ │ └── Contents.json │ │ ├── PieChartView.h │ │ ├── PieChartView.m │ │ ├── en.lproj/ │ │ │ ├── Credits.rtf │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── Chapter 03 - Pie Chart.xcodeproj/ │ ├── project.pbxproj │ └── project.xcworkspace/ │ └── contents.xcworkspacedata ├── Chapter 04 - Adding Detail with Images/ │ ├── Assets/ │ │ └── Spaceship.dae │ └── Code/ │ ├── Chapter 04 - Adding Detail with Images/ │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj/ │ │ │ └── MainMenu.xib │ │ ├── Chapter 04 - Adding Detail with Images-Info.plist │ │ ├── Chapter 04 - Adding Detail with Images-Prefix.pch │ │ ├── Images.xcassets/ │ │ │ └── AppIcon.appiconset/ │ │ │ └── Contents.json │ │ ├── Spaceship.dae │ │ ├── en.lproj/ │ │ │ ├── Credits.rtf │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── Chapter 04 - Adding Detail with Images.xcodeproj/ │ ├── project.pbxproj │ └── project.xcworkspace/ │ └── contents.xcworkspacedata ├── Chapter 05 - Chess/ │ ├── Assets/ │ │ └── chess pieces.dae │ └── Code/ │ ├── Chapter 05 - Chess/ │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj/ │ │ │ └── MainMenu.xib │ │ ├── Chapter 05 - Chess-Info.plist │ │ ├── Chapter 05 - Chess-Prefix.pch │ │ ├── ChessView.h │ │ ├── ChessView.m │ │ ├── Images.xcassets/ │ │ │ └── AppIcon.appiconset/ │ │ │ └── Contents.json │ │ ├── chess pieces.dae │ │ ├── en.lproj/ │ │ │ ├── Credits.rtf │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── Chapter 05 - Chess.xcodeproj/ │ ├── project.pbxproj │ └── project.xcworkspace/ │ └── contents.xcworkspacedata ├── Chapter 05 - Earth/ │ └── Code/ │ ├── Chapter 05 - Earth/ │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── AtmosphereHalo.glsl │ │ ├── Base.lproj/ │ │ │ └── MainMenu.xib │ │ ├── Chapter 05 - Earth-Info.plist │ │ ├── Chapter 05 - Earth-Prefix.pch │ │ ├── EarthView.h │ │ ├── EarthView.m │ │ ├── Images.xcassets/ │ │ │ └── AppIcon.appiconset/ │ │ │ └── Contents.json │ │ ├── en.lproj/ │ │ │ ├── Credits.rtf │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── Chapter 05 - Earth.xcodeproj/ │ ├── project.pbxproj │ └── project.xcworkspace/ │ └── contents.xcworkspacedata ├── Chapter 07 - Custom Cube/ │ ├── Chapter 07 - Custom Cube/ │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj/ │ │ │ └── MainMenu.xib │ │ ├── Chapter 07 - Custom Cube-Info.plist │ │ ├── Chapter 07 - Custom Cube-Prefix.pch │ │ ├── Images.xcassets/ │ │ │ └── AppIcon.appiconset/ │ │ │ └── Contents.json │ │ ├── en.lproj/ │ │ │ ├── Credits.rtf │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── Chapter 07 - Custom Cube.xcodeproj/ │ ├── project.pbxproj │ └── project.xcworkspace/ │ └── contents.xcworkspacedata ├── Chapter 07 - Custom Mesh Geometry/ │ ├── Chapter 07 - Custom Mesh Geometry/ │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj/ │ │ │ └── MainMenu.xib │ │ ├── Chapter 07 - Custom Mesh Geometry-Info.plist │ │ ├── Chapter 07 - Custom Mesh Geometry-Prefix.pch │ │ ├── Images.xcassets/ │ │ │ └── AppIcon.appiconset/ │ │ │ └── Contents.json │ │ ├── en.lproj/ │ │ │ ├── Credits.rtf │ │ │ └── InfoPlist.strings │ │ └── main.m │ └── Chapter 07 - Custom Mesh Geometry.xcodeproj/ │ ├── project.pbxproj │ └── project.xcworkspace/ │ └── contents.xcworkspacedata ├── Chapter 12 - Custom Shaders/ │ ├── Chapter 12 - Custom Shaders/ │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj/ │ │ │ └── MainMenu.xib │ │ ├── Images.xcassets/ │ │ │ └── AppIcon.appiconset/ │ │ │ └── Contents.json │ │ ├── Info.plist │ │ ├── customShader.frag │ │ ├── customShader.vert │ │ ├── main.m │ │ ├── myShader.frag │ │ └── myShader.vert │ └── Chapter 12 - Custom Shaders.xcodeproj/ │ ├── project.pbxproj │ └── project.xcworkspace/ │ └── contents.xcworkspacedata ├── LICENSE └── README.md