Unity制作二次元卡通渲染角色材质——1、资源分析

news2024/11/17 23:41:27

Unity制作二次元材质角色


回到目录

大家好,我是阿赵。
开始制作二次元角色材质之前,我觉得应该是先分析一下,我手上拿到的这个角色模型资源,总共有哪些信息是我们能用的。
所以这篇文章我不会分享具体的Shader,但我感觉是所有思路的开始,可以明白整个模型的资源构成和作用。觉得没有作业抄的朋友可以跳过这一篇文章了。

首先,我拿到了这个已经蒙皮完成的网格模型
在这里插入图片描述

然后有这几张贴图
在这里插入图片描述

接下来通过简单的shader来读取一下这些模型信息,逐一分析一下:

1、顶点颜色

顶点颜色其实有很重要的作用,他的每一个通道都可以代表一种信息。所以很多比较规范的模型,都会烘焙顶点颜色。所以我也打算看看这个模型的顶点颜色是怎样的。于是写一个简单的shader获取一下顶点的Color,然后在片段着色器返回。
在这里插入图片描述

结果有点失望,这个模型没有烘焙顶点颜色。
如果我重新制作这个模型,那么顶点色一般有些什么作用呢?
一般来说,我觉得一些和顶点程序相关的参数,可以设置在顶点色的各个通道里面。然后一些可以使用逐顶点渲染的颜色,也可以保存在顶点色里面。
比如说:

1.顶点色AO

可以简单烘焙一下模型的AO贴图,然后记录在顶点色上,那么在渲染角色的时候,可以给模型简单增加一个拐角阴影

2.描边的粗细程度

同一个模型,他不同的部位,有可能需要描边的粗细会不一样,比如脸部的描边我们希望是细一点,甚至没有的,大腿、武器等的部位可能需要描边稍微粗一点。如果只能靠在Shader里面声明一个变量来定义粗细,很难做到不同部位不一样。但如果通过顶点色的某个通道去定义,我们就可以做到每个部位的描边粗细不一样。

3.顶点偏移值

有些情况,我们需要某些部位在渲染的时候发生一些改变,比如顶点沿着摄像机方向的Z轴做一个拉近或者拉远。这种情况也是多用于描边,有些部位不想出现描边,所以就把描边的模型往后推一点。这个计算是在顶点程序的,所以值只能记录在顶点颜色。

既然原来的模型没有带顶点烘焙颜色,我也只是在每天晚上下班后深夜11点到12点之间有时间才做个demo写写文章,也没太多时间去处理原始模型,所以只能放弃掉上面说的几个效果了。有时候想,如果不用加班多好。

2、顶点法线

在这里插入图片描述

由于没有法线贴图,那么我们接下来所有的光照模型计算,都是基于模型的顶点法线了。
从总体上来看,这个角色的法线还算正常,
在这里插入图片描述

不过从细节看,脸部的法线似乎不那么平整。这个估计是需要特殊处理一下。

3、基础贴图

这里的基础贴图,有baseMap和sssMap为一套,身体一套,武器一套。
在这里插入图片描述

这是baseMap的效果
在这里插入图片描述

这是sssMap的效果
很明显,这个是用于做光影时的颜色的,baseMap是亮部颜色,而sssMap是暗部颜色。

4、ILM贴图

ILM贴图一般是用于表达细节光照效果的,每一个通道代表的含义都不一样。所以我们要逐个通道去看,他究竟是什么。

R通道:

在这里插入图片描述

G通道:

在这里插入图片描述

B通道:

在这里插入图片描述

A通道:

在这里插入图片描述

通过上面的分析,可以看到这张ILM贴图,非常的有意思,他不同的通道想表达的信息是不一样的,甚至还有一个通道是线条。具体ILM贴图的作用,之后会专门写文章去分析。

5、细节贴图

在这里插入图片描述

细节贴图看起来只是一些补充的描线。我个人感觉这个描线如果并不是彩色的,只是黑白而已,是可以合并到其他贴图作为一个通道,单独用一张贴图有点浪费。当然了,其实细节贴图有时候是有颜色的,那样就只能单独一张贴图了。

6、贴花贴图

在这里插入图片描述

这个贴花贴图比较特别,之前的贴图都是对应部位的,比如身体一套贴图,武器一套贴图。但贴花贴图是整个模型一起的。他是通过了对模型展UV2来实现的。所以我这里也是通过了uv2去采样这张贴花贴图来得到正确的效果。
可以看出来,这张贴图是给模型补充一些花纹用的。

到这里为止,模型的大致情况已经分析完了,能用的信息也比较清楚了。那么在下一篇文章,就可以开始真正的动手做材质了。

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

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

相关文章

基于RT-Thread快速上手SD NAND 虚拟文件系统

SD NAND 也称之为贴片式TF卡,贴片式SD卡,采用标准的SDIO接口,兼容SPI接口。下图所示为CS 新一代CS SD NAND NP1GCR01-AOW 大小为128M,对比128M的SD卡,可以看到贴片SD卡尺寸更小,不要SD卡座,占…

STM32杂乱笔记

问题都比较的基础和低级,仅记录一下。 问题一:stm32的某个.c文件中无法调用另一个.c中的指定变量,怎么解决? 以g_ADC_sample_vaule.Iu 为例,它是 drive_adc_info.c 里面的变量,想要在system_time_sequenc…

5.4 二叉树的性质和存储结构

博主简介:一个爱打游戏的计算机专业学生博主主页: 夏驰和徐策所属专栏:算法设计与分析 5.4.1 二叉树的性质 二叉树是一种特殊的树结构,它具有一些重要的性质: 1. 每个节点最多有两个子节点:二叉树的每个…

JavaScript:setInterval() 用法详解

文章目录 1 基本语法2 参数说明3 使用示例4 停止 setInterval() 方法 1 基本语法 setInterval() 是 JavaScript 中的一个内置函数,它用于在指定的间隔时间内重复执行一段代码,实现周期性操作。该函数的语法如下: setInterval(function, mil…

线程(Linux系统实现)

目录 1. 线程概述 2.主线程和子线程 3.创建线程 线程函数 创建线程示例 4.线程退出 线程退出的原理主要包括以下两个方面: 5.线程回收 回收子线程数据 6.线程分离 7.线程取消 8.线程 ID 比较 1. 线程概述 线程是轻量级的进程(LWP&#xff…

【Java多线程进阶】常见的锁策略

前言 众所周知,拳击运动员是要分等级(轻量级、重量级等等)来参加比赛的,在 Java 多线程中 锁(synchronized) 也会根据锁的竞争程度来升级为相关“高等级”锁,为了更好的理解 synchronized 加锁机…

微信小程序node+vue医院挂号预约系统fun17

从而实现管理员后端;首页、个人中心、用户管理、专家管理、科室类型管理、职称类型管理、医院挂号管理、挂号信息管理、留言板管理、系统管理,专家后端;首页、个人中心、医院挂号管理、挂号信息管理、系统管理,用户前端&#xff1…

【Linux】网络基础+UDP网络套接字编程

只做自己喜欢做的事情,不被社会和时代裹挟着前进,是一件很奢侈的事。 文章目录 一、 网络基础1.局域网和广域网2.协议初识和网络协议分层(TCP/IP四层模型)3.MAC地址和IP地址(子网掩码,路由表,I…

美国金融科技公司SoFi的增长难以持久,股价也将下跌

来源:猛兽财经 作者:猛兽财经 公司介绍 SoFi Technologies(SoFi)是一家来自美国的知名金融科技公司,自2011年成立以来,已成为领先的个人理财在线平台。SoFi为年轻的高收入客户提供多样化的产品和服务,包括学生和汽车贷…

如何在 Python 中使用断点调试

入门教程、案例源码、学习资料、读者群 请访问: python666.cn 实际上没人能一次就写出完美的代码,除了我。但是世界上只有一个我。 林纳斯托瓦兹(Linux 之父) 大家好,欢迎来到 Crossin的编程教室 ! 上面这段…

【CSS3系列】第二章 · CSS3 新增盒模型和背景属性

写在前面 Hello大家好, 我是【麟-小白】,一位软件工程专业的学生,喜好计算机知识。希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正&#xff0…

大数据:数据表操作,分区表,分桶表,修改表,array,map, struct

大数据:数据表操作,分区表 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle&a…

【能量算子】评估 EEG 中的瞬时能量:非负、频率加权能量算子(PythonMatlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

五种方法提升Midjourney的出图品质

本文基于B站UP主琥珀川Eric的《五种方法提升Midjourney出图品质》制作在此感谢大神的分享。 本文全面介绍以上五种提升Midjourney出图品质的方法,简单实用,马上就可以用上。Lets go!!! 方法一 使用相机参数创建逼真的图…

windows系统编译的Qt程序转到国产化麒麟linux中编译

团队自研股票软件,关威信共总号:QStockView,下载 1.1 windows系统编译的Qt程序转到国产化麒麟linux中编译 (1)把Vs工程项目文件导入到Linux中 首先把vs的工程拷贝到linux里面(可以用虚拟机的共享文件夹…

适配器模式的学习与使用

1、适配器模式的学习 当我们需要将一个类的接口转换成另一个客户端所期望的接口时,适配器模式(Adapter Pattern)可以派上用场。它允许不兼容的接口之间能够协同工作。   适配器模式属于结构型设计模式,它包含以下几个角色&#…

2、数据库:SQL Server部署 - 系统部署系列文章

对于微软的SQL Server的安装,以前已经有写过了,到了2022版本,安装没多大的改变,很多只需要少配置,然后直接下一步即可。现在是2023年了,SQL Server已经出到了2022版本,这篇博文就再次对SQL Serv…

chatgpt赋能python:Python列表按长度排序的方法

Python列表按长度排序的方法 在Python编程中,列表是最常用的数据结构之一。列表是一种可变的有序序列,可以包含任意类型的对象。有时候,我们需要对列表按照元素的长度进行排序。本文将介绍Python中列表按长度排序的两种方法。 方法一&#…

pytorch实战 -- 神经网络

softmax的基本概念 交叉熵损失函数 模型训练和预测 在训练好softmax回归模型后,给定任一样本特征,就可以预测每个输出类别的概率。通常,我们把预测概率最大的类别作为输出类别。如果它与真实类别(标签)一致&#xff0…

chatgpt赋能python:Python列表排序详解:从基础排序到高级算法

Python 列表排序详解:从基础排序到高级算法 在 Python 编程中,列表是常用的数据类型。列表的排序是其中重要的操作之一。Python 提供了多种方法来对列表进行排序,从简单的基础排序到高级的算法排序。在这篇文章中,我们将详细介绍…