GAMES101 学习 2

Lecture 7:Shading 1(lllumination,Shading and Graphics Pipeline)

Visibility / occlusion 解决可见性和遮挡的问题

可见性,Z-buffering

Z-Buffer 深度缓存

Idea:

  • Store current min. z-value for each sample (pixel)
  • Needs an additional buffer for depth values
  •  -- frame buffer stores color values
  •  -- depth buffer (z-buffer)store depth  

利用深度缓存的想法维护遮挡信息,维护深度缓存算法即可,与顺序无关

更新示例

--对于MSAA来说,深度缓存应该针对的是采样点而不是像素点 

shading:着色

引入明暗的不同,引入颜色的不同

给物体施加材质的过程。包括光照和texture。

Blinn-Phong Reflectance Model  

specular高光:与观察方向有关  镜面反射相关
diffuse漫反射:与观察方向无关,光线打过来,均匀地反射到四面八方。比如墙面
ambient环境光:间接光照,可以设置为常数

着色具有局部性,比如下面这张图,它只考虑了光照和自己,不考虑其他物体的存在,没有阴影

漫反射 Diffuse Reflection


光线考虑衰减,I/r^2,实际衰减的是irradiance(单位面积的光的power)

max的作用,如果点乘是负数的话没有物理意义,所以直接记为0

物体有颜色是因为会吸收一部分颜色光,然后反射不吸收的颜色光。

考虑每一点有不同的吸收率 就是图中的系数 kd (表示成三通道的rgb)

不管从哪里观测,看到的应该都一样,因为漫反射是均匀的射向四面八方

Lecture 8: Shading 2 (Shading ,Pipeline and Texture Mapping)

高光 Specular Term(Blinn-Phong)

简化了吸收的计算--Blinn-Phong 还是一个经验模型

指数p的作用是为了更合理的模拟

常用的p是 150 ~ 200

环境光 Ambient Term

常数

着色频率

顶点求法线  -- 与这个顶点有关系的所有三角形的发现求平均,也可以加权平均(三角形大小不一样)

Graphics (Real - time Rendering) Pipeline  实时渲染管线

如何从场景到一张图,经历的过程就是管线 

图形渲染管线

  • 三维空间顶点经过mvp矩阵变换,变成屏幕空间的顶点。
  • 屏幕空间的顶点,经过三角形处理,组成三角形。
  • 三角形经过光栅化,变成fragment(片元)。
  • fragment经过shading,计算光照、纹理映射(比如采用布林冯模型、微表面模型,就在此处进行相应的计算),变成fragment。
  • 带材质的fragment经过framebuffer(比如深度处理),变成屏幕上的图像。


*具体过程是,先进行mv矩阵变换,然后对顶点进行着色(包括法向量、纹理坐标、颜色等),之后投影矩阵变换,得到一个标准化立方体(正交投影得到标准立方体好理解,但其实透视投影得到的也是标准立方体,经过压缩之后的),之后经过视锥剔除这一步操作,避免不必要的时间消耗,此时得到的还是标准化立方体,顶点的坐标还是三维的,然后经过视口变换,得到对应屏幕大小的二维图像,此时的顶点包括所有需要的信息(包括法向量、纹理坐标、颜色等)。然后进入光栅化阶段,先进行三角形处理,对顶点与顶点之间做插值,然后做光栅化,对应到像素,然后做shadding(包括纹理映射),对像素着色,之后做可视化处理、alpha测试、模板测试等,上屏到显示设备

GPU -- 高度并行化的处理器

纹理映射

*重心坐标,用来做插值

参考文章:GAMES101 梳理 / 个人向图形学笔记-CSDN博客

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

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

相关文章

python学习3:unittest测试框架初学习

python内置测试框架 unittest(xUnit家族成员 参考JUnit)doctest: 假设被测试目标: def add(a,b):c a breturn c创建一个"test_同名"的文件夹 基本用法 1 创建测试用例 1 定义TestCase的子类 2 定义test_开头的方法 3 在方法…

vue-resource发送请求

导入依赖 终端输入 npm i vue-resource 使用插件 在main.js中应用插件 import Vue from "vue"; import App from "./App.vue" //引入插件 import vueResource from "vue-resource"; //使用插件 Vue.use(vueResource)new Vue({el:#app,render:h…

k8s工作节点主要模块

背景 k8s集群的worker节点作为主要的pod容器的运行节点,其上面有两个非常核心的模块组件,本文就来简单了解下 k8s工作节点主要模块 1.kublet组件,这个组件运行在工作节点上 1.1 它是一个负责这个节点所有pod运行的指挥官的角色&#xff0…

鸿蒙Harmony应用开发—ArkTS声明式开发(绘制组件:Line)

直线绘制组件。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 无 接口 Line(value?: {width?: string | number, height?: string | number}) 从API version 9开始,该接…

Twincat实现电机控制

不仅是控制系统的核心部分,而且能够将任何基于PC的系统转换为一个带有PLC、NC、CNC和机器人实时操作系统的实时控制系统。TwinCAT软件在工业自动化领域具有广泛的应用,特别是在机器人关节电机控制方面!!! 在机器人关节电机控制方面,TwinCAT通…

实验三 前端性能优化-CSS优化

仓库地址:bj-front: 前端性能与工程化 - Gitee.com 利用简写CSS属性和CSS浅选择器,贯彻DRY原则,来完成对页面的CSS的优化过程,通过避免不良实践, 以及使用高性能的CSS选择器、flexbox布局引擎和CSS过渡,提…

vue3 新特性defineOptions和defineModel

一、vue3.3 新特性defineOptions 在Vue3.3之前&#xff0c;组件的默认组件名为.vue单文件组件文件的名字&#xff0c;假如我们想修改组件名&#xff0c;则需要结合Options API进行修改。defineOptions的出现解决了这个问题。 这个宏可以用来直接在 <script setup> 中声明…

鸿蒙Harmony应用开发—ArkTS声明式开发(绘制组件:Shape)

绘制组件的父组件&#xff0c;父组件中会描述所有绘制组件均支持的通用属性。 1、绘制组件使用Shape作为父组件&#xff0c;实现类似SVG的效果。 2、绘制组件单独使用&#xff0c;用于在页面上绘制指定的图形。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有…

html5播放flv视频

参考&#xff1a;flv-h265 - npmHTML5 FLV Player. Latest version: 1.7.0, last published: 6 months ago. Start using flv-h265 in your project by running npm i flv-h265. There are no other projects in the npm registry using flv-h265.https://www.npmjs.com/packag…

高效备考2025年AMC8竞赛:吃透2000-2024年600道真题(免费送题)

我们继续来随机看五道AMC8的真题和解析&#xff0c;根据实践经验&#xff0c;对于想了解或者加AMC8美国数学竞赛的考生来说&#xff0c;吃透AMC8历年真题是备考更加科学、有效的方法之一。 即使不参加AMC8竞赛&#xff0c;吃透了历年真题600道和背后的知识体系&#xff0c;那么…

【linux】进程间通信1--管道

文章目录 进程间通信是什么&#xff1f;如何做&#xff1f; 管道匿名管道命名管道 进程间通信 是什么&#xff1f; 进程间通信&#xff08;Inter-Process Communication&#xff0c;IPC&#xff09;是指在操作系统中&#xff0c;不同的进程之间进行数据交换、信息传递和同步操…

人事管理系统|基于JSP+ Mysql+Java+ B/S结构的人事管理系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java&#xff0c;ssm&#xff0c;springboot的平台设计与实现项目系统开发资源&#xff08;可…

LeetCode 热题 HOT 100(P11~P20)

系列文章&#xff1a; LeetCode 热题 HOT 100(P1~P10)-CSDN博客 LeetCode 热题 HOT 100(P11~P20)-CSDN博客 LC020valid_parentheses . - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&…

医疗器械经营许可证办理流程及申请流程有哪些?

1、证书内容差异&#xff1a; 1.医疗器械经营许可证应当载明许可证号码、法定代表人、负责人、住所、经营范围、仓库地址、发证部门、日期及有效期、公司名称等事项。 2.医疗器械生产经营管理注册证书应当载明编号、公司产品名称、法定代表人、住所、经营活动场所、业务发展方…

基于PyTorch的视频分类实战

1、数据集下载 官方链接&#xff1a;https://serre-lab.clps.brown.edu/resource/hmdb-a-large-human-motion-database/#Downloads 百度网盘连接&#xff1a; https://pan.baidu.com/s/1sSn--u_oLvTDjH-BgOAv_Q?pwdxsri 提取码: xsri 官方链接有详细的数据集介绍&#xf…

网络视频播放器|基于JSP技术+ Mysql+Java+ B/S结构的网络视频播放器设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java&#xff0c;ssm&#xff0c;springboot的平台设计与实现项目系统开发资源&#xff08;可…

Windows server 2008 R2 在VMware虚拟机上的安装

Windows server 2008 R2 在VMware虚拟机上的安装 准备工作VMware 新建并配置虚拟机安装和启动Windows server 2008 R2 准备工作 Windows server 2008 R2 ISO镜像的下载&#xff1a;Windows server 2008 R2 ISO VMware 新建并配置虚拟机 第一步&#xff0c;点击新建虚拟机 第…

【洛谷 P9242】[蓝桥杯 2023 省 B] 接龙数列 题解(线性DP)

[蓝桥杯 2023 省 B] 接龙数列 题目描述 对于一个长度为 K K K 的整数数列&#xff1a; A 1 , A 2 , … , A K A_{1},A_{2},\ldots,A_{K} A1​,A2​,…,AK​&#xff0c;我们称之为接龙数列当且仅当 A i A_{i} Ai​ 的首位数字恰好等于 A i − 1 A_{i-1} Ai−1​ 的末位数字…

ASP.NET通过Appliaction和Session统计在人数和历史访问量

目录 背景: Appliaction&#xff1a; Session&#xff1a; 过程&#xff1a; 数据库&#xff1a; Application_Start&#xff1a; Session_Start&#xff1a; Session_End&#xff1a; Application_End&#xff1a; 背景: 事件何时激发Application_Start在调用当前应用…

200W-300W厚膜电阻-SOT227小方块封装功率负载电阻器

SOT-227 型电阻器是许多电流监测和精密控制应用的理想选择&#xff0c;其电阻值低至 0.5 mΩ。这些高度可靠的无感厚膜功率电阻器采用四端子开尔文连接&#xff0c;可将测量路径与电流路径隔离&#xff0c;当与适当的散热器一起使用时&#xff0c;同样适用于高功率电流监测。电…