博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【NPR】非真实感渲染实验室
阅读量:5876 次
发布时间:2019-06-19

本文共 1818 字,大约阅读时间需要 6 分钟。

写在前面

前几天在知乎看到一个问题——,我刚好接触过一些就去里面回答了一下。答完以后突然想在Unity里搞一个这种集锦,把一些简单的NPR论文或者教程在Unity里实现一下。于是这两天就做了一下。

我把这个项目放到了GitHub()上,有兴趣的同学能够去看一下。

项目链接:

实现了哪些NPR

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

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

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

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

  • Antialiased Cel Shading

    Related Scene: AntialiasedCelShadingScene

    Reference:

    这里写图片描写叙述

  • 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~

你可能感兴趣的文章
C#动态编译计算表达式的值
查看>>
ping baidu.com 发包不通
查看>>
硬盘IO,SAS,SATA,和HD TUNE
查看>>
最佳实践:如何基于MNS实现一对多拉取消息消费模型
查看>>
快速阅读《POSTFIX权威指南》
查看>>
PhalGo-Respones
查看>>
[MySQL 源码] MySQL drop table(压缩表)效率与流程分析
查看>>
activiti自定义流程之整合(六):获取我的申请任务
查看>>
高效Linux bash快捷键及alias总结
查看>>
css知识
查看>>
Struts 框架 之 Hello World
查看>>
【系统】如何控制cpu资源使用
查看>>
iOS8中的定位服务
查看>>
java String/StringBuilder 方法
查看>>
QTP学习笔记1
查看>>
【Linux网络编程】广播地址介绍
查看>>
iOS8新特性扩展(Extension)应用之二——分享插件
查看>>
数据迁移工具sqoop入门
查看>>
JDBC编程 之 增删改查
查看>>
《高效程序员的修炼》 读书笔记
查看>>