当前位置: 首页 > article >正文

卡通风格渲染

1、卡通风格渲染是什么

卡通风格渲染(Cartoon Shading),也称为非真实感渲染(NPR)或卡通渲染(Toon Shading)
主要目的是使3D模型看起来更像手绘的二维卡通或漫画风格,而不是逼真写实的3D渲染效果。
这种风格的渲染常用于游戏、动画和电影中,用来创造一种独特的艺术风格

2、卡通风格渲染 基本原理

让光的过渡效果变硬并且实现轮廓描边!
关键点:

  • 如何让光的过渡效果变硬

回顾 Blinn-Phong 光照模型公式:

影响对象光照效果的部分主要是:漫反射的计算 + 高光反射的计算
因此,想要光的过渡效果变硬,只需要从这两方面去考虑即可


漫反射部分的变硬需要使用到渐变纹理:

 高光反射部分的变硬需要基于它的公式修改计算规则

把 pow( max(0, dot(法线单位向量, 半角单位向量)), 幂) 直接进行简化

相当于之前平滑的值变化变得只有1和0两种情况,要不有要不没有


  • 如何实现轮廓描边

这里的轮廓描边不采用全部沿发现放大然后渲染的方法,而是只将背面顶点沿法线方向偏移扩大,即:

同样两个Pass渲染对象:一个Pass渲染背面 将模型背面顶点沿法线方向偏移扩大;一个Pass渲染正面 正常渲染
这样实现的效果会让模型上有重叠的结构出现描边效果

(左图是全部顶点偏移放大,右图是背面顶点偏移放大)

注意:

  • 模型背面就是法线方向和摄像机面朝向呈锐角的部分
  • 模型正面就是法线方向和摄像机面朝向呈钝角的部分


http://www.kler.cn/a/503368.html

相关文章:

  • 手撕代码: C++实现按位序列化和反序列化
  • Oracle FLOOR函数的用法
  • ue5 蒙太奇,即上半身动画和下半身组合在一起,并使用。学习b站库得科技
  • 深入学习 Python 量化编程
  • 典型的 package.json 文件中的
  • Bash语言的语法糖
  • 爬虫逆向学习(十五):Akamai 3.0反爬分析与sensor-data算法逆向经验
  • 基于微信小程序的游泳馆管理系统设计与实现(LW+源码+讲解)
  • 平滑算法 效果比较
  • Linux简介和环境搭建
  • 005__ubuntu终端说明、linux命令
  • 《重生到现代之从零开始的C++生活》—— 入门基础语法
  • 【算法】复制含有随机指针节点的链表
  • 源码安装httpd2.4
  • 【AI游戏】基于OpenAI打造自动生成剧情的 Python 游戏
  • 14.STM32F407ZGT6-SPI
  • 什么是 XSS(跨站脚本攻击)?
  • 理解STC15F2K60S2单片机的最小电路
  • 当comfyui-reactor-node 安装失败urllib.error.HTTPError: HTTP Error 403: Forbidden解决方法
  • 空指针:HttpSession异常,SpringBoot集成WebSocket
  • tmux 中鼠标滚动异常:^[[A和^[[B是什么以及如何解决
  • 51c~Pytorch~合集4
  • 【按钮防抖】el-button和普通按钮防抖,点击一次禁用一秒再恢复
  • 9分布式微服务架构
  • Windows安装HDC工具及鸿蒙手机开启HDC调试
  • Java开发关键步骤:Windows与macOS系统环境变量详细配置指南