72 lines
6.0 KiB
Plaintext
72 lines
6.0 KiB
Plaintext
|
[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=chat medium=blackboard title="Introduction to Mesh Skinning" vod_platform=youtube id=sd-d4Z7utVM annotator=Miblo]
|
|||
|
[0:01][Welcome to the off-topic stream on mesh :skinning][:speech]
|
|||
|
[1:31][Our professional experience of mesh :skinning][:speech]
|
|||
|
[4:31][Introduction to Mesh :Skinning]
|
|||
|
[5:33][The bases for 3D graphics: Basic Transform][:mathematics]
|
|||
|
[9:44][Matrix multiplication][:mathematics]
|
|||
|
[12:01][The bases for 3D graphics: Linear Blend][:mathematics]
|
|||
|
[15:56][Convex (or Interpolated) Linear Blending][:mathematics]
|
|||
|
[21:27][Thinking of convex linear blending as a sum of terms][:mathematics]
|
|||
|
[25:27][Euclidean Norms][:geometry :mathematics]
|
|||
|
[31:27][Understanding norm(1), the Manhattan Distance][:geometry :mathematics]
|
|||
|
[32:59][Using norm(1) to produce a coherent convex blend equation][:geometry :mathematics]
|
|||
|
[36:31][Applying our norm(1) convex blend equation][:geometry :mathematics]
|
|||
|
[39:01][We've got a [@Molly puss] situation][:speech]
|
|||
|
[39:17][Simplifying our norm(1) convex blend equation][:geometry :mathematics]
|
|||
|
[41:38][Understanding why our norm(1) equation constrains us within 0 and 1][:geometry :mathematics]
|
|||
|
[45:24][Convex Multi-Point Blend][:geometry :mathematics]
|
|||
|
[48:52][General Blend Equation][:geometry :mathematics]
|
|||
|
[52:56][Mesh :Skinning: The problem of disjoint objects when transformed][:geometry :mathematics]
|
|||
|
[55:10][Mesh :Skinning: Sharing vertices, producing an undesirable collapse][:geometry :mathematics]
|
|||
|
[58:14][Mesh :Skinning: Subtly blending between multiple collapses][:geometry :mathematics]
|
|||
|
[1:01:02][Mesh :Skinning: Applying our General Blend Equation][:geometry :mathematics]
|
|||
|
[1:05:54][Traditional application of mesh :skinning: Input - Rest Pose, Skeleton and Mesh][:geometry :mathematics]
|
|||
|
[1:09:53][Traditional application of mesh :skinning: Output - Pose][:geometry :mathematics]
|
|||
|
[1:11:25][Using the inverse of the rest pose to pin a mesh to a skeleton][:geometry :mathematics :skinning]
|
|||
|
[1:17:06][The problem of storing the relative positions of multiple bones][:memory :skinning]
|
|||
|
[1:20:14][Composite Matrix / Transform: Model and store both the skeleton and mesh in the same space][:geometry :mathematics :memory :skinning]
|
|||
|
[1:26:50][Preparing and applying the Composite Transform][:mathematics :skinning]
|
|||
|
[1:30:49][Practical considerations of handling many bones][:mathematics :skinning]
|
|||
|
[1:34:32][The End...?][:skinning]
|
|||
|
[1:35:00][Critiquing Mesh :Skinning]
|
|||
|
[1:40:01][Beyond Mesh :Skinning: :Simulation]
|
|||
|
[1:42:57][Beyond Mesh :Skinning: Double Down Art Input]
|
|||
|
[1:46:00][Recommend Pose Space Deformation[ref
|
|||
|
author="J. P. Lewis, Matt Cordner, Nickson Fong"
|
|||
|
publisher=Centropolis
|
|||
|
title="Pose Space Deformation: A Unified Approach to Shape Interpolation and Skeleton-Driven Deformation"
|
|||
|
url=http://scribblethink.org/Work/PSD/PSD.pdf]][:skinning]
|
|||
|
[1:48:05][Q&A][:speech]
|
|||
|
[1:48:19][@vaualbus][Q: For what version of granny had you worked?[ref
|
|||
|
site="RAD Game Tools"
|
|||
|
page="Granny Development History"
|
|||
|
url=http://www.radgametools.com/granny/history.html]]
|
|||
|
[1:49:42][@somebody_took_my_name][Q: Are the bone transform inverses stored relative to the mesh center?][:skinning]
|
|||
|
[1:50:13][@frostyninja][Q: Please let @Molly look out the window. She was trying so hard]
|
|||
|
[1:50:17][@codeslasher][Q: What :"file format" would you recommend for beginners, and for someone not willing to use a lib like Assimp?]
|
|||
|
[1:51:24][@lspaceyl][Q: Would Bézier curves work for the fatty part of the arm? Probably be terrible[ref
|
|||
|
site=Wikipedia
|
|||
|
page="Character Studio"
|
|||
|
url=https://en.wikipedia.org/wiki/Character_Studio]]
|
|||
|
[1:53:13][@tetorashi][Q: How often would composite bone matrices usually be updated? Per frame?][:skinning]
|
|||
|
[1:53:45][@bulmanator][Q: How do quaternions fit into this?[ref
|
|||
|
author="Ladislav Kavan, Steve Collins, Jiřı́ Žára, Carol O’Sullivan"
|
|||
|
title="Skinning with Dual Quaternions"
|
|||
|
publisher="Trinity College Dublin, Czech Technical University in Prague"
|
|||
|
url=https://www.cs.utah.edu/~ladislav/kavan07skinning/kavan07skinning.pdf]][:mathematics]
|
|||
|
[1:55:40][@devsigner][Q: What kind of :skinning will you use for [~hero Handmade Hero]? Just basic bones and weights, and will you do this in the vertex shader?]
|
|||
|
[1:55:53][@gaius_is_best_colossus][Q: How do you recommend to go about learning a new :language or technology? Is there a "wrong" way to do it?]
|
|||
|
[1:56:01][@roam00010011][Q: Not on-topic but: Did I miss live Chartreuse?]
|
|||
|
[1:56:25][@edvinholm][Q: If you send a lot of data to the GPU and it doesn't have that much :memory, is there some sort of virtual memory that will be used or will it crash?][:hardware]
|
|||
|
[1:57:22][@vaualbus][Q: So the lerp vs slerp is in the :animation system and not in the :skinning system? Or I missed when you said the revelation you had back in the time?][:mathematics]
|
|||
|
[2:00:00][@roam00010011][Q: Coordinates, you've drawn Z as up, while in OpenGL Z is deep][:api]
|
|||
|
[2:00:40][Mirror Analogy: In Your Head vs In Reality]
|
|||
|
[2:04:23][@lspaceyl][Q: The ligament seem to have a bearing on the arm movement. Also the pivot of the arm, knee, shoulder seem to be on the outside and not the centre. Which makes me think we are thinking about the problem naively. Who knows?][:animation]
|
|||
|
[2:04:43][Bone placement in a mesh :skinning system]
|
|||
|
[2:05:09][@roam00010011][Q: And last, I'm in Redmond, so if you want to use that Chartreuse...]
|
|||
|
[2:05:19][@Brian][Q: Greetings [@cmuratori Casey]. I've been going through the multithreading code and remember one episode you were talking about loading the asset files in chunks (not all at once). Did you go over how to have one thread read from disk, while another thread processes the data? I'm just trying to wrap my head around doing it in parallel (making sure data processed is in correct order)][:"file io" :threading]
|
|||
|
[2:05:35][@codeslasher][Q: Following on from what you've explained about coordinate systems in OpenGL and how we choose it: What do we need to do to setup Z up instead?][:api]
|
|||
|
[2:06:18][@sagian2005][Q: Your electrical storm yesterday actually made national headlines]
|
|||
|
[2:06:22][Wrap it up][:speech]
|
|||
|
[/video]
|