Difference between revisions of "Hardware 3D (C++ DirectX Graphics) Tutorial 21"
From Chilipedia
(→Video Timestamp Index) |
(→Topics Covered) |
||
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | In this tutorial, we take a break from Direct3D api stuff to set up a better system for organizing Drawables and Bindables. Low coupling, high cohesion, and dynamic bullshits for the win. | + | In this three-part tutorial, we take a break from Direct3D api stuff to set up a better system for organizing Drawables and Bindables. Low coupling, high cohesion, and dynamic bullshits for the win. |
== Topics Covered == | == Topics Covered == | ||
=== Part 1 === | === Part 1 === | ||
* <code>Bindable</code> system (things like shaders, vertex buffers, etc.) | * <code>Bindable</code> system (things like shaders, vertex buffers, etc.) | ||
− | * <code>Drawable</code> system (things like | + | * <code>Drawable</code> system (things like the game entities that are drawn; they contain a collection of <code>Bindable</code>s) |
* Partial <code>protected</code> access inheritance pattern | * Partial <code>protected</code> access inheritance pattern | ||
* Weird quirk of C++ relating to visibility of protected members in the case of inheritance from a templated class | * Weird quirk of C++ relating to visibility of protected members in the case of inheritance from a templated class | ||
* How to update constant buffers using <code>Map</code> / <code>Unmap</code> | * How to update constant buffers using <code>Map</code> / <code>Unmap</code> | ||
+ | === Part 2 === | ||
+ | * Static collection of per-class <code>Bindable</code> | ||
+ | * <code>SetIndexFromStatic</code> | ||
+ | * Sharing cbuffer between instances of <code>TransformCbuf</code> | ||
+ | === Part 3 === | ||
+ | * Geometric primitives (cone, sphere, prism) | ||
+ | * Geometry-distorting transforms | ||
+ | * More <code>Drawable</code> types | ||
+ | * <code>Factory</code> for drawables with <code>std::generate_n</code> | ||
== Video Timestamp Index == | == Video Timestamp Index == | ||
− | [https://youtu.be/P3lpJnm9IEY Tutorial 21.1] | + | * [https://youtu.be/P3lpJnm9IEY Tutorial 21.1] |
+ | * [https://youtu.be/ZoNCFe9FgG8 Tutorial 21.2] | ||
+ | * [https://youtu.be/rNb6UTCg2Zg Tutorial 21.3] | ||
== Source Code == | == Source Code == |
Latest revision as of 00:31, 28 April 2019
In this three-part tutorial, we take a break from Direct3D api stuff to set up a better system for organizing Drawables and Bindables. Low coupling, high cohesion, and dynamic bullshits for the win.
Contents
Topics Covered
Part 1
-
Bindable
system (things like shaders, vertex buffers, etc.) -
Drawable
system (things like the game entities that are drawn; they contain a collection ofBindable
s) - Partial
protected
access inheritance pattern - Weird quirk of C++ relating to visibility of protected members in the case of inheritance from a templated class
- How to update constant buffers using
Map
/Unmap
Part 2
- Static collection of per-class
Bindable
-
SetIndexFromStatic
- Sharing cbuffer between instances of
TransformCbuf
Part 3
- Geometric primitives (cone, sphere, prism)
- Geometry-distorting transforms
- More
Drawable
types -
Factory
for drawables withstd::generate_n