zoukankan      html  css  js  c++  java
  • 【NPR】非真实感渲染实验室

    写在前面


    前几天在知乎看到一个问题——关于非实感图形学或者风格化渲染有哪些好的书或者paper,我刚好接触过一些就去里面回答了一下。答完以后突然想在Unity里搞一个这种集锦,把一些简单的NPR论文或者教程在Unity里实现一下。于是这两天就做了一下。

    我把这个项目放到了GitHub(https://github.com/candycat1992/NPR_Lab)上,有兴趣的同学能够去看一下。

    项目链接:https://github.com/candycat1992/NPR_Lab

    实现了哪些NPR


    就这两天的工作,我主要挑选的是关于卡通渲染一些最早的论文,比如1998年的A Non-Photorealistic Lighting Model for Automatic Technical Illustration,这篇是最早提出在卡通渲染使用色调来模拟插画风格的文章。

    因为Unity封装的太好了,一些论文中的效果我没有在Unity里做出来,等到Unity更新之后开放很多其它功能的时候我会更新。

    这个项目不出意外的话我会一直更新的。假设大家一些希望看到的NPR效果能够跟我说。有时间的话我会尝试去实现。

    每次更新项目,假设加入了新的渲染效果。我也会在项目的README里注明。比如,在我写这篇文章的时候,我一共实现了五个简单的NPR:

    • Antialiased Cel Shading

      Related Scene: AntialiasedCelShadingScene

      Reference: http://prideout.net/blog/?p=22

      这里写图片描写叙述

    • Tone Based Shading

      Related Scene: ToneBasedShadingScene

      Reference: Gooch A, Gooch B, Shirley P, et al. A non-photorealistic lighting model for automatic technical illustration[C]//Proceedings of the 25th annual conference on Computer graphics and interactive techniques. ACM, 1998: 447-452.

      这里写图片描写叙述

    • Stylized Highlights

      Related Scene: StylizedHighlightsScene

      Reference: Anjyo K, Hiramitsu K. Stylized highlights for cartoon rendering and animation[J]. Computer Graphics and Applications, IEEE, 2003, 23(4): 54-61.

      这里写图片描写叙述

    • Pencil Sketch Shading

      Related Scene: PencilSketchShadingScene

      Reference: Lake A, Marshall C, Harris M, et al. Stylized rendering techniques for scalable real-time 3D animation[C]//Proceedings of the 1st international symposium on Non-photorealistic animation and rendering. ACM, 2000: 13-2

      这里写图片描写叙述

    • Hatching

      Related Scene: HatchingScene

      Reference: Praun E, Hoppe H, Webb M, et al. Real-time hatching[C]//Proceedings of the 28th annual conference on Computer graphics and interactive techniques. ACM, 2001: 581.

      这里写图片描写叙述


    背后的原理


    这些实验大部分都是參考了论文。少数是基于一些教程。

    它们大多数仅仅使用到了shader。在项目的README里。我给出了每种效果參考的资料以及在项目中的场景名字。我本来打算每种效果都写一篇博文来讲一下原理,但近期在写书并且还有实验室方面的工作要做,时间没那么充裕,因此更新会慢。但就眼下实现的几种效果来说。大家都能够从论文中找到实现原理,并且shader也都不复杂。



    写在最后


    这个项目也是纯属兴趣,假设大家有不论什么意见和建议欢迎给我留言。假设发现我的实现有误。也一定要告诉我。

    最后,希望大家能够hava fun~

  • 相关阅读:
    Nginx 配置指令的执行顺序(一)
    缘起 --转
    Nginx 变量漫谈(八)
    Nginx 变量漫谈(七)
    Nginx 变量漫谈(六)
    Windows批量添加防火墙例外端口
    Neo4j 的一些使用心得
    一文教你用 Neo4j 快速构建明星关系图谱
    GemFire 入门篇1:GemFire 是什么?
    数据结构(逻辑结构,物理结构,特点)
  • 原文地址:https://www.cnblogs.com/llguanli/p/7257497.html
Copyright © 2011-2022 走看看