首页 > 其他分享 >GAMES101笔记(04)

GAMES101笔记(04)

时间:2023-08-10 22:11:06浏览次数:32  
标签:04 浮点数 笔记 像素 深度 GAMES101 替换

本篇对应的是第七课

上节课讲完了光栅化的内容,这节课讲的有深度测试,光照和着色

深度测试我在学校看shader入门精要的时候有些印象,但也仅此而已了,我觉得还是要先补一下图形学的知识再去啃入门精要会好一些


 

深度缓存

在计算机成像时,对于一个我们要输出的画面,如何确保画面上的东西的前后遮挡关系正确?普遍运用的一种做法是对于每个像素都记录下它的深度(和摄像机之间的距离),然后在计算新的像素时和原来在这个点上的最浅深度比较,若更浅则替换。由于这些像素和自己的深度值均有一一对应关系,所以所有的深度也可以组成一个图像,深度图和输出的图像是同时存在的

 这是替换部分的代码,就是比较深度后替换或保留

深度值一般用浮点数,因为两个浮点数(尤其是通过计算得到的)很少出现相等的情况,因此能很大程度上保证比较深度时有大小关系


 

还有一半明天再更

标签:04,浮点数,笔记,像素,深度,GAMES101,替换
From: https://www.cnblogs.com/miku-dayo/p/17621689.html

相关文章

  • 「学习笔记」并查集
    真的有必要说吗?直接上封装好的模板吧,包含路径压缩和按秩合并。structunion_find_set{intfa[N],siz[N];int&operator[](constint&x){returnfa[x];}voidreset(){for(inti=1;i<=n;++i){fa[i]=i;......
  • 「学习笔记」随机数据
    前置知识——随机函数我们日常用的随机函数为rand(),虽然比较慢,但已经足够用了,它会随机生成一个范围在\([0,2^{31}-1]\)中的一个数。使用时要用随机种子seed,可以使用srand(seed)来设置、更改随机种子,当然,不初始化也是可以的,只是同一个程序用相同的seed、相同的机器、相......
  • Atcoder杂题笔记
    大概会把博客当草稿纸用(当然写出正解还是会把正解贴出来。[ARC080E]YoungMaids(待补代码)给定正偶数\(N\)。给定\(N\)元排列\(p=(p_1,p_2,...,p_N)\).Snuke打算根据下述步骤构造一个\(N\)元排列\(q\)。首先,令\(q\)为空。接下来,执行下述操作直到\(p\)为空......
  • openGauss学习笔记-36 openGauss 高级数据管理-TRUNCATE TABLE语句
    openGauss学习笔记-36openGauss高级数据管理-TRUNCATETABLE语句清理表数据,TRUNCATETABLE用于删除表的数据,但不删除表结构。也可以用DROPTABLE删除表,但是这个命令会连表的结构一起删除,如果想插入数据,需要重新建立这张表。它和在目标表上进行无条件的DELETE有同样的效果,但由于......
  • Ubuntu 22.04安装Node.JS和NPM
    sudoaptpurgenodejssudoaptautoremovesudoaptupdatesudoaptinstall-ycurlcurl-fsSLhttps://deb.nodesource.com/setup_18.x|sudo-Ebash-sudoaptinstallnodejsbuild-essential-y......
  • (笔记)tftp文件上传与下载命令
     一、下载文件(如从嵌入式主机下载文件至PC上)tftp-lfile-ppc_ip举例:tftp-lembedded.c-p172.16.1.200 二、上传文件(如从PC上传文件至嵌入式主机上)tftp-rfile-gpc_ip举例:tftp-rpc.c-g172.16.1.200 ......
  • gym/10446/C. 0689
    C.0689我们考虑i作为左端点的贡献。我们强制翻转之后i这个点与原来不同,因为假如翻转之后i和原来相同,我们显然可以将这个翻转区间的左右端点往中间缩小1,也就是它会在更大的i被计算。另一个问题,对于同一个i,不同的右端点是否会使得翻转之后相同,这也是不会的,abab......
  • 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素
    704二分查找题目给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。第一想法判断条件是value=target因为数组是升序,其实每种查找方法应该相差不大?不过题目都标了二分查找了emmm思......
  • CMU 15445 spring - project 1 Buffer Pool实验笔记
    前排提醒本项目需要在linux/mac环境下进行开发,如果是windows最好是整个linux的环境,比如云服务器、虚拟机、wsl等。整个课程需要仔细看文档,包括bustub的readme,每篇project的描述。整个课程需要仔细看文档,包括bustub的readme,每篇project的描述。整个课程需要仔细看文档,包括bustu......
  • 试试用Rust为树莓派RP2040开发程序
    试试用Rust为树莓派RP2040开发程序实验环境树莓派Pico开发板DAPLINK调试器原工程链接:https://github.com/rp-rs/rp-hal-boards假设读者已经安装配置好了cargo环境1.安装配置获取工具链rustupselfupdaterustupupdatestablerustuptargetaddthumbv......