中文

Yiyang Chen's project demos

Master of Computer graphics and game technology, University of Pennsylvania
Email: yiyangch@seas.upenn.edu

Geometry Optimization Authoring Tool

Based on papers "Shape-Up: Shaping Discrete Geometry with Projections" and "Anderson Acceleration for Geometry Optimization and Physics Simulation", made an authoring tool with C++. We implemented some operations for input model, including planarization, wire mesh design and ARAP deforamtion.

We make a standalone application as well as a maya plugin.

Standalone application video

Presentation video

Slides


Physically Based Rendering Program

Made a physically based rendering CPU program using C++ and Qt. I implemented the path tracing algorithm, and I used multiple importance sampling (MIS) to estimate contribution of each vertex on the path.

The program first loads a scene file in JSON format and then renders with user-defined sample times, recursion limit and integrator type. In the integrate type option, "Surface Normals" just render the surface normal of the scene; "Full Lighting" is the path tracing integrator; and "Direct Lighting" just compute the direct light with MIS, which can be regarded as "Full Lighting" with recursion limit 1.

Also made a GPU program with the same algorithm.

See the following video. The first is CPU rendering program and the second is GPU. Some part of the render process in the CPU program is clipped.


Mini Minecraft

Made a Mini Minecraft game using Qt and OpenGL. Player can move around in fly mode and ground mode, and create or destroy nearby blocks. The terrain is procedual generated, and thus has no boundary. The following videos demonstrate all the features we implemented in the game.


LSystem Plugin for Maya and Houdini

Made a simple Maya LSystem plugin and a Houdini LSystem plugin. Input grammar, iterations, angle and step size, you can get the generated model.


Mesh and Skeleton Editor

Made a mesh and skeleton editor using Qt and OpenGL with half-edge mesh structure. It can load model file in "obj" format and skeleton file in "json" format and then edit them. Implemented operations include ray casting selection, add midpoint, triangulate, subdivision, two methods of skinning, and two methods of blending.


Small Unreal Games

Made 2 small games with UE4 engine

This game is a little similar to "Monument Valley", involving optical illusion under specific view. You should change the camera views to find new road and finally reach destination.


This is a VR game, can be regarded as the 3D version of "Full Tilt! Pinball". You need to use your controllers to hit the ball to prevent it from falling behind, and make the ball hit various types of objects to get score.


Funny Render effect

Implemented some interesting render effect in OpenGL.

Vertex deformation:

Post processing:


Forward Kinematic and Inverse Kinematic

Implemented forward kinematic and some inverse kinematic methods including CCD Algorithm, geometry and pseudo inverse. And used IK in the walk cycle



Fixed foveated Rendering

Implemented a fixed foveated rendering with pixel discard and recover in Unity