About
Applying for Ph.D.
+About
Applying for Ph.D.
I'm looking for PhD opportunities in top US schools to continue my research. If your lab conducts research in the related topics like Sketching, Digital Painting, HCI or NPR, and has an available PhD position, contact me with my email address 1500013714 (at) pku (dot) edu (dot) cn.
diff --git a/Airbrush/index.html b/Airbrush/index.html index 07e69a0..6aa2bef 100644 --- a/Airbrush/index.html +++ b/Airbrush/index.html @@ -4,11 +4,11 @@Airbrush
Airbrush
An airbrush stroke looks like a solid vanilla stroke. The main difference is its transparency gradient from middle axis to rim.
Technologically, traditional airbrush is a special type of stamp brush whose footprint is a transparent dot. diff --git a/Appendix/Vector-fill/index.html b/Appendix/Vector-fill/index.html index 3d6c6fc..9b5277d 100644 --- a/Appendix/Vector-fill/index.html +++ b/Appendix/Vector-fill/index.html @@ -4,11 +4,11 @@
Pre-introduction to Vector Fill
You may have learned how to render brush strokes on polyline curves. +
Pre-introduction to Vector Fill
You may have learned how to render brush strokes on polyline curves. If you want to develop a basic paint program like what I did, the next logical step is to learn how to fill color.
Vector fill demo
diff --git a/Basics/Basics/index.html b/Basics/Basics/index.html index da5300b..a9caafc 100644 --- a/Basics/Basics/index.html +++ b/Basics/Basics/index.html @@ -3,36 +3,37 @@ -Basics
Brush strokes
+Problem Statement
Brush strokes
Open-source brush presets by Raghavendra in Krita.
In graphics design software such as Photoshop and Krita, you can use a wide range of brushes within the paint tool. Learning how to render these stylized strokes with GPU is valuable. However, there are over thousands of brushes available in Photoshop, which can be overwhelming to explore. Luckily, more than 90% of the brushes are designed under the "stamp model", and we call them "stamp brushes".
-In the upcoming Stamp section, I will introduce the stamp model and how to implement it in a shader program. -But for your better understanding, I will introduce the basic solid stroke called "vanilla" first. +
In the upcoming Stamp section, I will introduce the basic solid stroke called "vanilla" first, +then the stamp model and how to implement it in a shader program. The vanilla and stamp strokes share the exact same vertex placement method. -It's much easier to start with the vanilla stroke, later the stamp stroke. -Maybe the stamp strokes with various styles don't interest you, feel free to ignore it and learn the vanilla stroke only. -It's very useful when drawing UIs or debugging your 3D scenes.
-While you may recognize a brush stroke by its stylization, another crucial property could be ignored: the "variable radius" along the stroke. -(I also ignored it in my paper.) -The radii are typically generated from the pressure values as a stylus presses and moves on a tablet. +For your better understanding, avoid jumping right into the stamp part.
+Maybe the stamp strokes with various styles don't interest you, feel free to ignore it and learn the vanilla stroke only. +Knowing how to render a line is very handy when drawing UIs or debugging your 3D scenes.
+While you may recognize a brush stroke by its stylization, another crucial property could be ignored: +the "variable width" along the stroke. The property is critical for experienced artists drawing professional illustrations or animations. +For instance, you can tell the difference from the figure below. +The one with variable width on the right has much better appearance.
+ +The width values are typically generated from the pressure values as a stylus presses and moves on a tablet. After the artists install a new painting program, one of the highest priorities is to configure the mapping function from pen pressure to brush radius.
In case you don't know about tablets and styluses
Variable radius along a stroke.
Geometric data
-To store the variable radius in brush stroke, we will render a unique type of vector curve: +
To store the variable radius in brush stroke, we will render an uncommon type of vector curve: An ordered list of points (polyline) with radius values assigned to each point. As a user presses a stylus on a tablet and moves, a paint program generates a sequence of points to record the trace of movement. Meanwhile, the pen pressure is transformed into the radius value assigned to each point. @@ -46,7 +47,7 @@
Geometric dat
- geometry.js
Loading...
-
- geometry.js
Blender Grease Pencil team has developed a lot of novel tools to edit this polyline with radius representation. +
Blender Grease Pencil team has developed a lot of novel tools to edit polylines. Remember to check out if you were a researcher and want to develop novel techniques for digital painting.
Stamp
Intro
+Stamp
Intro
The basic stamp stroke rendering is pretty intuitive. We are given a texture called stamp texture or footprint. While a user paints on a canvas, we render the texture onto the canvas equidistantly along the drawing trace. diff --git a/Basics/Vanilla/index.html b/Basics/Vanilla/index.html index 1a4fcb6..9a8c27e 100644 --- a/Basics/Vanilla/index.html +++ b/Basics/Vanilla/index.html @@ -4,11 +4,11 @@
Vanilla
Uni radius
+Vanilla
Uni radius
Let's start with a solid stroke with a single radius value. Later, add variable radius to it.
@@ -115,6 +115,6 @@