崩坏3人物模型详解—是次世代还是手绘?
大家好,小编次世代建模师一枚。今天给大家详细讲解下崩坏3人物模型是次世代还是手绘的。文笔不好,请见谅哦。
崩坏3这个游戏我大概玩了几分钟,印象中模型贴图质感类似火影忍者究极风暴。
图片来自网络
崩坏3属于日系卡通渲染,贴图来讲通常是单色 可以渐变但不可以有手绘的笔触(这个看项目的美术需求,通常走日系漫画风格是禁止有笔触感的)从美术风格上看这是接近日系动漫的风格,可以说和传统的次世代写实的认知分道扬镳了。
而从本世代技术层面来看,崩坏这种卡通/动漫角色并没有引入pbr技术。然而崩坏3采用的画面技术,某种意义上也能称为次世代。是次世代的卡通渲染技术。卡通渲染技术的核心方式是阈值分割的明暗表现,完整的色块式的贴图风格以及对角色和物体的描边处理。早期的卡通渲染效果并不是是很好,比较依赖美术设计的水平,比如CAPCOM的大神和幻侠乔伊。
关于是不是次时代模型 次时代跟手绘模型主要区别就是模型的精度高低,次时代面数多 手绘少。其次是否有法线。崩坏3应该是没有法线的,至于模型面数要达到多少量值才算是次时代这个没有硬性规定。
图片来自网络
通常来说现在的写实类次时代一个主要的NPC角色模型是十几万面数起,如果跟这种类型对比崩坏3的模型就会显得很手游了,如果跟普通手绘类手游的一些游戏相比较模型面数,崩坏3的面数算比较多的,硬要说的话可以算是手绘模型?大概…
崩坏3的呈现效果还不错,但如果套用典型的次世代模型定义是不符合,如果以卡通渲染的角度看,基本算得上是次世代的卡通渲染。
下面再来稍微解析下崩坏3角色渲染
(非专业人员可能看不懂哦)
渲染逆向方法:
用Adreno Profiler抓帧, 并且分析其中的OpenGL调用及相关资源(顶点数据、纹理、Shader代码等)
其中Shader代码和在Unity里选中Shader并点击Compile and show code看到的gles3部分类似, 建议转换成更易于阅读的形式
卡通着色思路:
光照计算仍然是漫反射+高光反射, 其中漫反射是HalfLambert, 高光反射公式来自于Blinn-Phong模型
比较关键的点是, 漫反射部分不是渐变的, 而是分了3档, 以实现卡通风格的层次感, 即所谓的梯度漫反射(Ramped Diffuse)
上图是还原出来的Unity Shader及渲染结果,
描边的实现:
将模型在观察空间中, 按法线往外扩张, 以剔除正面的方式绘制 (Shader中声明的顶点属性是切线, 但实际提交的数据应该还是法线)
下图输出-膨胀方向.png, 其中红色表示右下, 绿色表示左上, 黄色表示右上, 黑色表示左下, 注意: 只是大概的方向不是绝对的
最终描边结果输出-最终结果.png, 为了更明显, 描边颜色设置为了黑色, 游戏中实际的值为(0.4117647, 0.3112941, 0.3768184)
如果真的遇到好的同事,那算你走运,加油,抓紧学到手。 次世代3D建模资源分享企鹅圈: 809583402 包含3Dmax,
Zbrush等次世代游戏建模软件,以及机械具、人物、怪物等模型的制作方法。 打造从零基础到项目开发上手实战全方位解析!
点击加入
崩坏3人物模型详解—是次世代还是手绘?相关推荐
- 使用pickle保存机器学习模型详解及实战(pickle、joblib)
使用pickle保存机器学习模型详解及实战 pickle模块实现了用于序列化和反序列化Python对象结构的二进制协议. "Pickling"是将Python对象层次结构转换为字节 ...
- Transformer 模型详解
Transformer 是 Google 的团队在 2017 年提出的一种 NLP 经典模型,现在比较火热的 Bert 也是基于 Transformer.Transformer 模型使用了 Self- ...
- TensorFlow Wide And Deep 模型详解与应用 TensorFlow Wide-And-Deep 阅读344 作者简介:汪剑,现在在出门问问负责推荐与个性化。曾在微软雅虎工作,
TensorFlow Wide And Deep 模型详解与应用 TensorFlow Wide-And-Deep 阅读344 作者简介:汪剑,现在在出门问问负责推荐与个性化.曾在微软雅虎工作,从事 ...
- TensorFlow Wide And Deep 模型详解与应用
Wide and deep 模型是 TensorFlow 在 2016 年 6 月左右发布的一类用于分类和回归的模型,并应用到了 Google Play 的应用推荐中 [1].wide and dee ...
- 数学建模——智能优化之模拟退火模型详解Python代码
数学建模--智能优化之模拟退火模型详解Python代码 #本功能实现最小值的求解#from matplotlib import pyplot as plt import numpy as np imp ...
- 数学建模——智能优化之粒子群模型详解Python代码
数学建模--智能优化之粒子群模型详解Python代码 import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplo ...
- 数学建模——支持向量机模型详解Python代码
数学建模--支持向量机模型详解Python代码 from numpy import * import random import matplotlib.pyplot as plt import num ...
- 数学建模——一维、二维插值模型详解Python代码
数学建模--一维.二维插值模型详解Python代码 一.一维插值 # -*-coding:utf-8 -*- import numpy as np from scipy import interpol ...
- 数学建模——线性规划模型详解Python代码
数学建模--线性规划模型详解Python代码 标准形式为: min z=2X1+3X2+x s.t x1+4x2+2x3>=8 3x1+2x2>=6 x1,x2,x3>=0 上述线性 ...
最新文章
- C++string中find_first_not_of()函数和find_last_not_of()函数
- string index out of range_Java 12 骚操作, String居然还能这样玩!
- 程序员工资那么高,却不知道怎么花?程序员花钱指南了解一下!
- C++ STL 乱序算法
- 【好文链接】什么是开环控制?什么是闭环控制?区别在哪里?
- HoverTree.Model.ArticleSelect类的作用
- python中int占几个字节_小白学python第1问: int 占几个字节?
- 笔记:《深入浅出统计学》第十三章:假设检验(显著性检验)
- Unity3D渲染系列之SkyBox天空盒
- Excel数据分析day1
- 从降维攻击详解互联网格局体系
- 如何用宏定义的方式实现MAX(A,B),MAX(A,B,C),MAX(A,B,C,D)
- VRChat与Anthos Capital携手合作,完成8,000万美元的D轮融资
- DOS上登陆FTP的命令和步骤(ftp命令全集)
- Java选择题(十八)
- word标题4降级标题5无法显示
- Swift 参数可选和必选的区别
- c uml mysql_UML图不包括()。
- 计算机类公务员竞争,考公务员最“吃香”的4个专业,考上几率大,把握住机会!...
- cad安装时无法选择浏览和安装键
热门文章
- linux 判断文件上传轨迹,linux各种常用命令
- java导入包srcy有红叉_eclipse导入项目后出现红色叉号的解决方案
- php html5 案例,35个非常好的HTML5+CSS3实例
- jsp 定义java类_在JSP中定义一个类
- python编程能有什么用_揭秘python都能做什么?
- java compareto方法怎么排序的_很简单却能让你面试头疼得Java容器,这里从源码给你解释清楚
- cd返回上一 git_使用Git实现自动化部署项目
- c盘保护软件_电脑C盘空间越来越小?简单操作这几步,可以释放大量空间
- php 可视化neo4j,开源图形数据库Neo4j使用 php开发
- Windows10下的docker安装与入门 (一)使用docker toolbox安装docker