0%

《重心坐标与插值、纹理映射》 的内容中,我们详细介绍了纹理映射的概念,以及纹理贴图过大过小带来的种种问题与解决方案,但纹理映射的应用远不止单单作为diffuse的反射系数来表现出不同颜色。本文会详细介绍一些主要的纹理映射的应用及其原理,首先从环境光贴图开始说起。

本节会详细介绍重心坐标的定义以及解法,并简略的提及重心坐标在图形学中的运用。其实插值在计算机图形学中是一个非常通用的概念,无论是坐标、还是颜色、还是深度、都可以作为插值的目标,因为插值的本质就是加权平均,理解这个思想很重要。另外会介绍纹理映射,以及纹理过大、纹理过小的解决方案,如:双线性插值、三线性插值、Mipmap、各向异性过滤、EWA。

我们就开始进入到着色(shading)的环节了,简单来说shading就是计算出每个采样像素点的颜色是多少。本文所要介绍的是局部光照模型,并不是真正准确的模型,但是优点是计算快,效果可以接受,至今依然广泛的运用在各种游戏之中。具体会从最基础的泛光模型,Lambert漫反射模型,再到Phong反射模型,Blinn-Phong反射模型一步步推进详细详解我们如何得到一个局部光照模型。

本次主要学习抗锯齿 SSAA 及 MSAA 算法和遮挡剔除 Z-Buffer 算法。

当我们把场景中的三角形光栅化显示到屏幕像素上时,会出现锯齿效果,其实很好理解,根据之前学习过的光栅化的流程,之前主要解决的是通过采样确定一个像素在不在这个三角形中的问题,现在要解决的就是锯齿问题。这类问题通常也叫做抗锯齿处理或者反走样(Antialiasing)。

简单来说光栅化的目的就是将想要展现的物体给真正现实到屏幕上的过程,因为我们的物体其实都是一个个顶点数据来表示的,如何表这些蕴含几何信息的数据转化为屏幕上的像素就是光栅化所考虑的东西。比如说一条直线,究竟该用哪些像素点去逼近它,一个三角形,又用哪些像素集合表示它,这都是光栅化的过程。本节主要讨论介绍两个直线光栅化和一个三角形光栅化算法以及优化。

M-V-P变换即Model(模型变换)、View(视图变换)、Projection(投影变换)的结合变换。我们知道我们在屏幕上看见的画面其实都是二维的,那么是怎么做到把三维空间中所展示的内容显示到一个二维空间上呢?这里就需要用到 M-V-P 变换与视口变换。让我们通过一个摄影的例子来理解到底这四个步骤的具体含义是什么:

最近在 Bilibili 看到了闫令琪大佬讲的图形学教程,直接上链接: https://www.bilibili.com/video/BV1X7411F744 感觉深受启发,作为一门图形学的入门教材,真的讲的通俗易懂,极力推荐感兴趣的同学一起来学习。学习的笔记通过整理以博客的形式展示,今天学习的是图形学中数学(尤其是线性代数相关)的内容 —— 变换矩阵 (Transformation Marices) 在图形学中的重要性不用多说,一切物体的缩放,旋转,位移,都可以通过变换矩阵作用得到。同时在投影变换的时候也有很多应用,本文将会介绍一些简要的变换矩阵以及齐次坐标的由来。

本次来看看Unity编辑器创建资源优化之物理系统的选择和使用,碰撞检测与物理碰撞混用乱用等问题,以及动画系统的优化,本次主要这两点内容。Unity 的内置物理系统 (Nvidia PhysX) 在移动设备上开销较大,应该尽量简化碰撞体,网格碰撞体开销较大,或者一开始就预先烘焙碰撞网格,使用物理方法移动刚体,根据目标帧率修改固定时间间隔等都是优化方案,下面看看具体的优化项有哪些吧。