blender.org
code.blender.org
User:LightBWK
for
User:LightBWK
User page
No discussion
Links
Contributions
View source
History
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
.
You can view and copy the source of this page:
= Blender Extended Expressive Rendering (BEER) Proposal = Disclaimer: '''Everything is work in progress. Updates will be frequent.''' This is a proposal to upgrade the current limited Expressive Rendering of Blender Internal Renderer. BEER also looks into solving workflow problem and hasten stylize shader production. *'''NEW:''' [http://beer.blendernpr.org BEER Development forum] *'''BEER Update (August 2013):''' [http://blendernpr.org/beer-a-wordy-leet-intro-august-2013/ BNPR: BEER Update] *'''BEER design overview (July 2014):''' [http://blendernpr.org/beer-design-overview-july-2014/ BNPR: BEER Design Overview] *'''In Depth Analysis:''' [https://docs.google.com/document/d/1jBnLeqX2At0KjpDE3rSbOoppO4t9ONuiYXNSXIrKE0I/edit# NPR & color, BI & BEER] *'''OLD Links''' **'''Discussion Thread:''' [http://www.blenderartists.org/forum/showthread.php?290829-Blender-Extended-Expressive-Rendering-%28BEER%29-Extending-Blender-Internal Blender Extended Expressive Rendering (BEER): Extending Blender Internal] **'''Second Development Thread:''' [http://blenderartists.org/forum/showthread.php?303530-BEER-(Blender-Extended-Expressive-Rendering)-Update BEER (Blender Extended Expressive Rendering) Update] [[File:BeerOverview.png|center|thumb|800px]] '''Note:''' All shader must have realtime visual feedback via GLSL. ---- ==General Workflow Improvements== *Stackable color ramps, as modifiers [http://blenderartists.org/forum/showthread.php?290829-Advanced-Toon-Shading-Extending-Blender-Internal&p=2377311&viewfull=1#post2377311 Reference #1] | [http://blenderartists.org/forum/showthread.php?290829-Advanced-Toon-Shading-Extending-Blender-Internal&p=2377908&viewfull=1#post2377908 Reference #2] Stackable "UberShader" | [http://hal.inria.fr/hal-00617157/en Dynamic Stylize Shading Primitive] | [http://www.blenderartists.org/forum/showthread.php?295590-Dynamic-Stylized-Shading BA thread test implementation via OSL] {| style="margin: 0 auto;" |- | <vimeo width="640" height="360">25024611</vimeo> |} *A faster workflow for passes ID needed [Open for suggestions and mock-ups] :"My biggest issue with the current ramp shader- I can't split each cell shade to a different pass. From there on I bet there is a way to make it fuzzy in the compositor." :"like to see a pass index output node for the node editor. So we can output any stage of our node material as a pass." :[http://blenderartists.org/forum/attachment.php?attachmentid=238371&d=1370397370 Reference UI] *A unified screen space texture that blends with every material. ---- ==Cel Toon== This toon shader mimics hard edge toon, often seen in anime and old cel animation '''Workflow Video Reference:''' [http://www.youtube.com/results?search_query=psoft+pencil+3ds+max Psoft Pencil+ for 3ds MAX] '''Note:''' All comments in this section are raw and unfiltered. For better arrangement of the items please read [https://docs.google.com/document/d/15kZTG-TW9dSJKPtR7nCPYeniiwb2a5CCpugq--H6eMQ/edit BEER Toon Shaders Intro] ===Normals control=== Toon shader is very sensitive. Surface normals play a big role here. Unlike photorealistic rendering (PR) which has a ton of information, toon shader use flat tone silhouettes to represent shape and shade. When the silhouette is off, it is very easy to detect. Hence artists are demanding for *The ability to '''separately control the normal angles''' for the highlights/spec & the mids/diffuse (and better yet a set of dark tones too) *The normal angle/mapping '''calculations for each tonal range''' (high/mid/low) *The ability '''keyframing a normal angle''', or a normal mapping value in a shader's node-tree. *Include an option in each node normal input/control to easily link (drive) that input/control with the angle of an empty or light in the scene. [normals tracking object] (parallel and point) *The ability to '''normalize normals''', to smooth out normals from being over accurate In short, each tone must have its own normal control (can be chained together). Normal offset can be keyed and be controllable by an object such as an empty or a lamp. ===Gradation control=== Gradation means (in painting, drawing, or sculpture) transition from one colour, tone, or surface to another through a series of very slight changes. In the case of cel toon shading artists demand *Ability to '''control the level at which each bleeds into/over''' the other's range *The ability to make the borders between cell shades fuzzy by using a displacement map [gradations] *'''Control on gradation of colors'''. Something like a modifier for gradation offset. Must have some level of abstraction *Gradation of blending between cell shades with a grayscale image. *Gradation to produce '''fur/feather/hair shading''' *'''Animate-able gradation''' for simple water/liquid surface shader In short, gradation needs to be offset-able, fades, blends with texture maps as modifier. {| style="margin: 0 auto;" |- | <youtube width="640" height="360">PmBTK8TbpPA</youtube> |} *[http://www.hpi.uni-potsdam.de/doellner/publications/year/2013/2292/LTSD13.html Interactive Projective Texturing for Non-Photorealistic Shading of Technical 3D Models] ===Light, Color & Shadow=== *One object to '''cast a shadow over another or over itself''' (characters)- but that shadow doesn't necessarily need to have a falloff *Could '''take the color of the light source into consideration''' *A 2-tone scene with a light and want to add another one, it '''doesn't go multi-tone''' *Most importantly I wish we could specify the colour of each cell just by giving it a colour we want. That way it's possible to use more artistic complimentary colours easily. *'''Simplifying shadows''' by normalizing surface quality *"Shadows being too perfect" problem could be partially solved by a key-able '''"temporary bake"''' option. ie: when a character moves his head vertically, the highlights, shadows etc don't always change. So, the primary position's values could be temporarily baked in and then removed later in the animation when needed. *'''Highlight shaping'''. Highlight (specular reflection) it is abstract in cel/toon animation. No surface quality decides where it goes. So an abstract solution must be available Highlight shaping related papers: *[http://hal.inria.fr/inria-00277102/en/ Sketch and Paint-based Interface for Highlight Modeling] *[http://130.203.133.150/viewdoc/summary;jsessionid=687661CEF20A2ACB3158799C28F538DB?doi=10.1.1.229.4112 NPR Stylized Highlights for Cartoon Rendering and Animation] Tomo discusses toon shader in general and why toon shader in BI and Cycles are wrong. *[http://sites.google.com/site/tomo0web/home/blender-lab/s02 Blender's toon shader and how to fix it - In Japanese] *[http://ofo.jp/blog1132881740.phtml Color theory for toon shader - In Japanese] Here Vicente Carro describes the controls that need to be exposed in the UI. [Vicente Carro apologizes for his poor English] {| style="margin: 0 auto;" |- | <youtube width="640" height="360">_scL0xgLPhs</youtube> |} ===Implementation Agenda=== '''Type of shading:''' :1. Lighting dependent :2. Light and View independent (custom normal) :: Note: Numeric entry and 3D View keyboard control over the normal sphere. Copy-paste normal value. :: Workflow examples: ::*Put the cursor over normal sphere and press R, X, 45, enter. ::*Press drop down near normal sphere, enter number, enter. ::*Mouse roll over sphere, ctrl + C, copy normal and Ctrl + V, paste normal values :3. Light independent and view dependent (view/cam normal) '''Intuitive controls and setup:''' :1. Not going into node to edit :2. Vertex paint friendly :: Note: Need something more precise, big face will lead to blurry vertex paint [no solution yet] :3. One element (layer) editing per time :4. On mesh shader editing :5. Multiple color ramp per shader :6. Adjusting tones border, vector like editing :: Note: Cel-toon case, moving terminator, not fading it :7. Key-able shader :8. Blending mode between layers, alpha and alpha over ---- ==Soft Toon== This mimics soft toon shading commonly seen in old Disney animations and games like Team Fortess 2 '''Implementation paper by Valve:''' *[http://www.valvesoftware.com/publications/2007/NPAR07_IllustrativeRenderingInTeamFortress2.pdf Illustrative rendering in Team Fortress 2] '''[PDF]''' '''Principals of soft toon (based on paper):''' *Shading obeys a warm-to-cool hue shift. Shadows go to cool, not black. *Saturation increases at the terminator with respect to a given light source. The terminator is often reddened. *High frequency detail is omitted where possible *On characters, interior details such as clothing folds are chosen to echo silhouette shapes *Silhouettes are emphasized with rim highlights rather than dark outlines '''Soft Toon consist of the following components:''' '''View-independent functions''' (Diffuse) *Half-Lambert (see demo file below) *Light Warping *Basic Ambient Component *Albedo (Texture) '''View-dependant functions''' (Specular) *Specularity *Dedicated Rim *Directional Bias {| style="margin: 0 auto;" |- | <youtube width="640" height="360">hVIPxd5v6P8</youtube> |} {| style="margin: 0 auto;" |- | <vimeo width="640" height="360">17535548</vimeo> |} '''Additional Notes:''' *'''Note:''' [http://www.sfdm.scad.edu/faculty/mkesson/vsfx419/wip/spring11/eric_kurzmack/toon.html RSL Implementation] *'''Half Lambert implementation in BI:''' [http://blenderartists.org/forum/showthread.php?290829-Advanced-Toon-Shading-Extending-Blender-Internal&p=2374425&viewfull=1#post2374425 Half Lambert shader via BlenderArtists.org] | [http://blenderartists.org/forum/showthread.php?290829-Blender-Extended-Expressive-Rendering-(BEER)-Extending-Blender-Internal&p=2381288&viewfull=1#post2381288 Extra note] *'''Half Lambert Demo File:''' [[File:Half_Lambert.blend]] ---- ==X-Toon (2D color map / 2D Ramp)== '''Reference Paper and Video:''' http://hal.inria.fr/inria-00362888/en In Pascal Barla (the researcher) own words: :'''"The main question to answer with this technique is: What should I put on the vertical axis of the X-Toon texture?"''' *Fake '''motion blur''' of shader (speed change Y axis of 2D map) *Fake fast '''Depth-of-Field''' (relative distance change LOD of shader, then more effect done in post) *Fake fast '''SSS''' *Product Rendering shading (rendered CG) *Motion Graphics Shading (game) *For realistic: 2D color map can be sampled from photos for real colors. *Fake Photo-Real application: **Fast, less noise '''AO''' in a “cave” or hallway situation (no lighting involved) **Fast, '''fake fog effect''' for distant objects (VFX/matte overlay) *'''Shader version of Edge Nodes/FreeStyle''' (limited control) Related research paper: *Apparent Relief, Link:[http://www.labri.fr/perso/barla/blog/?p=15631 '''Research Paper'''] {| style="margin: 0 auto;" |- | <vimeo width="640" height="360">1717416</vimeo> |} ===2D Map Creation=== Vector 2D map maker (Diffusion Curves): :'''Vector, 2D map maker:''' http://artis.imag.fr/Publications/2008/OBWBTS08/ :'''Program:''' http://www.henrykorol.com/DiffusionCurves.rar '''[Windows]''' Related Papers for vector 2D map maker: *http://www.cg.tuwien.ac.at/research/publications/2009/jeschke-09-rendering/ *http://www.cg.tuwien.ac.at/research/publications/2009/jeschke-09-solver/ *http://maverick.inria.fr/Publications/2010/BEDT10/index.php For raster 2D map creation inside Blender, the hardest part to do now is doing smooth blending, '''gradient tool''' is needed. {| style="margin: 0 auto;" |- | <youtube width="640" height="360">lovKtK9_ygs</youtube> |} '''Additional Notes:''' * http://www.labri.fr/perso/barla/blog/?p=28621 *[http://www.blenderartists.org/forum/showthread.php?294825-X-Toon-OSL-Implementation All your OSL X-Toon in ONE place] ---- ==Optional Features (For your consideration)== ===Line Rendering=== {| style="margin: 0 auto;" |- | <youtube width="640" height="360">JY07drrB8WM</youtube> |} ===Hatching=== *'''Cross hatching''' (in light and in shadow area) Hatching related papers: *[https://research.microsoft.com/en-us/um/people/hoppe/hatching.pdf Real-time hatching - Microsoft Research] '''[PDF]''' | [https://www.youtube.com/watch?v=MAnutcnZ6ZA GLSL shaders (Check Video Description)] *[https://www.cs.utah.edu/~emilp/papers/ToneCtrlHatching.pdf Fine Tone Control in Hardware Hatching] '''[PDF]''' *[http://www.hpi.uni-potsdam.de/doellner/publications/year/2013/2281/SKTD13.html Real-Time Rendering of Water Surfaces with Cartography-Oriented Design] '''[PDFs and Video]''' {| style="margin: 0 auto;" |- | <youtube width="640" height="360">DFjjcMRWWoE</youtube> |} {| style="margin: 0 auto;" |- | <youtube width="640" height="360">ml9v8PZ5j10</youtube> |} *'''Stipple''' [http://www.evilmadscientist.com/2012/stipplegen-weighted-voronoi-stippling-and-tsp-paths-in-processing/ StippleGen] *'''1 color halftone''' for comic/manga (Value as dot size and spacing of dots) | [https://en.wikipedia.org/wiki/Screentone Wikipedia: Screentone] Stippling related papers: *[http://www.cs.princeton.edu/courses/archive/fall00/cs597b/papers/stipple_deussen.pdf Floating Points: A Method for Computing Stipple Drawings] '''[PDF]''' *[http://cs.nyu.edu/~ajsecord/npar2002/npar2002_ajsecord_preprint.pdf Weighted Voronoi Stippling] '''[PDF]''' *[http://www.cs.mun.ca/~omeruvia/research/publications/realTimeStippling.pdf Real-Time Animated Stippling] '''[PDF]''' {| style="margin: 0 auto;" |- | <youtube width="640" height="360">WaXh8T_k8lc</youtube> |} '''Notes:''' *Option to choose between '''Screen Space Hatching''' and '''Model Surface Hatching''' *Implementation options: Material Node or Standard Material modifiers ===Watercolor=== '''Related research papers:''' *[http://hal.inria.fr/inria-00510223/en Interactive watercolor rendering with temporal coherence and abstraction] *[http://hal.inria.fr/hal-00816143 Stylizing Animation By Example] *[http://artineering.io/articles/Edge-and-substrate-based-effects-for-watercolor-stylization/ Edge- and substrate-based effects for watercolor stylization] New *[http://artineering.io/articles/Art-directed-watercolor-stylization-of-3D-animations-in-real-time/ Art-directed watercolor stylization of 3D animations in real-time] new *[http://artineering.io/articles/Art-directed-Watercolor-Rendered-Animation/ Art-directed Watercolor Rendered Animation] new :First, the pigments are mixed with water but do not dissolve totally. The result is that, after drying, even on a totally smooth paper, the pigment density is not constant :Second, the Fluid nature of watercolor creates two effects along the borders of colored regions: edge darkening due to pigment migration and a wobbling effect due to paper grain. In the case of a dry brush the paper grain also creates some white holes in the brush strokes when a nearly-dry brush only touches raised areas of the paper :Finally, watercolor is usually created by a human, using a brush, often of a large size, and therefore represents a scene in a more abstracted way than a photograph. We believe that abstracting the shape, colors or illumination of the original scene is crucial to keeping the aesthetics of watercolor. Although this is true of most painting and drawing styles, the technical constraints of watercolor typically result in less precise details than other techniques. Implementation options: Material Node or Standard Material modifiers ---- ==The Next Level== '''Ton said:''' LightBWK, so - you're on the hunt for coder to work on the toon render. It's quite nice, not too complex code job actually. So nice for newbies as well. So what are we waiting for, let's code some shaders and "break" Blender Internal Renderer for good. Any interested coder, can contact me directly via [http://www.facebook.com/Lightbwk FB PM] or [https://plus.google.com/u/0/106733323627628927776 G+]. I'll direct you to the stake holders and formulate an execution plan. ---- ===Stake Holders=== Stake holders are people or projects with something to lose if BEER isn't executed and done well. It will cause them to suffer financially. Production will be harder without BEER, causing prolong man hour involvement, the increase in production cost, risk of unable to finish production or even start the production. Major stake holders: *[http://www.anipipo.com/Project/Detail/2 ABC of Akari by AnigoAnimation] *[http://projectfalcon.org Codename: Project Falcon, Title: Feathered Horizon] Other stake holders (based on FB's Like, G+'s +1 and other interaction with me): '''A~J list''' :Aditia A. Pratama, Alexandre Prokoudine, Alvin Nashif Dandan Magarang, Boonsak Watanavisit, David Malcolm Smith, D Ü, Edward Kinnally, Jerry Perkins, Joseph Masaki... '''K~S list''' :Lendel Fajardo, Masoud Teymouri, Metin Seven, Michael g, Muhammad Amir Hamzah, Nik Lockwood, Pierre Potvliege, Petr Utas Utinek, Raymundus Dedy Kariadi, Razvan Bolohan, Rylan Wright, ... '''T~Z list''' :Taiwo Folu, Tamakoshi Masaki, Taufiq Marhaban, Terry Hancock, Todor Imreorov, Victor De La Cruz, Zauber Paracelsus... And over 400 hundred other artist in [https://www.facebook.com/groups/BNPRandFreestyle/ Blender NPR and Freestyle Collaboration ] Facebook group. ---- ===Programmers (BEER Brewer)=== Put your name here, BEER artists will love you forever! ---- ===Execution Schedule (Brew Plan)=== '''May 25th 2013 to June 15th 2013''' *Listing of stake holders *Improvement of proposal (Hit BA thread guys) *New stake holders read the proposal and approve the proposal '''Update:''' Proposal deadline has been extended to 30th June 2013 [too much stuff to work on, in too short amount of time] '''June 2013''' *Planning '''Sometime in July/August/September 2013''' *Coding starts (change of plan, coding did not start) '''October 2013 and onward''' *Looking for funding to hire part time developer *Anyone interested please contact me via FB or G+ (use contact links above) ---- ==BEER brew report== '''Date: ''' *29th September 2013 '''Report: ''' *There is little to no activity this month. Our current plan is to get funding to hire a developer to initiate development. We have not set how that is done, but we have identified the developer that will do the coding. ---- '''Date: ''' *10th October 2013 '''Report: ''' *We are reaching to NPR/ER professionals in the industry (anime studios) to fine tune the proposal to inclusively solve their production problem in the area where BEER is targeting. The discussion is on going. We will report more when we have more stuff analyzed. ---- '''Date: ''' *4th December 2013 '''Report: Japanese survey result summary (Big THANKS to Satoshi Yamasaki for helping us with this survey)''' How do you normally setup your shader/material? *Prefer to use Properties Editor(Material and Texture contexts) because it's quick and easy to use for simple materials. Node Editor only used for complex things. What are the difficulties that you personally face when making shader/material in Blender? *Most of annoyances are about separated UI (Properties Editor). **When below situation, the settings are not easy to use because that UIs are less accessible. ***lamp "A" only used for the specular of an object, ***lamp "B" only used for the shadow of another object, ***lamp "C" for the diffuse of all objects. **Material and Texture settings are separated, it's not friendly for doing trial and error. **There is no relationships between Properties Editor and Node Editor, further more they can't be mixed. **To show the texture of Object in 3DView, you need to set it with UV Editor. What are the known limitation of Blender Internal renderer? *Note: Maybe latter can be solved with Cubic Interpolation option in Material properties... **There is no option to assign materials to each Renderlayers individually (There is already the Material option in the RenderLayer Properties, but it makes all of materials same one). **When using Area Lamp with Ray Shadow, there are artifacts of polygons in the shade. Where in the shader/material system in Blender that can be improved? If you have any reference of the improvement, please attach or link. *Overview of materials with preview in a scene. Outliner can be used for this purpose with "Blender file mode", but it just show the material icon, not the preview. Ton Roosendaal suggested more developers from Eastern countries(East Asia, South East Asia) in order to keep BI/BEER in top condition. Do you know anyone with such capability or interest? *Note: No answer for this, but we have '''Shinsuke Irie''' maintaining BI currently '''Original link to survey:''' http://blender.jp/modules/news/article.php?storyid=3651 ---- '''Date: ''' *17th February 2014 '''Report: BEER and NPR in the next few months''' *We now have a dedicated NPR mailing list [http://lists.blender.org/mailman/listinfo/bf-blender-npr [LINK]] *BlenderNPR will hire a part time developer to do design work for BEER. More info later. *Viewport FX I & II SoC will be part of BEER. Ton has specifically requested for Jason Wilkins to join the effort. ---- '''Date: ''' *24th July 2014 '''Report: BNPR Store, Freestyle Level Up, Mini Courses, Development Fund''' *Blender NPR store successfully launched [https://blendernpr.org/store [LINK]] *BEER Development Fund started, Status can be viewed at [http://blendernpr.org/about/ [LINK]] *A possibility of presenting BEER in Blender Conference 2014 ---- '''Date: ''' *29th Nov 2014 '''Report: Blender Conference, OpenGL renderer, Discourse''' *We presented at Blender Conference 2014, great feedback at the after show *There will be an OpenGL renderer inside Blender [http://youtu.be/l55ozltJU28?t=36m17s [Video]]. More next week. *We have a development forum for BEER at [http://beer.blendernpr.org/ [BEER development Forum]]
Return to
User:LightBWK
.
User:LightBWK
Unversioned
Main Page
Blender Development
Blender 2.6
User Manual
Tutorials
Books
Scripts
2.72 Python API
(external link)
Blender Development
Blender 2.5
2.59 Python API
(external link)
Blender Development
Blender 2.4
User Manual
Tutorials
Books
Scripts
2.49 Python API
(external link)
Blender Development