From BlenderWiki

Jump to: navigation, search
Note: This is an archived version of the Blender Developer Wiki. The current and active wiki is available on wiki.blender.org.

Proposal: Blender NPR Line Rendering Improvement

Name

YimingWu 吴奕茗

Contact

xp8110@live.com

xp8110@outlook.com

IRC YimingWu

QQ 1094469528

Introduction

To developers and artists who is looking forward to have a more production-ready NPR line render, I propose some improvements to blender's freestyle (or not using freestyle), enables much faster (real time preferred) line rendering with much fewer errors. Many artists who I once worked with have suggested that this feature should go into blender's code base to ensure a fluent workflow. As blender's 2.8 hasn't decided freestyle's fate and it will very likely became obsolete if no one cares about it anymore, therefore I present my development here as a proposal to this year's GSoC project, and hope it can demonstrate its ability.

Targets

This proposal gives two options on major targets.

When the major focus is the Real Time solutions, the target should be:

  • Viewport real time line drawing. (and corresponding UI)
  • Line texture/style support.(and corresponding UI)

When the major focus is Offline Rendering, here are the targets:

  • Overcome occlusion computation errors.
  • Making Freestyle running on multi-thread.
  • Implement intersection lines.
  • Implement a more user friendly line-set structure.

Benefits

Freestyle will become production ready for it will involve nearly zero post-render hand trimming. This is a huge benefit for artists creating stylized images especially in comic/manga style.

People who use Freestyle to generate engineer figure or animation will get accurate result with less time.

Future real time preview feature can co-operate with eevee, give very promising cartoon render effect.

Project Schedule

GSoC 2018 in progress! Check the dev logs below!

some questions and answers can be found Here>>>.

(due to change of solutions this section become more variable...)

To implement two new real time solutions: estimated 5 Weeks

  • DPIX implementation: about 1-2 weeks, Blender should already have many GL api wrappings, they will make things easier.
  • Snake implementation: about 3 weeks, including basic functions, line style support, ui and so on. Will take advantage of eevee's workbench code and do some necessary after effects on that also.
  • DPIX with GPU intersection line will spend more time maybe about 2 weeks, depends on the progress of development. If I do things fast it is very likely that I can implement this too.

To implement Freestyle speedup: estimated 6 Weeks

  • Infrastructure adaptation: about 1-2 Weeks
  • Algorithm integration: about 2-3 Weeks
  • Realtime line style preview: about 1 Week
  • Freestyle user interface reconstruction: about 1 Week

Because nearly all algorithm thing are implemented and tested, it should be not very hard to integrate it into Blender.

My school classes will finish at around May 20th and since then I'm free to work on this project full time until August 30th.

About me

My name is Yiming Wu. I live in China.

Currently studying at Industrial Design Department at Xi'an Jiaotong University.

Blender User experience since 2011. Using it as a hobby, good at hard-surface and mechanical structure modeling. Not quite good at sculpting. I have a portfolio about some of my blender usage at Artstation.

Programming experience

Internship at 3DPunk.com (a Chinese website similar to Sketchfab), worked on PBR and NPR shaders, three.js drawing core codes, and a server-side image generation for patent agent client. Approved by devs.

Coding our own studio 3d test platform (c library), including Win32, OpenGL (api boundle and making shaders), user interface kernel, scene management, file io, node graph, animation and so on. Under continuous development. Tested and used at Beijing PIGO studio, one of BlenderCN community's major studio.

images used to demostrate line render result in this proposal are also captured in this platform.

Mobile app user interface design for a Chinese website myouth.cn.

Wrote several Blender RNA Architecture Analysis documents for Chinese developers.

I haven't submitted code to d.b.o. But I can certainly do some small hacks to show that I'm able of solving problems in Blender.

References

Some major sources for technical reference are included below.

Other older reference including series of books.

  • The Algorithms and Principles of Non-photorealistic Graphics, Weidong Geng, Zhejiang University Press.
  • NON-PHOTOREALISTIC COMPUTER GRAPHICS MODELING, RENDERING, AND ANIMATION, Thomas Strothotte, Stefan Schlechtweg, Otto-von-Guericke University of Magdeburg