From fb5ef3fe6bc2eaf716c69df43c714a22390fdb4c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 25 Sep 2023 15:21:20 +0000 Subject: [PATCH] deploy: 384904c04357ab211aab606d65cf57382ac9720b --- 404.html | 4 +- About/index.html | 57 ++++++++++--------- Appendix/Vector-fill/index.html | 4 +- Basics/Vanilla/index.html | 4 +- Introduction/index.html | 4 +- Tessellation/index.html | 4 +- assets/js/5244698c.83d2a283.js | 1 + assets/js/5244698c.98e7429f.js | 1 - ...n.b39edb07.js => runtime~main.c60e20a8.js} | 2 +- category/appendix/index.html | 4 +- category/basics/index.html | 4 +- index.html | 4 +- 12 files changed, 48 insertions(+), 45 deletions(-) create mode 100644 assets/js/5244698c.83d2a283.js delete mode 100644 assets/js/5244698c.98e7429f.js rename assets/js/{runtime~main.b39edb07.js => runtime~main.c60e20a8.js} (98%) diff --git a/404.html b/404.html index e72faae..703a976 100644 --- a/404.html +++ b/404.html @@ -4,13 +4,13 @@ Page Not Found | Brush Rendering Tutorial - +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- + \ No newline at end of file diff --git a/About/index.html b/About/index.html index 8d9c573..2f1dcdd 100644 --- a/About/index.html +++ b/About/index.html @@ -4,40 +4,43 @@ About | Brush Rendering Tutorial - +
Skip to main content

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.

Moreover, I would appreciate if you recommend this tutorial to your collaborators.

About the tutorial

A good CG research work has novelty, while a seminal work also helps other researchers/engineers/artists pursue novelty. -I wish to accelerate this process with this tutorial for my upcoming PhD application. +contact me with my email address 1500013714 (at) pku (dot) edu (dot) cn.

Moreover, I would appreciate if you recommend this tutorial to your collaborators.

About the tutorial and research

A good CG research work has novelty, while a seminal work also helps other researchers, engineers, and artists pursue novelty. +I wish to accelerate this process with this tutorial for my upcoming Ph.D. application. Meanwhile, it's a practice of my mentor, Li-yi Wei, a Jedi master's -views on being a good educator and source code along with papers.

SoP

Overview

As my first-author paper, Ciallo: The Next-Generation Vector Paint Program suggests, -I'm interested in Computer Graphics (CG), particularly in developing digital paint software like Adobe Photoshop and Illustration. -I am applying for a Ph.D. program in Computer Science (CS) to continue my study on digital painting.

My research has already made breakthrough in this topic. I wish to make further progress during my PhD career and attract more researchers work on it. -To achieve that, now I'm developing a tutorial website (yeah the one you are looking at) to teach the brush rendering from my research -and transferring it into Blender.

What I prepared in details

In the project Ciallo, I designed the algorithms and developed the program individually. -And I wrote and published the research paper under the supervision of Li-Yi Wei. -The features I developed have been anticipated by the CG researchers/engineers/artists for almost two decades, -which is the reason why our paper reviewers are ok with a bit of exaggeration ("the next-generation") in the title. -Now I'm developing the website to teach everyone interested in my research and -integrating the upgraded version of my research into the Blender Grease Pencil (GP).

Before I started working on the Ciallo, my initial goal was to fix several GP's rendering bugs in 2021, -but they turned out far more than simple bugs but the algorithms causing the bugs were under-researched. -It was reckless for me, a naive young man with zero CS research experience, to try solving them, but the results cannot be better. -I guess the courage comes from where I started to learn the CG: doing something truly helpful for digital painting.

Why digital painting

I've been using graphics design software for digital painting like Photoshop since high school. -Meanwhile, I love playing video games and watching Japanese animation (anime), both of which rely on graphics design. -But unluckily, nobody directed me to the road of CG for my own interest in high school. -I majored in Psychology at college and learned statistics and AI to follow the trend.

But I determined my mind to pursue my true passions, game and anime, as a career after graduation. -At the time, there are infinite possible ways to contribute the game or anime industry for me. -I chose to research on digital painting, which I had already been familiar with and passionate on. -Also, a great research in digital painting can truly influence the industries and help artists produce more enjoyable artworks.

Career Plan

Therefore, my career goal is to keep contributing to the industries, starting from where I have made breakthrough. -There are a lot of easy-to-achieve but influential works waiting for our CG community to explore and discover. -Obviously, I cover tackle all the relevant works individually. -That's why during my academic career, I want to guide and inspire more researchers and engineers to work on them. -I'm eager to connect with individuals who share these interests.

- +views on being a good educator and source code along with papers.

Blender Grease Pencil (GP) greatly inspired my research. +It wouldn't be possible without those generous helps in learning the code from members of GP, +especially Falk David and Clément Foucault.

SoP

Overview

I am applying for a Ph.D. program in Computer Science (CS) to continue my study of digital painting. +As my first-author paper, Ciallo: The Next-Generation Vector Paint Program suggests, +I'm interested in Computer Graphics (CG), particularly developing digital paint software like Adobe Photoshop and Illustration.

My research has already made a critical breakthrough in this topic. +I wish to progress further during my Ph.D. career and attract more researchers to work on it. +To achieve that, I'm developing a tutorial website (yeah, the one you are looking at) to teach the brush rendering from my research +and integrating it into Blender.

What I prepared in detail

In the project Ciallo, I designed the algorithms and developed the program individually, +and later wrote and published the research paper under the supervision of Li-Yi Wei. +The features I developed, GPU brush rendering and vector fill, have been anticipated by CG researchers, engineers, and artists for almost two decades, +That's why our paper reviewers are okay with a bit of exaggeration ("the next-generation") in the title. +I'm now integrating my research into Blender Grease Pencil (GP), which greatly inspired my research .

Before I started working on the Ciallo, my initial goal was to fix several GP's rendering bugs. +They turned out far more than simple bugs, but the algorithms causing the bugs were under-researched. +It was reckless for me, a naive young man with zero CS research experience, to try solving them, but the results could not be better. +The courage comes from where I started to learn CG: doing something truly beneficial for digital painting.

Why digital painting

I've been using graphics design software for digital painting since high school. +Meanwhile, I love playing video games and watching Japanese animation (anime), both of which rely on graphics design software. +However, with limited career guidance, I should have asked for more help finding the path I love and excel in high school. +Randomly, I majored in Psychology at college, where I did a poor job.

Luckily, I never gave up finding and was determined to pursue my true passions, game and anime, as a career after graduation. +At the time, there were infinite possible ways to contribute to the game or anime industry. +I chose to research digital painting, which I was already familiar with and passionate about. +Also, significant research in digital painting can truly benefit artists producing great artworks and influence the industries.

Career Plan

Therefore, my career goal is to be a researcher and educator and keep contributing to the industries. +Many low-hanging fruits are waiting for our CG community to explore and discover, starting from where I have made the breakthrough. +I can only handle some of the relevant work individually. +That's why I want to guide and inspire more researchers and engineers to work on them during my academic career. +To begin with, I've created this tutorial series to help everybody learn my research. +I'm looking forward to assisting my collaborators working on the same research topic in the future.

+ \ No newline at end of file diff --git a/Appendix/Vector-fill/index.html b/Appendix/Vector-fill/index.html index 220e305..dffa3d3 100644 --- a/Appendix/Vector-fill/index.html +++ b/Appendix/Vector-fill/index.html @@ -4,7 +4,7 @@ Pre-introduction to Vector Fill | Brush Rendering Tutorial - + @@ -23,7 +23,7 @@ algorithms to locate a point better than the naive solution. To dive deeper, you may try using the CGAL 2D arrangement library and learn the arrangement constructed from 2D polylines, which is slightly different with a naive polygon mesh.

I hope this "2D mesh metaphor" will help you better understand the problems.

- + \ No newline at end of file diff --git a/Basics/Vanilla/index.html b/Basics/Vanilla/index.html index 38eb7b0..1a40ad0 100644 --- a/Basics/Vanilla/index.html +++ b/Basics/Vanilla/index.html @@ -4,13 +4,13 @@ Vanilla | Brush Rendering Tutorial - +
Skip to main content

Vanilla

note

Shader code will be introduced in this article. Feel free to play with.

Loading...

TODO

- + \ No newline at end of file diff --git a/Introduction/index.html b/Introduction/index.html index 5692cf3..48efa7f 100644 --- a/Introduction/index.html +++ b/Introduction/index.html @@ -4,7 +4,7 @@ Introduction | Brush Rendering Tutorial - + @@ -49,7 +49,7 @@ Next, select your favorite topics to learn. I will list extra prerequisites at the very beginning of each article.

Wish you happy learning!

Citation

@inproceedings{Ciallo2023,
author = {Ciao, Shen and Wei, Li-Yi},
title = {Ciallo: The next-Generation Vector Paint Program},
year = {2023},
isbn = {9798400701436},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3587421.3595418},
doi = {10.1145/3587421.3595418},
booktitle = {ACM SIGGRAPH 2023 Talks},
articleno = {67},
numpages = {2},
keywords = {Digital painting, stylized stroke, arrangement, vector graphics. coloring, graphics processing unit (GPU)},
location = {Los Angeles, CA, USA},
series = {SIGGRAPH '23}
}
Research Tip

To demonstrate your research work about brush rendering, select vector drawings have variable radius or pen pressure data. Regular vector drawing datasets don't contain them.

- + \ No newline at end of file diff --git a/Tessellation/index.html b/Tessellation/index.html index 273ad99..50ed28e 100644 --- a/Tessellation/index.html +++ b/Tessellation/index.html @@ -4,7 +4,7 @@ Tessellation-based Rendering | Brush Rendering Tutorial - + @@ -13,7 +13,7 @@ You can find them in several papers and online articles.

Paper and article list

They may inspire some approaches to optimize the performance of the articulated algorithms in the future. To learn about them, I would recommend Rye Terrell's Instanced Line Rendering, whose methods are simple enough to learn.

As for this article, I will compare the tessellation-based algorithms with articulated algorithms in detail.

TODO

spoiler

The key benefit of the articulated is its self-overlapping in acute angle, which is critical for brush strokes and digital painting.

- + \ No newline at end of file diff --git a/assets/js/5244698c.83d2a283.js b/assets/js/5244698c.83d2a283.js new file mode 100644 index 0000000..6bb8823 --- /dev/null +++ b/assets/js/5244698c.83d2a283.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkbrush_stroke_tutorial=self.webpackChunkbrush_stroke_tutorial||[]).push([[394],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>g});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),p=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},h=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),d=p(r),c=n,g=d["".concat(s,".").concat(c)]||d[c]||u[c]||i;return r?a.createElement(g,o(o({ref:t},h),{},{components:r})):a.createElement(g,o({ref:t},h))}));function g(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:n,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var a=r(7462),n=(r(7294),r(3905));const i={position:100,sidebar_label:"\u2192 I'm applying for a PhD"},o=void 0,l={unversionedId:"About/About",id:"About/About",title:"About",description:"Applying for Ph.D.",source:"@site/docs/About/About.mdx",sourceDirName:"About",slug:"/About/",permalink:"/brush-rendering-tutorial/About/",draft:!1,editUrl:"https://github.com/ShenCiao/brush-rendering-tutorial/tree/main/docs/About/About.mdx",tags:[],version:"current",frontMatter:{position:100,sidebar_label:"\u2192 I'm applying for a PhD"},sidebar:"tutorialSidebar",previous:{title:"Vector Fill",permalink:"/brush-rendering-tutorial/Appendix/Vector-fill/"}},s={},p=[{value:"Applying for Ph.D.",id:"applying-for-phd",level:2},{value:"About the tutorial and research",id:"about-the-tutorial-and-research",level:2},{value:"SoP",id:"sop",level:2},{value:"Overview",id:"overview",level:4},{value:"What I prepared in detail",id:"what-i-prepared-in-detail",level:4},{value:"Why digital painting",id:"why-digital-painting",level:4},{value:"Career Plan",id:"career-plan",level:4}],h={toc:p},d="wrapper";function u(e){let{components:t,...r}=e;return(0,n.kt)(d,(0,a.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"applying-for-phd"},"Applying for Ph.D."),(0,n.kt)("p",null,"I'm looking for PhD opportunities in top US schools to continue my research.\nIf your lab conducts research in the related topics like Sketching, Digital Painting, HCI or NPR, and has an available PhD position,\ncontact me with my email address ",(0,n.kt)("strong",{parentName:"p"},"1500013714 (at) pku (dot) edu (dot) cn"),"."),(0,n.kt)("p",null,"Moreover, I would appreciate if you recommend this tutorial to your collaborators."),(0,n.kt)("h2",{id:"about-the-tutorial-and-research"},"About the tutorial and research"),(0,n.kt)("p",null,"A good CG research work has novelty, while a seminal work also helps other researchers, engineers, and artists pursue novelty.\nI wish to accelerate this process with this tutorial for my upcoming Ph.D. application.\nMeanwhile, it's a practice of my mentor, ",(0,n.kt)("a",{parentName:"p",href:"https://www.liyiwei.org/personal/bio.html"},"Li-yi Wei"),", a Jedi master's\nviews on ",(0,n.kt)("a",{parentName:"p",href:"https://blog.liyiwei.org/?p=4668"},"being a good educator")," and ",(0,n.kt)("a",{parentName:"p",href:"https://blog.liyiwei.org/?p=868"},"source code along with papers"),"."),(0,n.kt)("p",null,"Blender Grease Pencil (GP) greatly inspired my research.\nIt wouldn't be possible without those generous helps in learning the code from members of GP,\nespecially ",(0,n.kt)("a",{parentName:"p",href:"https://www.linkedin.com/in/falk-david-61654b203/?originalSubdomain=nl"},"Falk David")," and ",(0,n.kt)("a",{parentName:"p",href:"http://www.clement-foucault.com/"},"Cl\xe9ment Foucault"),"."),(0,n.kt)("h2",{id:"sop"},"SoP"),(0,n.kt)("h4",{id:"overview"},"Overview"),(0,n.kt)("p",null,"I am applying for a Ph.D. program in Computer Science (CS) to continue my study of digital painting.\nAs my first-author paper, ",(0,n.kt)("em",{parentName:"p"},"Ciallo: The Next-Generation Vector Paint Program")," suggests,\nI'm interested in Computer Graphics (CG), particularly developing digital paint software like Adobe Photoshop and Illustration."),(0,n.kt)("p",null,"My research has already made a critical breakthrough in this topic.\nI wish to progress further during my Ph.D. career and attract more researchers to work on it.\nTo achieve that, I'm developing a tutorial website (yeah, the one you are looking at) to teach the brush rendering from my research\nand integrating it into ",(0,n.kt)("a",{parentName:"p",href:"https://devtalk.blender.org/t/add-stamp-brush-and-fix-airbrush/30884/3"},"Blender"),"."),(0,n.kt)("h4",{id:"what-i-prepared-in-detail"},"What I prepared in detail"),(0,n.kt)("p",null,"In the project ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/ShenCiao/Ciallo"},"Ciallo"),", I designed the algorithms and developed the program individually,\nand later wrote and published the research paper under the supervision of ",(0,n.kt)("a",{parentName:"p",href:"https://www.liyiwei.org/personal/bio.html"},"Li-Yi Wei"),".\nThe features I developed, GPU brush rendering and vector fill, have been anticipated by CG researchers, engineers, and artists for almost two decades,\nThat's why our paper reviewers are okay with a bit of exaggeration (\"the next-generation\") in the title.\nI'm now integrating my research into Blender Grease Pencil (GP), which greatly inspired my research ."),(0,n.kt)("p",null,"Before I started working on the Ciallo, my initial goal was to fix several GP's rendering bugs.\nThey turned out far more than simple bugs, but the algorithms causing the bugs were under-researched.\nIt was reckless for me, a naive young man with zero CS research experience, to try solving them, but the results could not be better.\nThe courage comes from where I started to learn CG: doing something truly beneficial for digital painting."),(0,n.kt)("h4",{id:"why-digital-painting"},"Why digital painting"),(0,n.kt)("p",null,"I've been using graphics design software for digital painting since high school.\nMeanwhile, I love playing video games and watching Japanese animation (anime), both of which rely on graphics design software.\nHowever, with limited career guidance, I should have asked for more help finding the path I love and excel in high school.\nRandomly, I majored in Psychology at college, where I did a poor job."),(0,n.kt)("p",null,"Luckily, I never gave up finding and was determined to pursue my true passions, game and anime, as a career after graduation.\nAt the time, there were infinite possible ways to contribute to the game or anime industry.\nI chose to research digital painting, which I was already familiar with and passionate about.\nAlso, significant research in digital painting can truly benefit artists producing great artworks and influence the industries."),(0,n.kt)("h4",{id:"career-plan"},"Career Plan"),(0,n.kt)("p",null,"Therefore, my career goal is to be a researcher and educator and keep contributing to the industries.\nMany low-hanging fruits are waiting for our CG community to explore and discover, starting from where I have made the breakthrough.\nI can only handle some of the relevant work individually.\nThat's why I want to guide and inspire more researchers and engineers to work on them during my academic career.\nTo begin with, I've created this tutorial series to help everybody learn my research.\nI'm looking forward to assisting my collaborators working on the same research topic in the future."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5244698c.98e7429f.js b/assets/js/5244698c.98e7429f.js deleted file mode 100644 index 22aa5c6..0000000 --- a/assets/js/5244698c.98e7429f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkbrush_stroke_tutorial=self.webpackChunkbrush_stroke_tutorial||[]).push([[394],{3905:(e,t,r)=>{r.d(t,{Zo:()=>h,kt:()=>g});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},h=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,h=l(e,["components","mdxType","originalType","parentName"]),u=p(r),c=a,g=u["".concat(s,".").concat(c)]||u[c]||d[c]||i;return r?n.createElement(g,o(o({ref:t},h),{},{components:r})):n.createElement(g,o({ref:t},h))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var n=r(7462),a=(r(7294),r(3905));const i={position:100,sidebar_label:"\u2192 I'm applying for a PhD"},o=void 0,l={unversionedId:"About/About",id:"About/About",title:"About",description:"Applying for Ph.D.",source:"@site/docs/About/About.mdx",sourceDirName:"About",slug:"/About/",permalink:"/brush-rendering-tutorial/About/",draft:!1,editUrl:"https://github.com/ShenCiao/brush-rendering-tutorial/tree/main/docs/About/About.mdx",tags:[],version:"current",frontMatter:{position:100,sidebar_label:"\u2192 I'm applying for a PhD"},sidebar:"tutorialSidebar",previous:{title:"Vector Fill",permalink:"/brush-rendering-tutorial/Appendix/Vector-fill/"}},s={},p=[{value:"Applying for Ph.D.",id:"applying-for-phd",level:2},{value:"About the tutorial",id:"about-the-tutorial",level:2},{value:"SoP",id:"sop",level:2},{value:"Overview",id:"overview",level:4},{value:"What I prepared in details",id:"what-i-prepared-in-details",level:4},{value:"Why digital painting",id:"why-digital-painting",level:4},{value:"Career Plan",id:"career-plan",level:4}],h={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},h,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"applying-for-phd"},"Applying for Ph.D."),(0,a.kt)("p",null,"I'm looking for PhD opportunities in top US schools to continue my research.\nIf your lab conducts research in the related topics like Sketching, Digital Painting, HCI or NPR, and has an available PhD position,\ncontact me with my email address ",(0,a.kt)("strong",{parentName:"p"},"1500013714 (at) pku (dot) edu (dot) cn"),"."),(0,a.kt)("p",null,"Moreover, I would appreciate if you recommend this tutorial to your collaborators."),(0,a.kt)("h2",{id:"about-the-tutorial"},"About the tutorial"),(0,a.kt)("p",null,"A good CG research work has novelty, while a seminal work also helps other researchers/engineers/artists pursue novelty.\nI wish to accelerate this process with this tutorial for my upcoming PhD application.\nMeanwhile, it's a practice of my mentor, ",(0,a.kt)("a",{parentName:"p",href:"https://www.liyiwei.org/personal/bio.html"},"Li-yi Wei"),", a Jedi master's\nviews on ",(0,a.kt)("a",{parentName:"p",href:"https://blog.liyiwei.org/?p=4668"},"being a good educator")," and ",(0,a.kt)("a",{parentName:"p",href:"https://blog.liyiwei.org/?p=868"},"source code along with papers"),"."),(0,a.kt)("h2",{id:"sop"},"SoP"),(0,a.kt)("h4",{id:"overview"},"Overview"),(0,a.kt)("p",null,"As my first-author paper, ",(0,a.kt)("em",{parentName:"p"},"Ciallo: The Next-Generation Vector Paint Program")," suggests,\nI'm interested in Computer Graphics (CG), particularly in developing digital paint software like Adobe Photoshop and Illustration.\nI am applying for a Ph.D. program in Computer Science (CS) to continue my study on digital painting."),(0,a.kt)("p",null,"My research has already made breakthrough in this topic. I wish to make further progress during my PhD career and attract more researchers work on it.\nTo achieve that, now I'm developing a tutorial website (yeah the one you are looking at) to teach the brush rendering from my research\nand transferring it into ",(0,a.kt)("a",{parentName:"p",href:"https://devtalk.blender.org/t/add-stamp-brush-and-fix-airbrush/30884/3"},"Blender"),"."),(0,a.kt)("h4",{id:"what-i-prepared-in-details"},"What I prepared in details"),(0,a.kt)("p",null,"In the project ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/ShenCiao/Ciallo"},"Ciallo"),", I designed the algorithms and developed the program individually.\nAnd I wrote and published the research paper under the supervision of ",(0,a.kt)("a",{parentName:"p",href:"https://www.liyiwei.org/personal/bio.html"},"Li-Yi Wei"),'.\nThe features I developed have been anticipated by the CG researchers/engineers/artists for almost two decades,\nwhich is the reason why our paper reviewers are ok with a bit of exaggeration ("the next-generation") in the title.\nNow I\'m developing the website to teach everyone interested in my research and\nintegrating the upgraded version of my research into the Blender Grease Pencil (GP).'),(0,a.kt)("p",null,"Before I started working on the Ciallo, my initial goal was to fix several GP's rendering bugs in 2021,\nbut they turned out far more than simple bugs but the algorithms causing the bugs were under-researched.\nIt was reckless for me, a naive young man with zero CS research experience, to try solving them, but the results cannot be better.\nI guess the courage comes from where I started to learn the CG: doing something truly helpful for digital painting."),(0,a.kt)("h4",{id:"why-digital-painting"},"Why digital painting"),(0,a.kt)("p",null,"I've been using graphics design software for digital painting like Photoshop since high school.\nMeanwhile, I love playing video games and watching Japanese animation (anime), both of which rely on graphics design.\nBut unluckily, nobody directed me to the road of CG for my own interest in high school.\nI majored in Psychology at college and learned statistics and ",(0,a.kt)("a",{parentName:"p",href:"https://coursera.org/share/92365937af6386c044ca4752e80e25df"},"AI")," to follow the trend."),(0,a.kt)("p",null,"But I determined my mind to pursue my true passions, game and anime, as a career after graduation.\nAt the time, there are infinite possible ways to contribute the game or anime industry for me.\nI chose to research on digital painting, which I had already been familiar with and passionate on.\nAlso, a great research in digital painting can truly influence the industries and help artists produce more enjoyable artworks."),(0,a.kt)("h4",{id:"career-plan"},"Career Plan"),(0,a.kt)("p",null,"Therefore, my career goal is to keep contributing to the industries, starting from where I have made breakthrough.\nThere are a lot of easy-to-achieve but influential works waiting for our CG community to explore and discover.\nObviously, I cover tackle all the relevant works individually.\nThat's why during my academic career, I want to guide and inspire more researchers and engineers to work on them.\nI'm eager to connect with individuals who share these interests."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.b39edb07.js b/assets/js/runtime~main.c60e20a8.js similarity index 98% rename from assets/js/runtime~main.b39edb07.js rename to assets/js/runtime~main.c60e20a8.js index 6caa23f..7cc6072 100644 --- a/assets/js/runtime~main.b39edb07.js +++ b/assets/js/runtime~main.c60e20a8.js @@ -1 +1 @@ -(()=>{"use strict";var e,t,r,o,a,n={},i={};function c(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={id:e,loaded:!1,exports:{}};return n[e].call(r.exports,r,r.exports,c),r.loaded=!0,r.exports}c.m=n,c.c=i,e=[],c.O=(t,r,o,a)=>{if(!r){var n=1/0;for(d=0;d=a)&&Object.keys(c.O).every((e=>c.O[e](r[u])))?r.splice(u--,1):(i=!1,a0&&e[d-1][2]>a;d--)e[d]=e[d-1];e[d]=[r,o,a]},c.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return c.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,c.t=function(e,o){if(1&o&&(e=this(e)),8&o)return e;if("object"==typeof e&&e){if(4&o&&e.__esModule)return e;if(16&o&&"function"==typeof e.then)return e}var a=Object.create(null);c.r(a);var n={};t=t||[null,r({}),r([]),r(r)];for(var i=2&o&&e;"object"==typeof i&&!~t.indexOf(i);i=r(i))Object.getOwnPropertyNames(i).forEach((t=>n[t]=()=>e[t]));return n.default=()=>e,c.d(a,n),a},c.d=(e,t)=>{for(var r in t)c.o(t,r)&&!c.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce(((t,r)=>(c.f[r](e,t),t)),[])),c.u=e=>"assets/js/"+({53:"935f2afb",147:"26251b8b",195:"22948d09",364:"ac092286",370:"ed94b18f",394:"5244698c",514:"1be78505",613:"6ae0415c",736:"d50c89f1",805:"bc662926",817:"14eb3368",918:"17896441",940:"a7b05c2e"}[e]||e)+"."+{5:"32dafc35",53:"7ca1a7a0",147:"2343b74d",195:"fa9be84a",364:"ef95a417",370:"9dbb1674",394:"98e7429f",514:"27794ed6",613:"aa8a3689",736:"e53c93e3",805:"a9adb9e5",817:"1495867d",918:"b90ff644",940:"fd1fd14f",972:"25a3f09a"}[e]+".js",c.miniCssF=e=>{},c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o={},a="brush-stroke-tutorial:",c.l=(e,t,r,n)=>{if(o[e])o[e].push(t);else{var i,u;if(void 0!==r)for(var f=document.getElementsByTagName("script"),d=0;d{i.onerror=i.onload=null,clearTimeout(b);var a=o[e];if(delete o[e],i.parentNode&&i.parentNode.removeChild(i),a&&a.forEach((e=>e(r))),t)return t(r)},b=setTimeout(s.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=s.bind(null,i.onerror),i.onload=s.bind(null,i.onload),u&&document.head.appendChild(i)}},c.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.p="/brush-rendering-tutorial/",c.gca=function(e){return e={17896441:"918","935f2afb":"53","26251b8b":"147","22948d09":"195",ac092286:"364",ed94b18f:"370","5244698c":"394","1be78505":"514","6ae0415c":"613",d50c89f1:"736",bc662926:"805","14eb3368":"817",a7b05c2e:"940"}[e]||e,c.p+c.u(e)},(()=>{var e={303:0,532:0};c.f.j=(t,r)=>{var o=c.o(e,t)?e[t]:void 0;if(0!==o)if(o)r.push(o[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var a=new Promise(((r,a)=>o=e[t]=[r,a]));r.push(o[2]=a);var n=c.p+c.u(t),i=new Error;c.l(n,(r=>{if(c.o(e,t)&&(0!==(o=e[t])&&(e[t]=void 0),o)){var a=r&&("load"===r.type?"missing":r.type),n=r&&r.target&&r.target.src;i.message="Loading chunk "+t+" failed.\n("+a+": "+n+")",i.name="ChunkLoadError",i.type=a,i.request=n,o[1](i)}}),"chunk-"+t,t)}},c.O.j=t=>0===e[t];var t=(t,r)=>{var o,a,n=r[0],i=r[1],u=r[2],f=0;if(n.some((t=>0!==e[t]))){for(o in i)c.o(i,o)&&(c.m[o]=i[o]);if(u)var d=u(c)}for(t&&t(r);f{"use strict";var e,t,r,o,a,n={},i={};function c(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={id:e,loaded:!1,exports:{}};return n[e].call(r.exports,r,r.exports,c),r.loaded=!0,r.exports}c.m=n,c.c=i,e=[],c.O=(t,r,o,a)=>{if(!r){var n=1/0;for(d=0;d=a)&&Object.keys(c.O).every((e=>c.O[e](r[u])))?r.splice(u--,1):(i=!1,a0&&e[d-1][2]>a;d--)e[d]=e[d-1];e[d]=[r,o,a]},c.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return c.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,c.t=function(e,o){if(1&o&&(e=this(e)),8&o)return e;if("object"==typeof e&&e){if(4&o&&e.__esModule)return e;if(16&o&&"function"==typeof e.then)return e}var a=Object.create(null);c.r(a);var n={};t=t||[null,r({}),r([]),r(r)];for(var i=2&o&&e;"object"==typeof i&&!~t.indexOf(i);i=r(i))Object.getOwnPropertyNames(i).forEach((t=>n[t]=()=>e[t]));return n.default=()=>e,c.d(a,n),a},c.d=(e,t)=>{for(var r in t)c.o(t,r)&&!c.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce(((t,r)=>(c.f[r](e,t),t)),[])),c.u=e=>"assets/js/"+({53:"935f2afb",147:"26251b8b",195:"22948d09",364:"ac092286",370:"ed94b18f",394:"5244698c",514:"1be78505",613:"6ae0415c",736:"d50c89f1",805:"bc662926",817:"14eb3368",918:"17896441",940:"a7b05c2e"}[e]||e)+"."+{5:"32dafc35",53:"7ca1a7a0",147:"2343b74d",195:"fa9be84a",364:"ef95a417",370:"9dbb1674",394:"83d2a283",514:"27794ed6",613:"aa8a3689",736:"e53c93e3",805:"a9adb9e5",817:"1495867d",918:"b90ff644",940:"fd1fd14f",972:"25a3f09a"}[e]+".js",c.miniCssF=e=>{},c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o={},a="brush-stroke-tutorial:",c.l=(e,t,r,n)=>{if(o[e])o[e].push(t);else{var i,u;if(void 0!==r)for(var f=document.getElementsByTagName("script"),d=0;d{i.onerror=i.onload=null,clearTimeout(b);var a=o[e];if(delete o[e],i.parentNode&&i.parentNode.removeChild(i),a&&a.forEach((e=>e(r))),t)return t(r)},b=setTimeout(s.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=s.bind(null,i.onerror),i.onload=s.bind(null,i.onload),u&&document.head.appendChild(i)}},c.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.p="/brush-rendering-tutorial/",c.gca=function(e){return e={17896441:"918","935f2afb":"53","26251b8b":"147","22948d09":"195",ac092286:"364",ed94b18f:"370","5244698c":"394","1be78505":"514","6ae0415c":"613",d50c89f1:"736",bc662926:"805","14eb3368":"817",a7b05c2e:"940"}[e]||e,c.p+c.u(e)},(()=>{var e={303:0,532:0};c.f.j=(t,r)=>{var o=c.o(e,t)?e[t]:void 0;if(0!==o)if(o)r.push(o[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var a=new Promise(((r,a)=>o=e[t]=[r,a]));r.push(o[2]=a);var n=c.p+c.u(t),i=new Error;c.l(n,(r=>{if(c.o(e,t)&&(0!==(o=e[t])&&(e[t]=void 0),o)){var a=r&&("load"===r.type?"missing":r.type),n=r&&r.target&&r.target.src;i.message="Loading chunk "+t+" failed.\n("+a+": "+n+")",i.name="ChunkLoadError",i.type=a,i.request=n,o[1](i)}}),"chunk-"+t,t)}},c.O.j=t=>0===e[t];var t=(t,r)=>{var o,a,n=r[0],i=r[1],u=r[2],f=0;if(n.some((t=>0!==e[t]))){for(o in i)c.o(i,o)&&(c.m[o]=i[o]);if(u)var d=u(c)}for(t&&t(r);f Appendix | Brush Rendering Tutorial - + - + \ No newline at end of file diff --git a/category/basics/index.html b/category/basics/index.html index 2625172..6990c9a 100644 --- a/category/basics/index.html +++ b/category/basics/index.html @@ -4,13 +4,13 @@ Basics | Brush Rendering Tutorial - + - + \ No newline at end of file diff --git a/index.html b/index.html index fd41fd1..3af6d55 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ Table of Contents | Brush Rendering Tutorial - + @@ -15,7 +15,7 @@ The pattern is achieved by setting the intervals between dots proportional to their radii. You will learn how to freely control stamp density along a stamp stroke. Very important for a serious project.

3D stroke

Learn how to extend the algorithms to 3D space.

I'm integrating it into the Blender Grease Pencil:

- + \ No newline at end of file