From abe5a6b2407c5287ea0dee60b6c3a490dd91d88f Mon Sep 17 00:00:00 2001 From: Nobuyuki Date: Sat, 15 Jun 2024 19:10:38 +0900 Subject: [PATCH] added task08 --- README.md | 10 +-- task08/README.md | 114 +++++++++++++++++++++++++ task08/main.py | 175 ++++++++++++++++++++++++++++++++++++++ task08/output.png | Bin 0 -> 39018 bytes task08/parse_gltf.py | 149 ++++++++++++++++++++++++++++++++ task08/preview.png | Bin 5491 -> 61939 bytes task08/requirements.txt | 8 ++ task08/util_for_task08.py | 55 ++++++++++++ 8 files changed, 506 insertions(+), 5 deletions(-) create mode 100644 task08/README.md create mode 100644 task08/main.py create mode 100644 task08/output.png create mode 100644 task08/parse_gltf.py create mode 100644 task08/requirements.txt create mode 100644 task08/util_for_task08.py diff --git a/README.md b/README.md index 59e3911..affaf7e 100644 --- a/README.md +++ b/README.md @@ -52,12 +52,12 @@ Topics: |(4)
May 13| **Graphics pipeline**
depth buffer method, shading, shadow, anti aliasing | [task04](task04) | [[12]](http://nobuyuki-umetani.com/acg2024s/rasterization_3d.pdf) [[13]](http://nobuyuki-umetani.com/acg2024s/graphics_pipeline.pdf) | |(6)
May 20| **Ray Casting 1**
spatial data structure | [task05](task05) | [[14]](http://nobuyuki-umetani.com/acg2024s/shading.pdf) [[16]](http://nobuyuki-umetani.com/acg2024s/implicit_modeling.pdf) | |(7)
May 27| **Ray Casting 2**
Rendering equation, Monte Carlo integration | [task06](task06) | [[15]](http://nobuyuki-umetani.com/acg2024s/rasterization_subpixel.pdf) [[17]](http://nobuyuki-umetani.com/acg2024s/ray_casting.pdf) [[18]](http://nobuyuki-umetani.com/acg2024s/monte_carlo_integration.pdf) [[19]](http://nobuyuki-umetani.com/acg2024s/ray_triangle_collision.pdf) | -|(8)
June 3| **Character animation**
Linear blend skinning | [task07](task07) | [[20]](http://nobuyuki-umetani.com/acg2024s/character_deformation.pdf) [[21]](http://nobuyuki-umetani.com/acg2024s/jacobian.pdf) | +|(8)
June 3| **Character animation**
Linear blend skinning | [task07](task07) | [[21]](http://nobuyuki-umetani.com/acg2024s/jacobian.pdf) | |(9)
June 10| Guest lecture by Dr. Rex West | | | -|(10)
June 17| **Optimization**
Inverse kinematic | task08 | | -|(11)
June 24| Laplacian mesh deformation | task09 | | -|(12)
July 12| **Grid-based Fluid Ⅰ**
Poisson equation | task10 | | -|(13)
July 8| **Grid-based Fluid Ⅱ**
Stam fluid | | | +|(10)
June 17| **Character animation2**
Inverse kinematic | [task08](task08) | [[20]](http://nobuyuki-umetani.com/acg2024s/character_deformation.pdf) | +|(11)
June 24| **Optimization** | | | +|(12)
July 12| **Laplacian mesh deformation**
| task09 | | +|(13)
July 8| **Grid-based Fluid**
Poisson equation, Stam fluid | | | ## Grading diff --git a/task08/README.md b/task08/README.md new file mode 100644 index 0000000..e2b6fe3 --- /dev/null +++ b/task08/README.md @@ -0,0 +1,114 @@ +# Task08: Skeletal Animation + +![preview](preview.png) + +**Deadline: May 20th (Thu) at 15:00pm** + +---- + +## Before Doing Assignment + +### Install Python (if necessary) +We use Python for this assignment. +This assigment only supports Python ver. 3. + +To check if Python 3.x is installed, launch a command prompt and type `python3 --version` and see the version. + +For MacOS and Ubuntu you have Python installed by default. +For Windows, you may need to install the Python by yourself. +[This document](https://docs.python.org/3/using/windows.html) show how to install Python 3.x on Windows. + + +### Virtual environment + +We want to install dependency ***locally*** for this assignment. + +```bash +cd acg- +python3 -m venv venv # make a virtual environment named "venv" +``` + +Then, start the virtual environment. +For Mac or Linux, type + +```bash +source venv/bin/activate # start virtual environment +``` + +For Windows, type + +```bash +venv\Scripts\activate.bat # start virtual environment +``` + +In the command prompt, you will see `(venv)` at the beginning of each line. +There will be `venv` folder under `acg-`. + +### Install dependency + +In this assignment we use many external library. We use `pip` to install these. + +```bash +pip3 install numpy +pip3 install moderngl +pip3 install moderngl_window +``` + +Alternatively, you can install above dependency at once by + +```bash +cd acg-/task08 +pip3 install -r requirements.txt +``` + +type `pip3 list` and then confirm you have libraries such as `moderngl`, `numpy`, `pillow`, `pyglet`, `pyrr` etc. + +### Make branch + +Follow [this document](../doc/submit.md) to submit the assignment, In a nutshell, before doing the assignment, +- make sure you synchronized the `main ` branch of your local repository to that of remote repository. +- make sure you created branch `task08` from `main` branch. +- make sure you are currently in the `task08` branch (use `git branch -a` command). + +Now you are ready to go! + +--- + +## Problem 1 (Python execution practice) + +Run the code with `python3 main.py` + +The program will output `output.png` that update the image below + +![problem1](output.png) + +## Problem 2 (Skeletal animation) + +In this problem, we compute the 3D transformation (rotation and translation) of each bone. + +Bones in a skeleton of a character ave a tree structure. Each bone has parent bone, except for the root bone (the bone with index 0). +For bone `i_bone`, the index of parent bone is `self.bone2parentbone[i_bone]`. +3D Affine transformation from the parent bone is written in `bone2relativeTransformation`. +Note that index of parent bone is always smaller than the child bone e.g., `ibone > bone2relativeTransformation[i_bone]`. + +Write some code around line #??? to compute the transformations of all the bones in `bone2globalTransformation`. + +This will animate the frames (red, blue, and green cylinders) of the bones. + +## Problem 3 (Linear Blend Skinning) + +We now have the 3D transformation of each bone, let's animate the mesh using the linear blend skinning. + +Write some code around line #??? to implement the linear blend skinning. + +Each vertex of the mesh is associated with four bones. +Use `inverseBindingMatrix` which has the inverse transformation of bone from origin to the undeformed mesh. + +This will animate black mesh. + +## After Doing the Assignment + +After modify the code, push the code and submit a pull request. Make sure your pull request only contains the files you edited. Good luck! + +BTW, You can exit the virtual environment by typing `deactivate` in the command prompt. + diff --git a/task08/main.py b/task08/main.py new file mode 100644 index 0000000..b1de4e3 --- /dev/null +++ b/task08/main.py @@ -0,0 +1,175 @@ +import os +import math +# +import pyrr +import numpy as np +import moderngl +import moderngl_window as mglw +from PIL import Image, ImageOps +# +import parse_gltf +import util_for_task08 + + + +class HelloWorld(mglw.WindowConfig): + ''' + Window to show the gltf animation + ''' + gl_version = (3, 3) + title = "task08: skeletal animation" + window_size = (500, 500) + aspect_ratio = float(window_size[0]) / float(window_size[1]) + resizable = False + + def __init__(self, **kwargs): + super().__init__(**kwargs) + + asset_dir = os.path.normpath(os.path.join(__file__, '../../asset')) + tri2vtx, self.vtx2xyz_ini, self.vtx2bones, self.vtx2weights, \ + self.bone2parentbone, self.bone2invBindingMatrix, \ + self.channels = parse_gltf.load_data( + os.path.join(asset_dir, 'CesiumMan.gltf'), + os.path.join(asset_dir, 'CesiumMan_data.bin')) + tri2vtx = tri2vtx.astype(np.uint32).reshape(-1, 3) + edge2vtx = util_for_task08.edge2vtx_from_tri2vtx(tri2vtx) # extract edges from triangle mesh + self.vtx2xyz_def = self.vtx2xyz_ini.copy() + self.animation_duration = 0 + for ch in self.channels: + self.animation_duration = max(self.animation_duration, ch.times.max()) + self. is_screenshot_taken = False + + self.prog = self.ctx.program( + vertex_shader=''' + #version 330 + uniform mat4 matrix; + in vec3 in_vert; + void main() { + gl_Position = matrix * vec4(in_vert, 1.0); + } + ''', + fragment_shader=''' + #version 330 + uniform vec3 color; + out vec4 f_color; + void main() { + f_color = vec4(color, 1.0); + } + ''', + ) + + ebo = self.ctx.buffer(edge2vtx) # send triangle index data to GPU (element buffer object) + vbo_ini = self.ctx.buffer(self.vtx2xyz_ini) # send initial vertex coordinates data to GPU + self.vao_ini = self.ctx.vertex_array( + self.prog, [(vbo_ini, '3f', 'in_vert')], + ebo, 4, mode=moderngl.LINES) # tell gpu about the mesh information and how to draw it + self.vbo_def = self.ctx.buffer(self.vtx2xyz_def) # send deformed vertex coordinates data to GPU + self.vao_def = self.ctx.vertex_array( + self.prog, [(self.vbo_def, '3f', 'in_vert')], + ebo, 4, mode=moderngl.LINES) # tell gpu about the mesh information and how to draw it + + # cylinder mesh + (tri2vtx_cyl, vtx2xyz_cyl) = util_for_task08.cylinder_mesh_zup(0.01, 0.05, 16) + ebo = self.ctx.buffer(tri2vtx_cyl) # send triangle index data to GPU (element buffer object) + vbo_cyl = self.ctx.buffer(vtx2xyz_cyl) # send deformed vertex coordinates data to GPU + self.vao_cyl = self.ctx.vertex_array( + self.prog, [(vbo_cyl, '3f', 'in_vert')], + ebo, 4, mode=moderngl.TRIANGLES) + + def render(self, time, frame_time): + time = time % self.animation_duration + num_bone = self.bone2invBindingMatrix.shape[0] + + # bone2relativeTransformation is a numpy array with shape (#num_bone, 4, 4) + # bone2relativeTransformation[i_bone] is a matrix representing 3D transformation from the parent bone of i_bone + bone2relativeTransformation = parse_gltf.get_relative_transformations(time, num_bone, self.channels) + + # bone2globalTransformation is a numpy array with shape (#num_bone, 4, 4) + # bone2globalTransformation[i_bone] is a matrix representing 3D transformation of each bone from the origin + bone2globalTransformation = np.zeros((num_bone, 4, 4)) + for i_bone in range(num_bone): + i_bone_parent = self.bone2parentbone[i_bone] + if i_bone_parent == -1: # root bone + bone2globalTransformation[i_bone] = bone2relativeTransformation[i_bone] + continue + # below, write one or two lines of code to compute `bone2globalTransformation[i_bone]` + # hint: use numpy.matmul for multiplying nd-array + # bone2globalTransformation[i_bone] = ??? + + for i_vtx in range(self.vtx2xyz_ini.shape[0]): # for each point in mesh + p0 = self.vtx2xyz_ini[i_vtx] + p0 = np.append(p0, np.array([1.0])) # homogeneous coordinate of undeformed point + p1 = np.array([0., 0., 0., 1.], dtype=np.float32) # p1 is the deformed point + for idx in range(4): # in gltf each vertex is associated with four bones + w = self.vtx2weights[i_vtx][idx] # rig weight + i_bone = self.vtx2bones[i_vtx][idx] # bone index + inverseBindingMatrix = self.bone2invBindingMatrix[i_bone] + globalTransformation = bone2globalTransformation[i_bone] + # write a few lines of codes to compute p1 using the linear blend skinning + # hint: use np.matmul for matrix multiplication + # hint: assume that rig weights w add up to one + + # p1 += ??? + + self.vtx2xyz_def[i_vtx] = p1[:3] # from homogeneous coordinates to the Cartesian coordinates + + self.vbo_def.write(self.vtx2xyz_def) + self.ctx.clear(1.0, 1.0, 1.0) + + # view transformation for undeformed character + transform_to_center = pyrr.Matrix44.from_translation((-0.8, 0., -0.8)) + view_rot_x = pyrr.Matrix44.from_x_rotation(np.pi * 0.5) + view_rot_y = pyrr.Matrix44.from_y_rotation(np.pi * 0.3) + view_transf = view_rot_y * view_rot_x * transform_to_center + + # draw undeformed mesh in red + self.prog['matrix'].value = tuple(view_transf.flatten()) + self.prog['color'].value = (1., 0., 0.) + self.vao_ini.render() + + # view transformation for deformed character + transform_to_center = pyrr.Matrix44.from_translation((+0.6, 0., -0.8)) + view_rot_x = pyrr.Matrix44.from_x_rotation(np.pi * 0.5) + view_rot_y = pyrr.Matrix44.from_y_rotation(np.pi * 0.3) + view_transf = view_rot_y * view_rot_x * transform_to_center + + # draw how the origin of each bone is transformed + for i_bone in range(num_bone): + transf = bone2globalTransformation[i_bone] + transf = np.matmul(transf.transpose(), view_transf) + # z_axis + self.prog['matrix'].value = tuple(transf.flatten()) + self.prog['color'].value = (0., 0.0, 0.8) + self.vao_cyl.render() + # x_axis + x_rot = pyrr.Matrix44.from_y_rotation(math.pi*0.5) + self.prog['matrix'].value = tuple((np.matmul(x_rot.transpose(), transf)).flatten()) + self.prog['color'].value = (0.8, 0., 0.) + self.vao_cyl.render() + # y_axis + y_rot = pyrr.Matrix44.from_x_rotation(-math.pi*0.5) + self.prog['matrix'].value = tuple((np.matmul(y_rot.transpose(), transf)).flatten()) + self.prog['color'].value = (0.0, 0.8, 0.) + self.vao_cyl.render() + + # draw deformed mesh in black + self.prog['matrix'].value = tuple(view_transf.flatten()) + self.prog['color'].value = (0., 0., 0.) + self.vao_def.render() + + # take a screenshot + if not self.is_screenshot_taken and time > 1.8: + self.is_screenshot_taken = True + rgb = np.frombuffer(self.ctx.fbo.read(), dtype=np.uint8) + rgb = rgb.reshape(self.ctx.fbo.size[0], self.ctx.fbo.size[1], 3) + rgb = Image.fromarray(rgb) + ImageOps.flip(rgb).save("output.png") + + + +def main(): + HelloWorld.run() + + +if __name__ == "__main__": + main() diff --git a/task08/output.png b/task08/output.png new file mode 100644 index 0000000000000000000000000000000000000000..da031b93fbed2c93c9537637108f95a2069e7e26 GIT binary patch literal 39018 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 numpy.typing.NDArray: + ''' + :param tri2vtx: triangle index of a mesh + :return: edges in the triangle mesh (shape=[#edge,2], dtype=np.int32) + ''' + v0 = tri2vtx[:, 0] + v1 = tri2vtx[:, 1] + v2 = tri2vtx[:, 2] + edge2vtx = numpy.stack([v0, v1], axis=1) + edge2vtx = numpy.vstack([edge2vtx, numpy.stack([v1, v2], axis=1)]) + edge2vtx = numpy.vstack([edge2vtx, numpy.stack([v2, v0], axis=1)]) + edge2vtx.sort(axis=1) + edge2vtx = numpy.unique(edge2vtx, axis=0) + return edge2vtx + + +def cylinder_mesh_zup(r, l, n) -> (numpy.typing.NDArray, numpy.typing.NDArray): + ''' + + :param r: + :param l: + :param n: + :return: triangle index and vertex coordinates + ''' + tri2vtx = numpy.zeros((4*n, 3), dtype=numpy.uint32) + for i in range(0, n): + tri2vtx[i, 0] = 0 + tri2vtx[i, 1] = 1+i + tri2vtx[i, 2] = 1+(i+1)%n + # + tri2vtx[n+i, 0] = 1+i + tri2vtx[n+i, 1] = 1+(i+1)%n + tri2vtx[n+i, 2] = 1+(i+1)%n+n + # + tri2vtx[2*n+i, 0] = 1+i + tri2vtx[2*n+i, 1] = 1+(i+1)%n+n + tri2vtx[2*n+i, 2] = 1+i+n + # + tri2vtx[3*n+i, 0] = 2*n+1 + tri2vtx[3*n+i, 1] = 1+(i+1)%n+n + tri2vtx[3*n+i, 2] = 1+i+n + + vtx2xyz = numpy.zeros((2*n+2, 3), dtype=numpy.float32) + vtx2xyz[0, :] = [0., 0., 0.] + for i in range(0, n): + theta = math.pi * 2.0 * float(i) / float(n) + vtx2xyz[1+i, :] = [r*math.cos(theta), r*math.sin(theta), 0.] + vtx2xyz[1+i+n, :] = [r*math.cos(theta), r*math.sin(theta), l] + vtx2xyz[2*n+1, :] = [0., 0., l] + + return (tri2vtx, vtx2xyz)