计算机图形学-GAMES101-10

news2024/9/22 23:32:49

一、纹理

 原模型网格->逐面Shading->逐像素Phong Shading->纹理贴图->换个纹理再贴图->环境光照。
在这里插入图片描述

(1)环境贴图

 纹理就是一张图,纹理是GPU里的一块内存,可以进行点查询、范围查询、滤波。
 环境光贴图、环境光映射:
在这里插入图片描述
 我们可以用纹理去描述整个环境光是什么样的,用环境光去渲染其他物体。对于环境光,我们都认为来自无限远处,即环境光从同一个方向来且强度相同。
在这里插入图片描述
 讲环境光记录在球上会发现不均匀,会发生扭曲。
在这里插入图片描述
 使用立方体来记录环境光信息。本质都是为了描述来自不同方向的光的信息。

(2)凹凸贴图

 纹理可以定理物体任何一个点的任何一种属性。比如在下图中,我们开可以用一个纹理贴图表示球上的凹凸不平。表示一个球可能只用一两百个三角形,但是表示一个凹凸的球需要的三角形数量远远增大。使用纹理表示每个点的相对凸起高度,在着色时根据相对突起使得每个顶点沿着法线移动相对突起的距离即可渲染出下图结果。类似的使用还有法线贴图,这些都是给定一个假定的属性,使得规则的模型产生更复杂的质感。
在这里插入图片描述

(3)法线贴图

 不改变三角形属性,通过定义表面法线,计算出凹凸感。
在这里插入图片描述

(4)位移贴图

 凹凸贴图边缘会暴露是光滑的,实际上没有改变几何,使用法线欺骗人的眼睛。
 位移贴图的效果更好,但是它要求模型的三角形足够细,即三角形定义的间隔比定义的纹理的频率还要高才行。
 DictritinX可以动态曲面细分,即可以动态产生更多三角形去采样。
在这里插入图片描述

(5)三维纹理

 定义三维空间中任何一个顶点的值。而它并没有图,只有一个函数,输入纹理的坐标,即可返回需要的属性。
在这里插入图片描述

(6)记录信息

 纹理可以记录信息,可以存储计算的信息,诸如预先计算复杂的颜色值,然后将着色结果记录于贴图中。

二、几何

 光滑曲面几何:
在这里插入图片描述
 复杂的几何:
在这里插入图片描述
 布料几何:
在这里插入图片描述
 水滴几何:
在这里插入图片描述
 庞大的几何:
在这里插入图片描述
 复杂的几何:
在这里插入图片描述

隐式和显式几何

隐式几何

 隐式几何给出顶点位置应该满足的函数,不直接给出顶点位置。
在这里插入图片描述
 优点:判断一个点和几何的相对位置。缺点:无法直接看出是什么形状,无法直接找到几何对应空间中哪些点。

显式几何

 直接给出顶点的位置,可能给的是直接的xyz,有可能是给的参数uv。
在这里插入图片描述
 给出参数uv映射到空间的点xyz。显示表示无法判断任意一个点相对几何形体的位置。
在这里插入图片描述

隐式几何的应用、

 隐式几何不直观,无法直接看出是什么形体。对于复杂的几何,我们也难以找到对应的函数关系。
在这里插入图片描述
 定义最基本几何之间的运算,通过运算去构成复杂的形体,得到隐式表达关系。
在这里插入图片描述
 距离函数:指空间中任何一个点到物体曲面的最小距离,可以定义正负,正为在曲面外,负为在曲面外。
 如下图所示。一个物体最初处于视口左侧三分之一处,下一次它运动到了三分之二处,我们如何得到中间移动时它表面的位置呢?很简,那不就是1/3-2/3,那我们怎样去表示这种运动呢?如下面所示。我们使用距离函数来表示物体边界或表面,定义距离函数来判断空间中任意一个点与表面的相对关系,我们只要移动表面就能表示这个运动过程了。
在这里插入图片描述
 如下图所示,我们有平面空间中的两个多边形,我们分别定义它们的距离函数表示它们自己的表面(边界)。然后对它们距离函数进行混合,根据混合后得到的距离函数再去还原几何形体(等于0点在表面上,小于0为内部),就可以表示出下图的结果。
在这里插入图片描述
 隐式的几何表示有很多种,距离函数的表示能力非常强大,可以表示出如下形体:
在这里插入图片描述
 水平集
在这里插入图片描述
 使用距离函数表示水滴💧过程:
在这里插入图片描述
 分形:物体具有自相似性。
在这里插入图片描述

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

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

相关文章

The authenticity of host ‘gitee.com (212.64.63.190)‘ can‘t be established.

在将本地仓库的代码推送到远程仓库时,出现下面报错。 $ git push -u origin master The authenticity of host gitee.com (212.64.63.190) cant be established. ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQpKkGYoFgbVr17bmjey0Wc. Are you sure you w…

Kali-linux分析密码

在实现密码破解之前,介绍一下如何分析密码。分析密码的目的是,通过从目标系统、组织中收集信息来获得一个较小的密码字典。本节将介绍使用Ettercap工具或MSFCONSOLE来分析密码。 8.2.1 Ettercap工具 Ettercap是Linux下一个强大的欺骗工具,也…

Mysql中常用到的查询关键字

文章目录 1、join2、like 模糊查询3、or4、distinct5、in 包含6、group by 分组7、order by8、limit 1、join MySQL 的连接主要分为内连接和外连接。 什么是内连接: 取得两张表中满足存在连接匹配关系的记录。 什么是外连接: 不只取得两张表中满足存在…

设计高端大气上档次的时尚品?!微软工程师借助AIGC成功圆梦!

(本文阅读时间:5 分钟) 在这个创意横飞、想象力爆棚的时代中,有很多美丽且吸引人的东西围绕在我们身边。然而,遗憾的是,被誉为“攻城狮”的我,内心里虽然非常喜欢且欣赏这些夺目的作品&#xff…

手动输入域账号自动禁用windows域用户的脚本

禁用windows域用户的脚本,需求: 1、显示该域用户的创建时间,最后登录时间和存放的OU, 2、将该账号禁用; 3、禁用后重新返回交互界面等待输入新的域账号。 Powershell脚本内如下: # 无限循环等待用户的输入…

Meta没做成的事OpenAI要干?ChatGPT之父推出加密项目Worldcoin

大模型焦虑还未停歇,鬼才创始人瞄准了加密领域。 继ChatPT之后,OpenAI的首席执行官Sam Altman推出的加密货币项目Worldcoin近日被透露融资近一亿美金,彻底搅翻了科技界与Web3的平静。 据官网描述,Worldcoin由Sam和Max Novendstern…

奇舞周刊第492期:提升 Web 核心性能指标的 9 个建议

记得点击文章末尾的“ 阅读原文 ”查看哟~ 下面先一起看下本期周刊 摘要 吧~ 奇舞推荐 ■ ■ ■ 提升 Web 核心性能指标的 9 个建议 大家好,我是 ConardLi。今天继续来为大家解读今年的 Google I/O,我会重点为大家解读前端开发者应该关注的信息&#xff…

软考初级程序员上午单选题(13)

1、下列不能兼作输入设备和输出设备的是______。 A.可擦除型光盘 B.软盘 C.硬盘 D.键盘 2、文件型计算机病毒主要感染______。 A..TXT文件 B..GIF文件 C..EXE文件 D..MP3文件 3、_…

【Error】Error: Cannot find module ‘babel-preset-es2015‘

启动项目时出现了下面的错误,错误图如下: 解决办法: 在项目的babel.config.js文件中修改presets的参数,修改如下: 原文件: 修改成babel/preset-env,修改后文件:

SpringBoot源码分析之Tomcat是如何在SpringBoot中启动的?

一.前言 我们知道SpringBoot可以直接把传统的war包打成可执行的jar包,直接启动。这得益于SpringBoot内置了容器可以直接启动。本文将以 Tomcat 为例,来看看 SpringBoot 是如何启动 Tomcat 的。 二.源码分析 一.SpringApplication初始化 public class…

【STC8】热启动串口指令下载

前言 在目标开发板没有装载自动下载电路的时候,往往需要冷启动,也就是需要手动开关电源,来达到单片机复位下载。当然还有一种方法是热启动,通过串口接收到自定义的指令后,软件执行复位下载。这就是本文介绍的内容。 材…

理解神经网络的数学原理(四)多层感知机(MLP)与二叉空间分割树(BSP Tree)

概述 最近发现了一个传统算法,非常适合描述多层感知机(Multi-Layer Perceptron,MLP)的模型逻辑,其算法逻辑也非常清晰简单,所以在这里再对比一下,方便大家更容易理解多层感知机的内容&#xff…

手写Docker之认识NameSpace、CGroups、Union file system

关于NameSpace Linux NameSpace主要是kernel中用于隔离系统资源的功能,而docker就是基于NameSpace去隔离系统资源达到容器化的效果 以下案例均以该代码进行举例: package mainimport ("fmt""os""os/exec""syscall&…

【C++】mapsetmultimapmultiset使用说明

文章目录 关联式容器键值对pair的定义(键值对) 树形结构的关联式容器Set -> 排序去重Set的文档介绍Set的使用:set的构造set的迭代器set的容量set修改操作API接口总结: multiset -> 排序 可重复lower_bound&&upper_bound mapmap的模板参数说明map的构造map的迭代…

毕业季,各互联网大厂急缺这类 Python 人才!

又快到了应届毕业生找工作的季节了,一大波大厂高薪岗位陆续开放,想拿 Offer、升职加薪的你准备得怎么样了? 今年的招聘力度可以说是近几年最大,比如字节跳动旗下的大力教育,高调宣布:“未来 4 个月&#x…

最新整理Java面试八股文,大厂必备神器

在看这篇文章之前,我想我们需要先搞明白八股文是什么??? 明清科举考试的一种文体,也称制义、制艺、时文、八比文。八股文章就四书五经取题,内容必须用古人的语气,绝对不允许自由发挥&#xff0…

记录--axios和loading不得不说的故事

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 loading的展示和取消可以说是每个前端对接口的时候都要关心的一个问题。这篇文章将要帮你解决的就是如何结合axios更加简洁的处理loading展示与取消的逻辑。 首先在我们平时处理业务的时候loading一般…

OpenAI 重磅发布 ChatGPT iOS 客户端!

公众号关注 “GitHubDaily” 设为 “星标”,每天带你逛 GitHub! 今天凌晨,OpenAI 正式发布了 iOS 客户端! 这代表你可以直接在 iPhone 和 iPad 上直接使用 ChatGPT 进行聊天了。 该客户端基于 Whisper 开源模型,集成了…

用排列组合来编码通信(七)——《我的5/4张牌的预言》

早点关注我,精彩不错过! 从《5张牌的预言》开始,前面介绍了3个拓展思路,分别从引入额外信息解放选牌(Eigens value),引入正反信息来编码(ups and downs),继续…

从零开始学架构——可扩展架构模式

可扩展架构模式的基本思想和模式 软件系统与硬件和建筑系统最大的差异在于软件是可扩展的,一个硬件生产出来后就不会再进行改变、一个建筑完工后也不会再改变其整体结构 例如,一颗 CPU 生产出来后装到一台 PC 机上,不会再返回工厂进行加工以…