【TA100】图形 2.2 模型与材质基础

news2024/11/25 10:41:19

一、 渲染管线与模型基础

1.可编程渲染管线
在这里插入图片描述
● 蓝色背景的:可编程管线
● 顶点着色器:模型的顶点进行计算
● 片元着色器:将光栅化阶段插值的信息进行计算
请添加图片描述

2.uv

● 纹理映射:任何3D物体的表面都是2D的→纹理就是一张图→纹理映射:把这张图蒙在一个3D物体上
● uv,就是把这张图展开在一个坐标系中,坐标轴为u和v
● 每个顶点都能利用uv坐标后取到贴图所存储的信息
在这里插入图片描述
obj和fbx格式对比
在这里插入图片描述

二、材质基础

1.漫反射

在这里插入图片描述

● 光朝四面八方反射。
● 补充:
○ (GAMES101)入射的Radiance是均匀的 → 入射和出射的Irradiance相等,并且他俩的Radiance都均匀 → 入射的Radiance和出射的 相等
● 其中Lambert模型简单的认为各个方向是均匀的

2.镜面反射

光滑镜面反射

在这里插入图片描述
● 入射等于出射
● 入射光根据表面法线进行反射,并且只有在反射方向有能量,其他方向均为0

粗糙镜面反射

● 法线偏移比较小,所以反射集中在一个区域,有磨砂质感
在这里插入图片描述

3.折射

● 对于特殊的介质,除了反射外还会发生折射现象
● 其中,反射和折射的能量多少由Fresnel定律决定:
在这里插入图片描述

粗糙镜面折射

和粗糙镜面反射类似,也是集中在一个区域
在这里插入图片描述

4多层材质

● 除了物体本身的材质以外,表面还有东西(可以看到材质本身和表面的一层)
在这里插入图片描述

5.次表面散射/3S(BSSRDF)

在这里插入图片描述

6.改变材质表面

● 现实世界中不存在完美光滑的表面,模型顶点带的法线也有限,所以我们可以用法线贴图做效果
● 光照计算时,有法线的参与,所以我们可以对法线做出调整,来调整相应的光照计算
○ 比如《罪恶装备》卡渲中,手掰法线
● 补充:(GAMES101):渲染方程中,和材质有关的一项:BRDF CG中,Material==BRDF

三、模型数据解析(在渲染管线中的作用)

1.顶点动画
● 顶点着色器计算的是模型的每个顶点,每个顶点数据不同
○ 因此在同个计算公式下,不同的顶点会得出不同的结果
● 顶点动画就是在顶点shader中对模型的顶点进行操作,来产生动画效果。
● 需要一定数量的顶点,顶点动画的效果才会明显(必要时可以结合曲面细分)
● 一个顶点传入顶点shader,顶点shader控制顶点位置时,所有的顶点都会进行一样的算法。
● 在一些三维软件中,动画的K帧也是顶点动画
○ 意思类似:(GAMES101对于shader概念的完善:每个顶点/像素都会执行一次,是通用的,不用做循环)

2.纹理动画
● 渲染的过程中改变纹理坐标,使其采样时发生偏移,来达到动画的效果 (eg: UE4中的panner节点可以获取纹理坐标并进行位移)

● 一般uv偏移都放在顶点shader做,个人总结原因有二:
○ ①依赖纹理读取的存在,会影响性能(只要不是从顶点shader直接传到片元shader,就会产生依赖纹理读取)

○ ②一般情况下顶点数 < 片元数,执行次数少

● 例子原理分析:
○ 第一个部分:光照计算
■ 利用法线贴图,改变反射和折射的朝向
在这里插入图片描述
○ 第二个部分:对背部画面采样的部分
■ 改变uv采样点的位置,产生动画效果
在这里插入图片描述

3.顶点色

可以通过判断顶点色,来做一些操作
○ eg,顶点色达到一定的值,就做阴影。
○ eg2:庄懂老师的课后部分的案例里,使用模型的顶点色作为mask使用
● Maya中顶点色的绘制
○ (所有四边面转到游戏引擎中都会转换为三角形来计算)
在这里插入图片描述
在这里插入图片描述

4 插值:重心坐标。

在这里插入图片描述

● //详细笔记参考:《GAMES101》-L9-插值部分
● 总结:三角形所在平面任意点(x,y)都可用三顶点(α β γ)的线性组合表示。
● 补充:重心坐标不能保证投影后不变,所以三维情况下要先找到重心坐标再插值
● 任意一个点的表示公式

5.顶点法线、面法线

在这里插入图片描述

● 面法线本质上还是顶点法线,只是存储方式不同
● 原理:
○ 面法线:三个顶点共用一个法线,插值出来结果相同
○ 顶点法线:每个顶点都有一个发现,插值出来也就不同

在这里插入图片描述
扩展:NPR中的描边
● NPR渲染中,通常在顶点shader中,将顶点法线方向偏移,再在片元着色器中直接输出一个颜色,达到描边效果。
● BackFacing描边时,描边线条断开就是因为没有平滑顶点之间的法线导致的

2.模型光滑组对法线有什么影响

先搞清楚光滑组是什么
● 没有真正的光滑面,所有面都是三角形
● 光滑组的含义:下面图标出了面的亮度,纯属打比方,不是确切数字,两面之间的过渡就是两面亮度和的平均值,光滑组处理面之间的光照信息,提高它们的亮度、饱和度。
在这里插入图片描述
○ 如果两个面一个光滑组是1,另一个是2,就不进行计算
○ 如果他们的光滑组都是1,就会进行光照计算,产生光滑效果,影响最终渲染。
在这里插入图片描述
● 自动光滑:所有面的夹角小于45度的进行光滑
● 光滑组:通过处理面之间的光照信息来达到光滑效果,是用来设置边缘线的光滑显示的。
● 网格平滑和涡轮平滑:通过增加面,把面分的更细腻来表达曲度
● 我们平常说的布线合理,拓朴其实是保持两个三角面的一致性(构成一个四边面的俩三角面)

②光滑组对法线的影响
法线
● 烘焙法线的意义,就是把高模的法线方向,用一张图(RGB)来存储法线信息,存到低模的表面上。贴上法线贴图的低模,就会在视觉上产生凹凸不平、增加细节的渲染效果,从而看起来像高模一样。Normal Mapping 法线贴图本质上就是一种图片,只是这张图片的用途比较特殊而已。
● 没有光滑组的话,烘出来的法线贴图是一棱一棱的。一般情况下最少也要给一个光滑组
● 参考链接中的例子:渐变色的法线贴图在substancepainter会出现黑边情况(光滑组的问题)

光滑组(软硬边)和UV对法线的影响

在这里插入图片描述

● 光滑组相连的模型,法线贴图都存在大渐变色,导致模型的法线效果会很奇怪(平面上有发暗发亮的光影)。当你发现你的模型出现这种渐变时,一定是出现了光滑组的问题。
● 中间的两个模型出现了不同程度的接缝(第三个模型的接缝非常明显,第二个模型则弱一些)。光滑组和uv统一相连或断开,是不会出现明显接缝的,当遇到接缝问题,优先考虑模型的光滑组和uv是否统一。
在这里插入图片描述

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

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

相关文章

6个免费商用图片素材库,再也不用担心版权问题了

本期给大家分享6个免费可商用的视频素材网站&#xff0c;设计师、自媒体、视频剪辑有福啦&#xff0c;再也不用担心版权问题了&#xff0c;记得收藏起来哦~ 菜鸟图库 https://www.sucai999.com/pic.html#?vNTYxMjky 网站主要是为新手设计师提供免费素材的&#xff0c;素材的…

[CKA]考试之基于角色的访问控制-RBAC

由于最新的CKA考试改版&#xff0c;不允许存储书签&#xff0c;本博客致力怎么一步步从官网把答案找到&#xff0c;如何修改把题做对&#xff0c;下面开始我们的 CKA之旅 题目为&#xff1a; Context&#xff1a; 为部署流水线创建一个新的ClusterRole并将其绑定到范围为特定…

Pandas的to_sql()插入数据到mysql中所遇到的问题

使用pymysql驱动API&#xff0c;出现如下错误&#xff1a; DatabaseError: Execution failed on sql ‘SELECT name FROM sqlite_master WHERE type‘table’ AND name?;’: not all arguments converted during string formatting 1. pandas的数据表插入数据到mysql中所遇到…

王道考研数据结构代码总结(后四章)

目录 树基本概念与属性树的基本性质 图拓扑排序 本文包含王道考研讲课中所涉及的数据结构中的所有代码&#xff0c;当PPT代码和书上代码有所区别时以咸鱼的PPT为主&#xff0c;个人认为PPT上的代码比王道书上的代码要便于理解&#xff0c;此外&#xff0c;本博客也许会补充一些…

css01:顶部导航栏,左右分离布局

css01&#xff1a;顶部导航栏&#xff0c;左右分离布局 效果 代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>顶部导航栏</title><style>body {margin: 0;padding: 0;}.top-nav {background-color: #ff…

Python采集二手车数据信息,看看啥车最得心意

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 环境使用: python 3.8 运行代码 pycharm 2022.3.2 辅助敲代码 专业版是付费的 <码可以免费用> 社区版是免费的 模块使用: 内置模块 无需安装 csv 第三方模块 需要安装的 requests >>> pip install req…

大数据可视化开源平台,一招让数据资源活泛起来!

在现代化办公环境中&#xff0c;数据资源也是非常重要的一种发展要素。有不少朋友会私信我们询问道&#xff1a;如何将企业内部的数据资源利用起来&#xff0c;真正发挥其价值为我所有&#xff1f;在这里&#xff0c;推荐大家了解大数据可视化开源平台&#xff0c;这是可以为企…

深度学习的各种卷积的总结

如果你听说过深度学习中不同种类的卷积&#xff08;比如 2D / 3D / 1x1 /转置/扩张&#xff08;Atrous&#xff09;/空间可分/深度可分/平展/分组/混洗分组卷积&#xff09;&#xff0c;并且搞不清楚它们究竟是什么意思&#xff0c;那么这篇文章就是为你写的&#xff0c;能帮你…

既然jmeter也能做接口自动化,为什么还需要pytest自己搭框架?

今天这篇文章呢&#xff0c;我会从以下几个方面来介绍&#xff1a; 1、首先介绍一下pytest框架 2、带大家安装Pytest框架 3、使用pytest框架时需要注意的点 4、pytest的运行方式 5、pytest框架中常用的插件 一、pytest框架介绍 pytest 是 python 的第三方单元测试框架&a…

微信如何群发消息?如何群发突破200上限?

相信每到各种节日的时候&#xff0c;很多人都会发布或收到微信好友的节日祝福或活动通知。群发已经是一件很普遍的事了。逢年过节&#xff0c;发个微信祝福&#xff0c;是维系关系的必须&#xff1b;发个活动通知&#xff0c;是为了告知客户&#xff0c;促进销售。 01 微信自带…

2023年最新网络安全面试题合集(附答案解析)

前言 为了拿到心仪的 Offer 之外&#xff0c;除了学好网络安全知识以外&#xff0c;还要应对好企业的面试。 作为一个安全老鸟&#xff0c;工作这么多年&#xff0c;面试过很多人也出过很多面试题目&#xff0c;也在网上收集了各类关于渗透面试题目&#xff0c;里面有我对一些…

佩戴舒适音质悦耳,试试这款耳夹式耳机,塞那Z51S Pro Max上手

蓝牙耳机很多人每天都用&#xff0c;工作学习的时候戴上&#xff0c;可以随便听听舒缓心情&#xff0c;随便哪个平台都有丰富的音乐、播客等类型的资源&#xff0c;听着听着就下班了。市面上蓝牙耳机的种类这两年多了不少&#xff0c;我目前用的是一款sanag塞那Z51S Pro Max&am…

从Android UI收集流的更安全方法

从Android UI收集流的更安全方法 在安卓应用中&#xff0c;通常从UI层收集Kotlin flows以显示屏幕上的数据更新。但是&#xff0c;为了确保不做过多的工作、浪费资源&#xff08;包括CPU和内存&#xff09;或在视图转到后台时泄漏数据&#xff0c;您需要收集这些flows。 在本…

(2023,语义混合)处理神经网络中语义和视觉对齐的差异

Addressing Discrepancies in Semantic and Visual Alignment in Neural Networks 公众号&#xff1a;EDPJ 目录 0. 摘要 1. 简介 2. 相关工作 3. 方法 4. 实验 5. 结果 6. 讨论与结论 参考 S. 总结 S.1 主要思想 S.2 语义混合 S.3 方法 0. 摘要 对于图像分类任…

苹果Vision Pro将引爆人机交互的重大变革

2023年6月6日&#xff0c;苹果发布了大家期待已久的Vision Pro&#xff0c;Vision Pro是一款专业级MR设备&#xff0c;融合了虚拟现实(VR)和增强现实(AR)技术&#xff0c;可以让用户完全沉浸在高分辨率显示内容中。允许用户以一种全新的方式在其周围的空间中查看APP。用户可以用…

unreal 5 实现角色拾取功能

要实现角色拾取功能&#xff0c;我们需要实现蓝图接口功能&#xff0c;蓝图接口主要提供的是蓝图和蓝图之间可以通信&#xff0c;接下来&#xff0c;跟着教程&#xff0c;实现一下角色的拾取功能。 首先&#xff0c;我们要实现一个就是可视区的物品在朝向它的时候&#xff0c;会…

基于云技术的域名解析系统研究一:传统解析技术弊端(中科三方)

域名解析是互联网的一项重要基础作用&#xff0c;主要用于将域名翻译成计算机可识别的IP地址&#xff0c;完成对网络中其他主机的寻址任务。我们日常工作生活中的大部分网络应用&#xff0c;如网站访问、电子邮件以及其他各种web应用服务&#xff0c;都需要经过域名解析的寻址去…

Oracle的登陆问题和初级学习增删改查

1&#xff1a;学习Oracle首先需要安装Oracle&#xff0c;网上已经有很多很多教程了&#xff0c;这里不做叙述&#xff0c;自己百度即可&#xff0c;这里安装的标准版&#xff0c;个人根据需求安装学习或者企业开发即可。如果安装出错&#xff0c;自己百度Oracle的卸载即可&…

终极指南:Scrum中如何设置需求优先级

需求众多不知道如何下手&#xff1f;总想先做简单的需求&#xff0c;复杂需求却一拖再拖&#xff1f;那么&#xff0c;我们是时候开始考虑如何设置需求优先级了。 本期终极指南将展示如何为需求设置有效优先级&#xff0c;如何有效管理工作量&#xff0c;让效率指数倍增长&…

软件测试和软件开发哪个发展更好?我来告诉你怎么选

目录 一、基本素质要求 二、性格要求 三、入职门槛 四、转行难度 五、知识结构 六、竞争压力 七、职业发展 八、职业前景 总结 一、基本素质要求 这里的基本素质包括比如速辑思维能力、分析问题能力、沟通能力、协作能力、怀疑精神等方面&#xff0c; 【软件测试】: …