卡通渲染总结《一》

news2024/11/28 2:41:34

本文是在看完之前的综述论文《Cartoon Style Rendering》的总结,论文时间是2008年有点早,但有一定启发意义。

前言

首先卡通渲染是非真实化渲染(NPR)的一个部分.而NPR旨在模拟出手工插图的效果例如油画、墨水画、漫画风格作品。

其中卡通风格的渲染本质是黑色轮廓内部区域的纯色,也叫做cel shadingtoon shading,通常被用作在电影或者电脑游戏中。例如下面图片的塞尔达风之传说,还有后面的漫画作品。
在这里插入图片描述
对于建模一个现实人物角色十分困难,也包括了角色动画,而卡通风格渲染可以拓宽我们通过计算机进行交流思想情感和感受的能力,如果场景物体是抽象风格,更多人能够认同角色和故事。

之前提到黑色的轮廓其实是第一个关键点,他们表达了角色的形状和可视化风格。其中轮廓检测原文指示主要是

If the edge is shared by a front and back a face, it is classified as a contour edge, also called a silhouette.
在这里插入图片描述

传统的着色模型,也就是常说的布凌冯模型可以用下面的式子表达:
在这里插入图片描述
第一项为环境光照用来近似背景灯光和全局的漫反射,第二项用于计算表面接受直接光照的比例,第三项用于计算高光这里具体不介绍了。 V视角方向 L光线方向R是反射向量。

介绍传统着色模型是因为其是理解NPR流程的关键。卡通场景的内部着色通常是由很多色块组成,是一种更风格化的着色表面而不是通过传统着色模型计算的平滑表面颜色,所以我们不能不修改就直接用传统的着色模型与卡通风格之上。

相关工作

在这里插入图片描述
这个就是在1996年DECAUDIN采用了z-buffer和普通缓冲区内的不连续性进行边缘绘制,并计算阴影得到的卡通渲染结果。随后也有更多的关于实时卡通渲染的方法出现,像Lake et al. 2000 等通过面法线区检测边缘和折痕。

但是按边缘和按网格的计算需要全局的邻接信息,通常我们渲染流程中顶点和片段着色器就只有局部的信息,
于是就有方法《Real-time rendering of cartoon smoke and clouds》提出了把全局信息打包进了顶点着色器之中。

卡通绘画是一门艺术,与真实感渲染相反,卡通风格渲染可以用来产生许多不同的风格。如果我们想到卡通或漫画,我们会发现几乎没有任何卡通看起来像另一部卡通,每一个都有独特的风格。

就比如中国经典的水墨画,其也被制作成水墨动画yuan等人就提出了一种GPU驱动的实时渲染方法将动画3D模型自动的转变成水墨动画。另外,Spindler 等人也实现了罪恶之城中类似的画风渲染。

Lee等人提出了铅笔画分隔的渲染方式《Real-time pencil rendering.》,将其整合到GPU中运行,并采用了多重轮廓绘制技术去模拟人类的轮廓绘制,并通过简单的定向纹理映射对内部进行着色并且取得了不错的效果,部分结果图如下
在这里插入图片描述
接下去进一步探究具体的方法技术部分。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1286716.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】const关键字的详解!!

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

在机器学习或者深度学习中是否可以直接分为训练集和测试集而不需要验证集?我的答案如下:

文章目录 一、训练集是什么?二、验证集是什么?三、测试集是什么?四、是否可以直接分为训练集和测试集而不需要验证集?总结 在机器学习和深度学习项目中,通常会将数据集划分为三个部分:训练集,验…

个人作品集

个人作品集 封面设计 排版设计 3D建模 Pr剪辑 个人剪辑作品 场景搭建

【ArcGIS Pro微课1000例】0049:根据坐标快速定位(创建点位)的常见方法

文章目录 一、转到XY1. 闪烁位置2. 平移3. 标记位置二、定位1. 坐标定位2. 添加到图形3. 添加至要素类三、添加XY坐标四、创建点要素一、转到XY 举例:经纬度坐标:113.2583286东, 23.1492340北 。 1. 闪烁位置 输入坐标,点击闪烁位置工具,即可在对应的位置出现一个绿色闪烁…

【“C++ 精妙之道:解锁模板奇谭与STL精粹之门“】

【本节目标】 1. 泛型编程 2. 函数模板 3. 类模板 4. 什么是STL 5. STL的版本 6. STL的六大组件 7. STL的重要性 8. 如何学习STL 9.STL的缺陷 1. 泛型编程 如何实现一个通用的交换函数呢? void Swap(int& left, int& right) {int temp left;lef…

Hadoop学习笔记(HDP)-Part.14 安装YARN+MR

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

PRCD-1229 : An attempt to access configuration of database

今天维护oda一体机时,发现无法在grid用户下面关闭数据库实例,如下 ASM1:/home/gridoda0>srvctl stop database -d orcl -o immeidate PRCD-1229 : An attempt to access configuration of database orcl was rejected because its version 11.2.0.4.…

Lombok的踩坑系列之@Builder

背景: Lombok 这个插件大家日常工作中几乎是必备的,几个简单的注解就可以帮助我们减少一大坨get/set方法等;其中Builder注解使用的也很广泛,使用了建造者模式帮助我们构建出个性化的对象,本次踩坑点就在这个地方。 先…

智能优化算法应用:基于混沌博弈算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于混沌博弈算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于混沌博弈算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.混沌博弈算法4.实验参数设定5.算法结果6.参考…

Learning Memory-guided Normality for Anomaly Detection 论文阅读

Learning Memory-guided Normality for Anomaly Detection 摘要1.介绍2.相关工作3.方法3.1网络架构3.1.1 Encoder and decoder3.1.2 Memory 3.2. Training loss3.3. Abnormality score 4.实验5.总结总结&代码复现: 文章信息: 发表于:cvpr…

我最喜欢的白版应用,AI加持的新功能开源!强烈推荐

Excalidraw 把他们的文本到图表的功能开源了 Excalidraw是一个虚拟白板应用,专门用于绘制类似手绘的图表。它提供了一个无限的、基于画布的白板,具有手绘风格,支持多种功能。 之前我分享的:72张PNG,图解机器学习 里面…

Linux的IO模型——非阻塞IO

非阻塞IO就是当用户recvfrom时,如果内核数据没有准备好,那么就直接返回结果,而不是阻塞用户进程,让其一直等待。 我们可以发现,非阻塞IO模型中,用户进程在第一个阶段是非阻塞,第二个阶段是阻塞状…

Oracle(2-11)RMAN Backups

文章目录 一、基础知识1、RMAN Backup Concepts RMAN备份概念2、RMAN Backup Modes RMAN备份的类型3、Backup File Types 备份文件类型4、RMAN Backup Destinations RMAN备份目标5、Backup Constraints 备份约束6、Recovery Manager Backups 恢复管理器备份7、Characteristics …

黑苹果配置清单

手里的MacBookPro已经快沦为电子垃圾了,平时用MacOS比较多,Window用的比较少,而苹果电脑的价格不管是MacBookPro还是MacMini丐版的便宜但是面对现在Window动不动就64g内存的情况就显得微不足道了,高配的价格直接把我劝退&#xff…

iphone/安卓手机如何使用burp抓包

iphone 1. 电脑 ipconfig /all 获取电脑网卡ip: 192.168.31.10 2. 电脑burp上面打开设置,proxy,增加一条 192.168.31.10:8080 3. 4. 手机进入设置 -> Wi-Fi -> 找到HTTP代理选项,选择手动,192.168.31.10:8080 …

[Redis]基础入门

Redis入门 一、初识Redis Redis是一种键值型的NoSql数据库。 其中键值型,是指Redis中存储的数据都是以key、value对的形式存储,而value的形式多种多样,可以是字符串、数值,甚至是json。 NoSql则是相对于传统关系型数据库而言&a…

pthread学习遇到的问题

1.pthread_t 是个类型,指的是线程ID。pthread_create()的时候穿地址进去,线程创建好后就会成为线程ID(即输出型参数) 2.pthread_self() pthread_self()获得是调用这个函数的线程ID (我以为是…

Java异步编程之利器:Guava异步编程实践

第1章:引言 - 为什么要用Guava进行异步编程? 大家好,我是小黑!今天咱们要聊的是Guava在异步编程中的应用。首先,让我们搞清楚为什么要用Guava来处理异步任务。在Java的世界里,异步编程是个老话题了&#x…

信号是怎么搞到电磁波上面去的呢?

在之前的文章中,我们曾多次讲到电磁波的美妙,但是有了电磁波就可以通信了吗? No,我们要把信息加载到电磁波上,这个电磁波就可以作为信息的载体来工作了。可是信号是怎么加载到电磁波上的呢? 今天我们一起…

宝塔上安装mysql遇到的问题

宝塔上安装mysql遇到的问题 文章目录 宝塔上安装mysql遇到的问题一、下载mysql二、启动报错三、设置密码四、解决报错bash未找到命令mysql五、继续修改root密码五、宝塔中设置端口六、使用连接工具连接数据库 一、下载mysql 宝塔软件商店里下载mysql,然后点击启动。…