Blender卡通着色入门
当想到 Blender 和 3D 设计时,你的想法可能会转向风格化渲染或照片级渲染和 VFX。 但是,你是否知道 Blender 还可以创建可与 2D 动漫风格和漫画书类似的图形?
推荐:用 [NSDT编辑器 快速搭建可编程3D场景
1、什么是卡通着色?
卡通着色(Toon Shading)也称为赛璐璐着色(Cel Shading)。 这两个术语都表示模仿漫画书或 2D 绘图风格的风格着色器。 它也称为非真实感渲染 (NPR)。
卡通着色最常用于视频游戏中,在使用 3D 对象时重新创建动画/手绘外观。
2、卡通着色示例
卡通着色器基本上将颜色值分成两个不同的值,有时根据着色器的复杂性分为更多值。
这里我们有一个 Suzanne(Blender 上的猴头模型)的基本风格化 3D 渲染示例。
Suzanne的风格化 3D 渲染
这是非常基本的卡通着色器版本:
Suzanne 的卡通着色器渲染
接下来让我们创建一个非常基本的卡通着色器,它将使用两种颜色值,一种用于基色,一种用于阴影。
3、创建着色器
第一步是创建着色器。
首先,我们采用 Diffuse BSDF 节点,而不是 Principle BSDF。 然后向 RGB 添加一个着色器,该着色器连接到 ColorRamp,直接连接到材质输出。
在 ColorRamp 中,我们通过将插值模式更改为常量而不是线性,将颜色值精确地分成两半。 然后将渐变的右端滑块拖动到中间点,即 0.5。
因此,ColorRamp 的右侧将是材质在光照下将具有的颜色,左侧将是阴影的颜色。 对于猴子,我为脸部、眼睛、瞳孔、鼻子和嘴巴创建了五种材质,每种材质都具有相同的着色器,但在 ColorRamp 中具有不同的颜色值。
4、添加光源
接下来,是时候添加光源来查看卡通着色的效果了。
添加太阳作为光源
我们添加太阳作为光源,因为它可以提供最佳的阴影效果。 威力也应该提升到1000!
5、添加轮廓
着色器已经全部完成了,但是看起来有点扁平,没有任何轮廓。 这是向 3D 模型添加轮廓以模仿 2D 风格的简单方法。
首先,我们为大纲创建新材料。 它应该启用背面剔除。
然后,我们向获得该材质的对象添加一个“Solidify”修改器。
- 将厚度设置为 0.01 以形成细轮廓。
- 然后,选择“翻转正常”按钮。
- 最后,使用“材质偏移”值将凝固修改器的材质指向轮廓材质。 轮廓是我的对象上的第六个材质,因此偏移值为 5。
6、最后结果
将着色器和材质添加到对象后,它应该类似于下图所示的模型。
我们已经有了最基本的卡通着色器,可以从 3D 模型渲染 2D 外观的绘图!
原文链接:Blender卡通着色入门 — BimAnt
相关文章:
Blender卡通着色入门
当想到 Blender 和 3D 设计时,你的想法可能会转向风格化渲染或照片级渲染和 VFX。 但是,你是否知道 Blender 还可以创建可与 2D 动漫风格和漫画书类似的图形? 推荐:用 [NSDT编辑器 快速搭建可编程3D场景 1、什么是卡通着色&#x…...
性能调优篇 一、Jvm监控及诊断工具-命令行篇
目录 一、概述1、简单命令行工具 二、jps:查看正在运行的Java程序1、是什么?2、测试3、基本语法 三、jstat:查看jvm统计信息 一、概述 性能诊断是软件工程师 1、简单命令行工具 二、jps:查看正在运行的Java程序 1、是什么&…...
Docker部署MongoDB 5.0.5
1、查看目录 rootwielun:~# tree mongo mongo ├── conf │ └── mongod.conf ├── data ├── docker-compose.yml └── logrootwielun:~# cd mongo rootwielun:~/mongo# chmod 777 log2、配置docker-compose.yml rootwielun:~/mongo# cat docker-compose.yml ve…...
Day18-2-地狱回调-Promise-async-await技术
文章目录 Promise技术一 回调函数二 异步任务三 回调地狱是什么?四 如何解决回调地狱1 PromisePromise基本用法使用Promise解决地狱回调2 async/awaitPromise技术 一 回调函数 当一个函数作为参数传入另一个函数中,并且它不会立即执行,只有当满足一定条件后该函数才可以执…...
echarts范围限制下性能问题
最近实习遇到一个问题,需要对折线图的数据进行范围限制,比如将超过100的设置为100,低于0的设置为0; 原来的代码是创建一个数组,然后遍历原数组,超过的push100,低于0的push0,在中间的…...
wazuh环境配置以及案例复现
目录 wazuh环境配置wazuh案例复现 wazuh环境配置 一、wazuh配置 1.1进入官网下载OVA启动软件 Virtual Machine (OVA) - Installation alternatives (wazuh.com) 1.2点击启动部署,傻瓜式操作 1.3通过账号:wazuh-user,密码:wazuh进…...
解决el-select回显异常 显示option选项的value 而不是显示label
1、问题 回显的value和选项value类型不同 form中v-model"form.userId"是字符串类型 option中:value“item.userId” 选项id是数字类型 2、办法 :value“item.userId” 改为 :value“item.iduserId‘’”(转换成字符串) <el-form-item l…...
【【STM32-SPI通信协议】】
STM32-SPI通信协议 STM32-SPI通信协议 •SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线 •四根通信线:SCK(Serial Clock)、MOSI(Master Output Slave Input)、MISO…...
板卡常用前端 数据表操作
两年前写的,现在看,有点想吐, 数据操作表,调试设备用 采用外挂的方法,以前设备的接口命令,简易,换个UI展示很容易 自己写着玩的,公司部分产品再用,前端展示,不涉密 index.html <!doctype html> <html><head><meta chars…...
基于AVR128单片机世界电子时钟的设计
一、系统方案 上电初始化完成系统初始化,液晶滚动显示北京、莫斯科、东京、伦敦、巴黎、纽约等六个城市的标准时间,显示的内容包括地区名及相应地区的年、月、日、星期、时、分、秒。 使用K1按键控制滚动显示或稳定显示某个地区的时间。 使用K3、K4、K5按…...
Electron学习2 使用Electron-vue和Vuetify UI库
Electron学习2 使用Electron-vue和Vuetify UI库 一、Electron-vue简介二、安装yarn三、创建Electron-vue项目1. 关于 electron-builder2. 安装脚手架3. 运行4. 打包应用程序 四、background.js说明1. 引入模块和依赖:2. 注册协议:3. 创建窗口函数&#x…...
Java“牵手”根据商品分类ID获取速卖通商品分类详情页面数据获取方法,速卖通API实现批量商品数据抓取示例
速卖通商城是一个网上购物平台,售卖各类商品,包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取速卖通商品分类详情和商品列表和商品详情页面数据,您可以通过开放平台的接口或者直接访问速卖通商城的网页来获取商品分类详情信息。以下…...
QT 使用图表
目录 1、概念 1.1 坐标轴-QAbstractAxis 1.2 系列-QAbstractSeries 1.3 图例-Legend 1.4 图表-QChart 1.5 视图-QChartView 2、 QT 折线图 2.1 Qt 折线图介绍 2.2 Qt 折线图实现 Qt 图表是专门用来数据可视化的控件 Qt 图表包含折线、饼图、棒图、散点图、范围图等。…...
SSRF 服务器端请求伪造
文章目录 SSRF(curl)网址访问通过file协议访问本地文件dict协议扫描内网主机开放端口 SSRF(file_get_content)网站访问http协议请求内网资源通过file协议访问本地文件 SSRF(Server-Side Request Forgery:服务器端请求伪造) 其形成的原因大都是由于服务端提供了从其他服务器应用…...
shell 05(shell索引数组变量)
一、数组 shell 支持数组 (Array),数组是若干数据的集合,其中的每一份数据都称为数组的元素. 注意Bash shell 只支持一维数组,不支持多维数组。 在 Shell 中,用括号( )来表示数组,数组元素之间用空格来分隔. 语法为&…...
爬虫异常处理:异常捕获与容错机制设计
作为一名专业的爬虫程序员,每天使用爬虫IP面对各种异常情况是我们每天都会遇到的事情。 在爬取数据的过程中,我们经常会遇到网络错误、页面结构变化、被反爬虫机制拦截等问题。在这篇文章中,我将和大家分享一些关于如何处理爬虫异常情况的经…...
Python自动化小技巧21——实现PDF转word功能(程序制作)
案例背景 为什么这个年代PDF转word,某wps居然还要收费.....很多软件都可以实现这个功能,但是效果都有好有坏,而且有的还付费,很麻烦。 那就用python实现这个功能吧,然后把代码打包为.exe的程序,这样随便在…...
Vue使用Element的表格Table显示树形数据,多选框全选无法选中全部节点
使用Element的组件Table表格,当使用树形数据再配合上多选框,如下: 会出现一种问题,点击左上方全选,只能够选中一级树节点,子节点无法被选中,如图所示: 想要实现点击全选就选中所有的…...
SpringBoot生成和解析二维码完整工具类分享(提供Gitee源码)
前言:在日常的开发工作当中可能需要实现一个二维码小功能,我参考了网上很多关于SpringBoot生成二维码的教程,最终还是自己封装了一套完整生成二维码的工具类,可以支持基础的黑白二维码、带颜色的二维码、带Logo的二维码、带颜色和…...
Redis的基本知识(偏八股)
前言 本文篇概念,着重介绍Redis的执行效率、功能作用、数据类型、 执行效率 江湖上都流传这Redis的执行效率是挺快的,那为什么说它快呢?有以下几个原因: 基于内存单线程模型高效数据结构非阻塞I/O 基于内存: 内存的读写效率是…...
react使用antd的table组件,实现点击弹窗显示对应列的内容
特别提醒:不能在table的columns的render里面设置弹窗组件渲染,因为这会导致弹窗显示的始终是最后一行的内容,因为这样渲染的结果是每一行都会重新渲染一遍这个弹窗并且会给传递一个content的值,渲染到最后一行的时候,就…...
c++代码代码逻辑走查
自助生物采集代码 C部分流程...
CSS scoped 属性的原理
scoped 一、scoped 是什么?二、实现原理 一、scoped 是什么? 在 Vue 组件中,为了使样式私有化(模块化),不对全局造成污染,可以在 style 标签上添加 scoped 属性以表示它的只属于当下的模块&am…...
git 查看某个分支是从哪个分支拉出来的
原文链接:https://blog.csdn.net/allanGold/article/details/102478157 git reflog show 分支名git reflog --datelocal | grep 分支名git reflog --datelocal | grep 分支名 $ git reflog --datelocal | grep release3 5c50761 HEAD{Thu Jun 29 12:53:45 2023}: c…...
vue helloworld.vue 点击按钮弹出 dialog,并给dialog传值
1 DataAnalysisVue.Vue -->应该组件文件名和 name: 的名字一致 <template><div><el-dialog :title"dataAnalysisMsg" :visible.sync"dataAnalysisvalue" :before-close"handleClose"><span>{{ dataAnalysisMsg }}&l…...
html动态爱心代码【三】(附源码)
目录 前言 特效 内容修改 完整代码 总结 前言 七夕马上就要到了,为了帮助大家高效表白,下面再给大家带来了实用的HTML浪漫表白代码(附源码)背景音乐,可用于520,情人节,生日,表白等场景,可直…...
mmseg——报错解决:RuntimeError: CUDA error: an illegal memory access was encountered
可能解决方法汇总 GitHub issue相关汇总RuntimeError: CUDA error while trainingCUDA error: an illegal memory access was encountered记录使用mmseg时在计算交叉熵损失遇到的RuntimeError问题与解决方案...
AWS复制EC2文件到S3,g4dn.2xlarge没有NVIDIA GPU 驱动问题
1、给instances权限 action > Security > modify IAM role 把提前创建好的role给这个instance即可 2、复制到bucket aws s3 cp gogo.tar.gz s3://ee547finalbucket不需要手动安装GPU驱动 如果要自己安装,参考https://docs.aws.amazon.com/AWSEC2/latest/U…...
Go语言GIN框架安装与入门
Go语言GIN框架安装与入门 文章目录 Go语言GIN框架安装与入门1. 创建配置环境2. 配置环境3. 下载最新版本Gin4. 编写第一个接口5. 静态页面和资源文件加载6. 各种传参方式6.1 URL传参6.2 路由形式传参6.3 前端给后端传递JSON格式6.4 表单形式传参 7. 路由和路由组8. 项目代码mai…...
低代码系列——初步认识低代码
低代码系列目录 一、初步认识低代码 二、低代码是什么 三、低代码平台的概念和分类 01.无代码开发平台 02.低代码应用平台(LCAP) 03.多重体验开发平台(MXDP) 04.智能业务流程管理套件(iBPMS) 四、低代码的能力指标 五、低代码平台jnpf 表单 报表 流程 权限 一、初步认识低代码 …...
wordpress基于什么语言/百度推广官方
一、简介 Linux中应用层和驱动层编写代码时都会用到延时,本文主要介绍两种情况下延时功能的实现。 1.应用层:sleep、usleep; 2.驱动层:udelay、mdelay、ssleep、通过jiffies 、定时器、中断底半部; 二、应用…...
wordpress 调用模板/营销网络推广
326 设置和获取线程名称 (查看源码看了很多。。。) 在e325中,运行后的结果无法直接看出是哪个线程的,这节课解决这个问题。 【Thread类中设置、获取线程名称的方法】 void setName(String name) 字面意思 String getName() …...
sanitize_user wordpress/公众号引流推广平台
为什么80%的码农都做不了架构师?>>> 软硬件环境 Intel 酷睿i5 480M,2.66GHz(笔记本) 5400转硬盘 6G内存 Win10 64 位操作系统 PHP version: 7.0.6 Server version: 5.7.10 - MySQL Community Server (GPL) PDO事务占位…...
济南网站建设(选聚搜网络)/网页一键生成app软件
1.在代码顶部添加一行注释,ESLint 在校验的时候就会跳过后面的代码 /* eslint-disable */ 2.可以再注释后面加入详细的规则,这样就能避开指定的校验规则 /* eslint-disable no-new */ 3.ESLint忽略指定文件夹办法 在项目根目录建立.eslintignore文件,填上…...
怎么联网访问自己做的网站/qq空间秒赞秒评网站推广
原理很简单,根据你的给定的字段和之前设定的reduce值来分区 比如说 我先设置成 set mapreduce.job.reduces3; 然后将id 分成三个区,然后按成绩排序 select * from score distribute by s_id sort by s_score; 注:可能打印出来不是很明显&a…...
西安月子中心网站制作/网站免费推广
装修(第五天) 早上起来后,下着大雨,就磨蹭着要不要去看看师傅做工.后来工长打电话来说要送砖了,看看下雨,不知道能不能送.打电话到店家那里,说是能送.刚说好送就送吧,朋友打电话来,说要到钦州去看同事的老爸.同事夫妻两都是好朋友,他爸已经昏迷了半个月了,还没有醒来.想想,还是…...