Difference between revisions of "Hardware 3D (C++ DirectX Graphics) Tutorial 21"

From Chilipedia
Jump to: navigation, search
(Topics Covered)
 
(4 intermediate revisions by the same user not shown)
Line 4: Line 4:
 
=== 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 meshes that are drawn; they contain a collection of <code>Bindable</code>s)
+
* <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.

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 of Bindables)
  • 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 with std::generate_n

Video Timestamp Index

Source Code

See also