|
1 |
| -# rendering-techniques |
| 1 | +# Rendering Techniques |
| 2 | + |
2 | 3 | Explanation and examples of modern rendering techniques commonly used for game engines
|
| 4 | + |
| 5 | +## 🚩 Table of Contents |
| 6 | + |
| 7 | +<details><summary>🧩 Show Classes</summary> |
| 8 | +<p> |
| 9 | + |
| 10 | +*(🏗️ : Not started | 📝 : Started | 📑 : Needs proofreading | ✔️ : Written )* |
| 11 | + |
| 12 | +* Todo |
| 13 | + * [Skinning 🏗️]() |
| 14 | +* Todo |
| 15 | + * [Deferred Rendering 🏗️]() |
| 16 | + |
| 17 | +</p> |
| 18 | +</details> |
| 19 | + |
| 20 | +## 👩💻 Getting Started |
| 21 | + |
| 22 | +### Prerequisites |
| 23 | + |
| 24 | +You can read the classes listed in the table of contents, but if you want to follow along, you need to install [CMake](https://cmake.org/) to build the project, and a C++ compiler which handles C++17. |
| 25 | + |
| 26 | +#### Linux |
| 27 | + |
| 28 | +```bash |
| 29 | +sudo apt-get install build-essential cmake |
| 30 | +``` |
| 31 | + |
| 32 | +#### Windows |
| 33 | + |
| 34 | +To get the MSVC compiler, you need to install [Visual Studio](https://visualstudio.microsoft.com/) (and not VSCode), and select C++ development during installation. |
| 35 | + |
| 36 | +### Build on desktop |
| 37 | + |
| 38 | +You can handle the `CMakeLists.txt` in any way you like, here's some way to use it : |
| 39 | + |
| 40 | +#### `Option 1: CLI` |
| 41 | + |
| 42 | +Go to the folder of this project and run : |
| 43 | + |
| 44 | +```bash |
| 45 | +mkdir build |
| 46 | +cd build |
| 47 | +cmake .. |
| 48 | +make |
| 49 | +``` |
| 50 | + |
| 51 | +#### `Option 2: Visual Studio (Windows only)` |
| 52 | + |
| 53 | +Open this folder with the `CMake...` option in file->open on Visual Studio, and run the project. |
| 54 | + |
| 55 | +#### `Option 3: VSCode` |
| 56 | + |
| 57 | +Use the `CMakeTools` plugin, build with `f7` then run with `f5` (But be careful to be on the right platform, there is a launch file for windows and for linux). |
| 58 | + |
| 59 | +## 👨👩👦👦 Contributing |
| 60 | + |
| 61 | +If you find errors in the code, or better way to explain or do things, feel free to open an issue ! |
| 62 | + |
| 63 | +## 📖 Sources |
| 64 | + |
| 65 | +### Websites |
| 66 | + |
| 67 | +| Name | Founder(s) | Description | |
| 68 | +| --- | --- | --- | |
| 69 | +| [WebGL Fundamentals](https://webglfundamentals.org/) | - | Various tutorial on rendering techniques for WebGL 1 & 2 | |
| 70 | +| [Learn OpenGL](https://learnopengl.com/) | [Joey de Vries](http://joeydevries.com/) | Various tutorial on rendering techniques for OpenGL | |
| 71 | +| [Advances in Real Time rendering](https://advances.realtimerendering.com/) | - | Slides and Videos from SigGraph conferences | |
| 72 | +| [Scratch A Pixel](https://www.scratchapixel.com/) | - | Tutorial on Computer Graphics theory | |
| 73 | + |
| 74 | +### Blogs |
| 75 | + |
| 76 | +| Name | Founder(s) | Description | |
| 77 | +| --- | --- | --- | |
| 78 | +| [Wicked Engine Dev Blog](https://wickedengine.net/) | János Turánszki | Dev blog of his game engine | |
| 79 | +| [Our Machinery Dev Blog](https://ourmachinery.com/post) | - | Dev blog of their game engine | |
| 80 | +| [3D Game engine programming](https://www.3dgep.com/) | [Robert Grigg](https://www.3dgep.com/author/grigg-rbuas-nl/) | Various articles related to DirectX | |
| 81 | + |
| 82 | +### Videos |
| 83 | + |
| 84 | +| Name | Author | Description | |
| 85 | +| --- | --- | --- | |
| 86 | +| [SketchPunkLabs - Learn WebGL](https://www.youtube.com/channel/UCSnyjB_8iVxi2ZAfn_1L6tA) | - | Various tutorials on rendering techniques with WebGL | |
| 87 | +| [GDC Vault](https://www.gdcvault.com/free) | - | Many conferences from professionals in the game industry | |
| 88 | +| [The Cherno](https://www.youtube.com/channel/UCQ-W1KE9EYfdxhL6S4twUNw) | - | Various videos on programming and graphics programming | |
| 89 | + |
| 90 | +### Books |
| 91 | + |
| 92 | +| Name | Description | Illustration | |
| 93 | +| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------ | |
| 94 | +| [Game Engine Architecture](https://www.gameenginebook.com/) | A famous book by Jason Gregory, a Naughty Dog engineer | | |
| 95 | +| [Real Time Rendering](http://www.realtimerendering.com/book.html) | Famous book on rendering techniques | | |
| 96 | +| [Game Programming Gems Serie](http://www.satori.org/game-programming-gems/) | Mark DeLoura compilation of articles by other developers | | |
| 97 | +| [GPU Gems Serie](https://developer.nvidia.com/gpugems/gpugems/contributors) | Compilation of various articles by developers | | |
| 98 | +| [GPU Pro Serie](http://gpupro.blogspot.com/) | [Wolfgang Engel](http://www.blogger.com/profile/11031097395025597662) compilation of articles by other developers | | |
| 99 | +| [Game Engine Gems Serie](http://www.gameenginegems.net/) | Compilation of articles by developers | | |
| 100 | +| [Fundamentals of Computer Graphics](https://www.oreilly.com/library/view/fundamentals-of-computer/9781482229417/) | A broad book explaining computer graphics from scratch | | |
| 101 | +| [Physically Based Rendering](http://www.pbr-book.org/) | Matt Pharr, Wenzel Jakob, and Greg Humphreys revolutionary book on materials | | |
| 102 | + |
0 commit comments